Después de dos meses de desarrollo, Linus Torvalds dio a conocer el lanzamiento del kernel Linux 6.0, en el anuncio, el cambio de numeración se realiza por motivos estéticos y es un paso formal que alivia las molestias por la acumulación de un gran número de números en la serie, ya que Linus bromeó diciendo que la razón para cambiar el número de versión es más probable que se quede sin dedos y dedos de los pies para contar los números de versión.
La nueva versión recibió 16585 correcciones de 2129 desarrolladores, el tamaño del parche es de 103 MB (los cambios afectaron a 13939 archivos, se agregaron 1420093 líneas de código, se eliminaron 318741 líneas).
Principales novedades de Linux 6.0
En esta nueva versión del Kernel de Linux 6.0, Btrfs implementa la segunda versión del protocolo para el comando «send», que implementa la compatibilidad con metadatos adicionales, el envío de datos en bloques más grandes (más de 64 K) y la transferencia de extensiones en forma comprimida. Se ha aumentado significativamente (hasta 3 veces) el rendimiento de las operaciones de lectura directa debido a la lectura simultánea de hasta 256 sectores, se destaca que se redujeron los conflictos de bloqueo y se aceleró la validación de metadatos al reducir los metadatos reservados para elementos diferidos.
Otro cambio importante relacionado con los sistemas de archivos, es que se agregaron nuevas operaciones EXT4_IOC_GETFSUUID y EXT4_IC_SETFSUUID ioctl al sistema de archivos ext4 para recuperar o configurar el UUID almacenado en el superbloque, ademas de que el sistema de archivos F2FS ofrece un modo de bajo consumo de memoria que optimiza el funcionamiento en dispositivos con poca RAM y le permite reducir el consumo de memoria a expensas del rendimiento.
En Overlayfs, cuando se monta sobre un sistema de archivos con asignación de ID de usuario, las listas de control de acceso compatibles con POSIX son compatibles correctamente.
Otra de las novedades que presenta Linux 6.0 son las nuevas funciones al subsistema DAMON (Data Access MONitor) que permiten no solo monitorear el acceso de los procesos a la RAM desde el espacio del usuario, sino también influir en la administración de la memoria. En particular, se propone un nuevo módulo «LRU_SORT», que permite reordenar las listas LRU (Usadas menos recientemente) para aumentar la prioridad de ciertas páginas de memoria.
Se implementó la capacidad de crear nuevas regiones de memoria utilizando las capacidades del bus CXL (Compute Express Link), que se utiliza para organizar la interacción de alta velocidad entre la CPU y los dispositivos de memoria. CXL permite conectar y utilizar nuevas regiones de memoria proporcionadas por dispositivos de memoria externa como recursos de espacio de direcciones físicas adicionales para expandir la memoria de acceso aleatorio (DDR) del sistema o la memoria de solo lectura (PMEM).
Se solucionaron los problemas de rendimiento del sistema en los procesadores AMD Zen causados por un código agregado hace 20 años para solucionar un problema de hardware en algunos conjuntos de chips (se agregó una instrucción WAIT adicional para ralentizar el procesador para que el conjunto de chips tuviera tiempo de entrar en un estado inactivo). El cambio resultó en una degradación del rendimiento en las cargas de trabajo que a menudo alternan entre estados inactivos y ocupados. Por ejemplo, después de deshabilitar la maniobra de derivación, los puntajes promedio de la prueba tbench aumentaron de 32191 MB/s a 33805 MB/s.
Se optimizó la distribución de tareas entre los núcleos de la CPU en sistemas grandes, lo que hizo posible aumentar el rendimiento bajo ciertos tipos de carga.
Se ha introducido un nuevo indicador IORING_RECV_MULTISHOT en la interfaz de E/S asíncrona io_uring, que permite usar el modo «multi-shot» con la llamada al sistema recv() para realizar varias lecturas desde el mismo socket de red a la vez. io_uring también implementa soporte para transferencia de red sin almacenamiento en búfer intermedio-
Se eliminó la interfaz obsoleta «efivars» en sysfs para acceder a las variables de arranque UEFI (para acceder a los datos EFI, el sistema de archivos virtual efivarfs ahora se usa ampliamente).
Se ha agregado el mecanismo de verificación RV (Runtime Verification) para verificar el correcto funcionamiento en sistemas altamente confiables que garantizan que no haya fallas. La validación se realiza en tiempo de ejecución al adjuntar controladores a puntos de seguimiento que verifican el progreso real de la ejecución contra un modelo de autómata determinista de referencia predeterminado que define el comportamiento esperado del sistema. Entre las ventajas de RV está la capacidad de proporcionar una verificación rigurosa sin una implementación separada de todo el sistema en el lenguaje de modelado, así como una respuesta flexible ante eventos imprevistos.
Tambien se destacan los componentes de kernel integrados para la gestión de enclaves basados en la tecnología Intel SGX2 (Software Guard eXtensions), que permite que las aplicaciones ejecuten código en áreas cifradas aisladas de la memoria, cuyo acceso está limitado por el resto del sistema.
De los demás cambios que se destacan:
En el controlador Nouveau, se ha rediseñado el código para admitir los motores de visualización GPU NVIDIA nv50.
El controlador i915 (Intel) brinda soporte para tarjetas gráficas discretas Intel Arc (DG2/Alchemist) A750 y A770.
Se ha propuesto una implementación inicial de compatibilidad con las GPU Intel Ponte Vecchio (Xe-HPC) y Meteor Lake.
Se continuó trabajando en el soporte para la plataforma Intel Raptor Lake.
Se agregó un nuevo controlador DRM logicvc para pantallas LogiCVC.
El controlador v3d (para GPU Broadcom Video Core) ahora es compatible con placas Raspberry Pi 4.
Se agregó soporte para GPU Qualcomm Adreno 619 al controlador msm.
Se agregó soporte para GPU ARM Mali Valhall al controlador Panfrost.
Se agregó soporte inicial para los procesadores Qualcomm Snapdragon 8cx Gen3 utilizados en las computadoras portátiles Lenovo ThinkPad X13s.
Se agregaron controladores de audio para las plataformas AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake y Mediatek MT8186.
Se agregó compatibilidad con los aceleradores de aprendizaje automático Intel Habana Gaudi 2.
Se agregó soporte para ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
- Código:
-
https://lkml.org/lkml/2022/10/2/255