Linux 6.8 llega con grandes mejoras de soporte, controladores y mas
La semana pasada Linus Torvalds anunció la disponibilidad general de la nueva versión del kernel Linux 6.8, versión que llevó varios meses y tuvo algunas demoras debido a una mayor cantidad de entregas de lo habitual. Este lanzamiento incluye varios aspectos destacados, como la compatibilidad con el procesador Broadcom BCM2712 en Raspberry Pi 5, la mitigación de banda Wi-Fi RFI (WBRF) basada en ACPI de AMD, un nuevo controlador de gráficos Intel Xe DRM, y soporte para fscrypt en CephFS, entre otros.
Uno de los puntos más significativos es el soporte inicial de Rust para la arquitectura LoongArch y la capacidad de Rust para desarrollar controladores PHY de red. Aunque no es un lanzamiento tan grande como Linux 6.7, Linux 6.8 implementa una gran cantidad de cambios y mejoras.
Principales novedades de Linux 6.8
En esta nueva versión que se presenta de Linux 6.8 el subsistema Zswap ha sido mejorado con la capacidad de forzar la descarga de páginas de memoria «cold» que no han sido accedidas y probablemente quedarán sin usar, activándose en situaciones de escasez de RAM. Zswap opera almacenando en caché las páginas que se desalojan en la partición de intercambio, comprimiéndolas en RAM siempre que sea posible en lugar de vaciarlas sin comprimir en el disco. Además, Zswap presenta un nuevo modo que deshabilita la escritura en la partición de intercambio real si la escritura no tiene éxito, evitando también la descarga de páginas que ya están en el grupo Zswap en la partición de intercambio.
En cuanto al programador de tareas, se ha integrado el mecanismo del servidor SCHED_DEADLINE, el cual aborda el problema de la subutilización de los recursos de la CPU por parte de tareas regulares cuando la CPU está monopolizada por tareas de alta prioridad (en tiempo real). Anteriormente, el kernel utilizaba un mecanismo de limitación en tiempo real que reservaba el 5% de la CPU para tareas de baja prioridad, dejando el 95% para tareas en tiempo real.
Linux 6.8 ahora incluye un controlador DRM Xe diseñado para GPU basadas en la arquitectura Intel Xe, presentes en tarjetas de video de la familia Intel Arc y en gráficos integrados desde los procesadores Tiger Lake en adelante. Este controlador Xe es independiente del código que soporta plataformas más antiguas, centrándose en hacer funcionar los nuevos chips de manera óptima. Utiliza una arquitectura renovada que aprovecha mejor los componentes del subsistema DRM y del controlador i915 que son genéricos y no están ligados a GPU específicas.
El controlador Nouveau ha sido configurado para utilizar las funciones de firmware GSP de forma predeterminada en las GPU NVIDIA basadas en Turing y Ampere. Esto implica que las operaciones de inicialización y control de la GPU se realizan mediante un microcontrolador GSP independiente, en lugar de programar directamente operaciones para interactuar con el equipo.
Por su parte, el controlador AMDGPU ha mejorado su soporte con la inclusión de ACPI WBRF y VPE DPM, cambios en el procesamiento del canal PCIe, la utilización de números de secuencia de 64 bits en las colas de sincronización, la incorporación de mecanismos de administración de color específicos de AMD y la resolución de problemas relacionados con el modo de suspensión.
Además, se ha añadido soporte para controladores de juegos NSO (Nintendo Switch Online) como variantes de controladores antiguos de SNES, Genesis y N64, adaptados para Nintendo Switch. También se ha agregado un controlador para los gamepads Adafruit Seesaw, y se ha habilitado la compatibilidad con los controladores Lenovo Legion Go en el controlador xpad.
También se destaca que sé ha introducido un nuevo modo para bloquear la escritura directa en dispositivos de bloque que tienen sistemas de archivos montados. Cuando este modo está habilitado, el usuario root no podrá realizar cambios en el sistema de archivos mediante manipulaciones en el nivel del dispositivo de bloque. Es importante destacar que este modo se encuentra deshabilitado de forma predeterminada y debe especificarse el parámetro BLK_DEV_WRITE_MOUNTED durante el ensamblaje para activarlo.
De los demás cambios que se destacan:
- Se ha agregado la implementación inicial del controlador para la GPU Broadcom VideoCore 7.1 utilizada en las placas Raspberry Pi 5.
- Se añadió un controlador para las GPU de la serie PowerVR 6 basadas en la microarquitectura Rogue de Imagination Technologies.
- Se agregó soporte para controladores Thunderbolt/USB4 integrados en chips basados en la microarquitectura Intel Lunar Lake.
- AMD ha realizado cambios relacionados con el soporte para la futura serie de procesadores basados en la nueva microarquitectura Zen 5.
- Se han añadido las llamadas al sistema listmount() y statmount(), permitiendo obtener información detallada sobre los sistemas de archivos montados desde el espacio del usuario.
- En el sistema de archivos XFS, se continúa trabajando en la capacidad de utilizar la utilidad fsck para verificar y corregir problemas identificados en línea, sin desmontar el sistema de archivos.
- Ext4 ha implementado la llamada dioread_nolock para bloques más pequeños que una página de memoria, mejorando el rendimiento al eliminar bloqueos innecesarios.
- Btrfs agregó soporte para el indicador de montaje «nospace_cache» para deshabilitar el caché de bloques libre.
- AppArmor ha cambiado al algoritmo SHA-256 para la verificación de reglas, reemplazando los hashes SHA-1 anteriores.
- La función strlcpy() que se incluyó en Glibc 2.38 C se eliminó del kernel. Esta función es una alternativa a strncpy() con protección contra desbordamiento del búfer.
- KVM ha agregado soporte para el subsistema guest_memfd (memoria primero del invitado), que proporciona funciones de administración de memoria para organizar la informática confidencial en el entorno del invitado.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlacé.