Linux 6.9 dice adiós a Ext2, implementa mejoras de soporte y mas
El domingo pasado Linus Torvalds anunció la liberación de la nueva versión del Kernel de Linux 6.9 la cual llega con una serie de cambios significativos, entre los cuales se destaca el módulo dm-vdo para la deduplicación y compresión de dispositivos de bloque, mejoras en el modo de acceso directo a archivos en FUSE, la capacidad de crear pidfds para subprocesos individuales, la implementación del mecanismo de token BPF, el soporte para Rust en sistemas ARM64, entre otras cosas más.
En el desarrollo de esta nueva versión de Linux 6.9 se implementaron 15,680 correcciones realizadas por 2,106 desarrolladores. El tamaño del parche es de 54 MB, con cambios que afectan a 11,825 archivos y se han añadido 687,954 líneas de código y eliminado 225,344 líneas.
¿Qué hay de nuevo en el Kernel de Linux 6.9?
En esta nueva versión del Kernel de Linux 6.9 una de las novedades que se destaca es la introduccion del nuevo controlador dm-vdo en Device Mapper. El controlador permite la creación de dispositivos de bloques virtuales basados en dispositivos de bloques existentes. Este nuevo dispositivo posee funcionalidades como la deduplicación de datos, la compresión de datos, la eliminación de bloques vacíos y la capacidad de aumentar el tamaño del dispositivo de bloque según sea necesario.
Otro de los cambios que se destaca, es en el subsistema FUSE en el cual se ha introducido una implementación inicial del modo «passthrough», que permite obtener datos de archivos directamente a nivel del kernel, evitando así un proceso que se ejecuta en el espacio de usuario. Esto puede mejorar significativamente el rendimiento en ciertas situaciones.
Además de ello, en Linux 6.9 el sistema de archivos Ext2 ha sido marcado como obsoleto. La razón de esto es que el controlador solo admite contadores de tiempo de inodo de 32 bits, que se desbordarán el 19 de enero de 2038. Se sugiere el uso de ext4 en lugar de ext2, ya que es compatible con el sistema de archivos Ext2.
Por otra parte, el antiguo controlador NTFS ha sido eliminado y reemplazado por el nuevo controlador NTFS3 desde la versión 5.15 del kernel. Esto se debió a que el controlador anterior no había sido actualizado durante muchos años, se encontraba en mal estado y solo funcionaba en modo de solo lectura.
Además, se han introducido varias mejoras y optimizaciones en otros sistemas de archivos como Btrfs, exFAT, F2FS, XFS, entre otros, para mejorar el rendimiento, la funcionalidad y la compatibilidad con diferentes dispositivos y necesidades de almacenamiento.
Se ha introducido el indicador PIDFD_THREAD en la función pidfd_open(), permitiendo la creación de pidfds para subprocesos individuales en lugar de solo para el líder de grupo de subprocesos. Además, se propone una implementación de un pseudo-FS para acceder a pidfd a través de un sistema de archivos virtual.
Se ha implementado protección contra la vulnerabilidad RFDS en procesadores Intel Atom. Esto implica actualizar el microcódigo y utilizar la instrucción VERW para borrar el contenido de los buffers de microarquitectura al regresar del kernel al espacio del usuario.
Se ha añadido soporte básico para la extensión AMD SEV-SNP (Secure Nested Paging) para protección de invitados. Esta extensión ofrece una operación segura de tablas de páginas de memoria anidadas y protege contra ataques específicos en procesadores AMD EPYC. En KVM se planea integrar los cambios necesarios para usar SNP en la versión 6.10.
Los módulos IMA y EVM han sido transferidos al marco LSM, lo que ha simplificado el código y combinado funcionalidades duplicadas. IMA verifica la integridad de los componentes del sistema operativo mediante firmas digitales y hashes, mientras que EVM protege los atributos de archivos extendidos de ataques que buscan violar su integridad.
De los demás cambios que se destacan:
- Netfilter ahora permite definir tablas desde el espacio del usuario que están vinculadas al proceso en segundo plano de control. En nftables, se ha acelerado la adición de elementos a conjuntos con rangos fusionados, lo que mejora la eficiencia del sistema de filtrado de paquetes.
- Se ha trabajado en la implementación de soporte para chips Intel LunarLake, GPU AMD RDNA3.5 y RDNA4, así como en la adaptación del código de control de pantalla en Nouveau. El controlador Xe drm para GPU basadas en la arquitectura Intel Xe ha avanzado para su uso en tarjetas de video Intel Arc y gráficos integrados.
- Se agregó soporte para una amplia gama de placas y dispositivos ARM, incluyendo modelos de Rockchip, Allwinner, Qualcomm, Amlogic, Mediatek, NVIDIA, Renesas, y Mobileye SoC basado en procesadores MIPS. Esto amplía la compatibilidad del kernel con diversas plataformas y dispositivos.
- Se ha añadido un nuevo tipo de memoria compartida, bpf_arena, en el subsistema BPF, junto con la capacidad de generar cookies TCP SYN arbitrarias desde programas BPF y la creación de controladores BPF para combatir la inundación SYN.
- Se ha implementado soporte para la inicialización paralela de páginas de memoria grandes (HugeTLB), lo que acelera el proceso de arranque en sistemas con grandes cantidades de RAM.
- Se han realizado mejoras y optimizaciones en varias arquitecturas, incluyendo ARM64, LoongArch y RISC-V, así como en controladores específicos como amd-pstate y la configuración USB_DEFAULT_AUTHORIZATION_MODE para dispositivos USB.
- Se han añadido nuevas funcionalidades y mejoras en herramientas como perf y LLVM/Clang, mejorando la capacidad de desmontaje de instrucciones del procesador y optimizando el consumo de memoria al ejecutar ciertos comandos.
- Linus Torvalds rechazó una propuesta para un rediseño más extenso del núcleo con la introducción de definiciones de tipos adicionales, optando por soluciones más específicas para abordar los problemas identificados.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.