Linux 6.6 ya fue liberado y llega con mejoras de rendimiento y soporte
Se dio a conocer el lanzamiento de la nueva versión de Linux 6.6, la cual llega con una gran cantidad de cambios y mejoras y de las cuales se destaca un nuevo programador de tareas EEVDF, el mecanismo de pila oculta para proteger contra exploits, el soporte de fs-verity en OverlayFS, el seguimiento mejorado de la exportación de símbolos «GPL-only», entre otras cosas más.
La nueva versión incluye 15.291 correcciones y proximadamente el 44% de todos los cambios introducidos en 6.6 están relacionados con controladores de dispositivos, el 17% con la actualización de código específico para arquitecturas de hardware y el resto es para la pila de red, subsistemas y demas.
Principales novedades de Linux 6.6
En esta nueva versión que se presenta de Linux 6.6 se implementó un nuevo programador de tareas EEVDF el cual llega a reemplazar al programador CFS. Se destaca que EEVDF al elegir el siguiente proceso al que transferir la ejecución, tiene en cuenta los procesos que no han recibido suficientes recursos del procesador o han recibido una cantidad injusta de tiempo del procesador. En el primer caso, se fuerza la transferencia del control del proceso, y en el segundo, por el contrario, se pospone. Se espera que el EEVDF reduzca los retrasos en tareas con las que el CFS ha tenido problemas de programación.
Otro de los cambios que se destaca de esta nueva versión del Kernel de Linux 6.6, es que el subsistema io_uring ha agregado soporte inicial para operaciones y comandos específicos de sockets de red, pues se agregó sysctl io_uring_disabled para deshabilitar io_uring en todo el sistema, con ello se menciona que se gano un aumento del rendimiento y la reducción de la latencia al realizar operaciones de E/S después de realizar cambios alcanza el 37%.
Ademas de ello, también se destaca que se han realizado cambios en el procesamiento de símbolos internos de la categoría «GPL-only», con el objetivo de dificultar que los módulos propietarios utilicen capas GPL para evitar las restricciones de acceso a los subsistemas del kernel que solo permiten código con licencia GPL.
Para la arquitectura RISC-V, se agregó soporte para acceder a contadores de rendimiento desde el espacio del usuario y la capacidad de colocar un volcado de núcleo después de una falla en un área más allá del límite de 4 GB.
Por la parte de las mejoras para los sistemas de archivos, en Linux 6.6 OverlayFS ha agregado soporte para almacenar hashes fs-verity en el atributo extendido overlay.verity (xattr), que se puede usar para verificar la integridad y autenticidad de los archivos en las capas subyacentes de OverlayFS usando claves y hashes criptográficos. Así, OverlayFS ahora incluye todos los cambios necesarios para que el proyecto Composefs funcione en forma de complemento a los sistemas de archivos OverlayFS y EROFS.
En Btrfs, se ha desaprobado el mecanismo de verificación de integridad incorporado que se habilita en el momento de la compilación a través del parámetro BTRFS_FS_CHECK_INTEGRITY. El mecanismo especificado quedó sin soporte, ya no se prueba y crea una carga adicional en la CPU y la memoria. Además, Btrfs ha optimizado el rendimiento del nuevo código de verificación FS (scrub).
En Ext4, se agregaron verificaciones periódicas de actualización de superbloques y se aceleraron las operaciones de asignación de memoria al escribir hasta el final del archivo.
En ublk se ha agregado soporte para dispositivos de almacenamiento por zonas (que dividen grupos de bloques o sectores en zonas, en las que solo se permite la adición secuencial de datos con la actualización del grupo completo de bloques).
ReiserFS pasó de ser compatible a quedar obsoleta, ademas de que está previsto que ReiserFS finalice el soporte en 2025. Las razones para dejar obsoleto a ReiserFS incluyen el estancamiento en el mantenimiento de este FS, el problema no resuelto de 2038, la falta de capacidades de tolerancia a fallas y el deseo de reducir los costos laborales para mantener los cambios comunes a los sistemas de archivos relacionados con el soporte de la nueva API para el montaje.
Por otra parte, también se destaca la migración continua de cambios de la rama Rust-for-Linux, pues ahora se ha realizado la transición al uso de las versiones Rust 1.71.1 y bindgen 0.65.1 y con ello se menciona que se ha logrado implementar el rasgo ‘Zeroable’, se agregaron macros de procedimiento, la compatibilidad con ‘#[pin_data]’ está garantizada y se han ampliado las capacidades del módulo ‘types’.
Se agregó soporte para compilar con el compilador Clang con el modo de protección CFI, que bloquea violaciones del orden de ejecución normal (flujo de control) como resultado del uso de exploits que cambian los punteros de función almacenados en la memoria. Para la arquitectura RISC-V, está habilitada la aleatorización de la ubicación del kernel en la memoria durante el arranque.
Se ha eliminado la mención de la Agencia de Seguridad Nacional de EE. UU. de las opciones asociadas con la habilitación del sistema de control de acceso de aplicación SELinux. Dado que el proyecto se ha estado desarrollando bajo el ala de la comunidad durante 20 años y cuenta con el respaldo de mantenedores independientes, se decidió cambiar al uso del nombre «SELinux» en lugar de «NSA SELinux» en los comentarios y la documentación.
Finalmente, si estás interesado en poder conocer más al respecto sobre este nuevo lanzamiento, puedes consultar los detalles en el siguiente enlace.