Linux 5.16 ya fue liberado y estas son sus novedades
Después de dos meses de desarrollo, Linus Torvalds dio a conocer el lanzamiento de la nueva versión del kernel de Linux 5.16 y en el cual de entre los cambios más notables está la llamada al sistema futex_waitv para mejorar el rendimiento de los juegos de Windows en Wine, el seguimiento de errores en el sistema de archivos a través de fanotify, la capacidad de reservar memoria para sockets de red, el manejo mejorado de sobrecargas con un gran volumen de operaciones de escritura, soporte para discos duros de varias unidades, entre otras cosas más.
La nueva versión recibió 15415 correcciones de 2105 desarrolladores, los cambios afectaron a 12023 archivos, agregaron 685198 líneas de código, eliminaron 263867 líneas.
Aproximadamente el 44% de todos los cambios introducidos en 5.16 están relacionados con los controladores de dispositivos, aproximadamente el 16% de los cambios están relacionados con la actualización del código específico de las arquitecturas de hardware, el 16% están relacionados con la pila de red, el 4% están relacionados con los sistemas de archivos y el 4% están relacionados con relacionados con los subsistemas internos del kernel.
Principales novedades del Kernel de Linux 5.16
En esta nueva versión el mecanismo notifica herramientas adicionales para monitorear el estado del sistema de archivos y rastrear errores. La compatibilidad con el seguimiento de errores se implementa actualmente solo para FS Ext4.
Tambien se ha mejorado el manejo de las congestiones de escritura que ocurren cuando el volumen de operaciones de escritura excede la capacidad de la unidad y el sistema se ve obligado a bloquear las solicitudes de escritura del proceso hasta que se complete la ejecución de las solicitudes ya transferidas.
En la nueva versión, el mecanismo del kernel utilizado para obtener información sobre la ocurrencia de una sobrecarga y tareas de bloqueo ha sido completamente reelaborado.
Btrfs implementa el soporte para la tecnología Zoned Namespace, que se utiliza en discos duros o SSD NVMe para dividir el espacio de almacenamiento en zonas que componen grupos de bloques o sectores, en los que solo se permite la adición secuencial de datos, mientras se actualiza el grupo completo de bloques.
Se ha rediseñado el mecanismo de registro de directorios, en el que se ha reducido el número de búsquedas y bloqueos en el árbol para mejorar la eficiencia, ademas de que se agregó soporte limitado para usar la compresión al escribir páginas incompletas, así como la capacidad de desfragmentar subpáginas.
En el sistema de archivos Ext4, solo se anotan las correcciones de errores y el cálculo más preciso de los parámetros de inicialización diferida de la tabla de inodo.A nivel de dispositivo de bloque, se han implementado optimizaciones que aumentan significativamente la eficiencia de las operaciones de enlace a los núcleos de la CPU.
Se han agregado opciones de montaje a FS F2FS para controlar la fragmentación de archivos cuando se almacenan (por ejemplo, para depurar optimizaciones para trabajar con almacenamientos fragmentados).
Se ha agregado una nueva llamada al sistema, futex_waitv, para monitorear el estado de múltiples futexes a la vez con una sola llamada al sistema. Esta característica se parece a la funcionalidad WaitForMultipleObjects disponible en Windows, cuya emulación a través de futex_waitv puede ser útil para mejorar el rendimiento de los juegos de Windows que se ejecutan en Wine o Proton.
Se ha agregado un controlador al programador de tareas que tiene en cuenta la agrupación de la caché en la CPU. En algunos procesadores, como Kunpeng 920 (ARM) e Intel Jacobsville (x86), una cierta cantidad de núcleos de CPU, generalmente 4, pueden combinar caché L3 o L2.
Se han implementado varias características nuevas basadas en el subsistema DAMON (Monitor de acceso a datos) agregado en la última versión, que permite rastrear el acceso a los datos en la RAM, en relación con un proceso seleccionado que se ejecuta en el espacio del usuario.
Ademas de ello, la implementación del algoritmo de compresión zstd se actualizó a la versión 1.4.10, lo que hizo posible aumentar significativamente el rendimiento de varios subsistemas del kernel que usan compresión.
Tambien se destaca que se deshabilitó de forma predeterminada algunos de los mecanismos avanzados de protección de subprocesos seccomp() contra los ataques de Spectre, que se consideraron redundantes y no aumentaron significativamente la seguridad, pero tuvieron un impacto negativo en el rendimiento.
El hipervisor Hyper-V ahora admite el modo de aislamiento de la máquina virtual, que cifra el contenido de la memoria.
Mientras que el hipervisor KVM agrega soporte para la arquitectura RISC-V y se implementó la capacidad de migrar máquinas virtuales dentro del entorno de host utilizando las extensiones AMD SEV y SEV-ES, junto con una API agregada para la migración en vivo de sistemas invitados cifrados con AMD SEV (virtualización cifrada segura).
Para la arquitectura PowerPC, el modo STRICT_KERNEL_RWX está habilitado por defecto, lo que bloquea el uso de páginas de memoria que están disponibles simultáneamente para escritura y ejecución.
Finalmente por la parte de controladores, en amdgpu se introduce soporte inicial para DP 2.0 (DisplayPort 2.0) y tunelización DisplayPort a través de USB4, se agregó soporte para controladores de pantalla para APU Cyan Skillfish y el soporte extendido para APU Yellow Carp.
El controlador i915 estabiliza la compatibilidad con los chips Intel Alderlake S e implementa la compatibilidad con la tecnología Intel PXP (Protected Xe Path), que permite organizar una sesión de gráficos protegidos por hardware en sistemas con chips Intel Xe.
En el controlador nouveau, se ha trabajado para corregir errores y mejorar el estilo de codificación, se agregó soporte para CPU Vortex compatible con x86 (Vortex86MX).
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
En cuanto a las actualizaciones de esta nueva versión, deben estar llegando en cuestión de horas/dias en los canales oficiales de tu distribucion o puedes optar por realizar la compilación por tu cuenta obteniendo el código fuente desde el siguiente enlace.