Linux 6.7 ya fue liberado y estas son sus novedades
Hace poco Linus Torvalds dio a conocer el lanzamiento de la nueva versión del kernel de Linux 6.7, la cual se presenta después de dos meses de desarrollo y entre los cambios más notables se destaca la integración del sistema de archivos Bcachefs, la interrupción del soporte para la arquitectura Itanium, la capacidad de Nouveau para trabajar con firmware GSP-R, soporte para cifrado TLS en NVMe-TCP, la capacidad de usar excepciones en BPF, entré otras cosas más.
La nueva versión del kernel de Linux 6.7 esta conformada por 15291 correcciones y aproximadamente el 45% de todos los cambios introducidos están relacionados con controladores de dispositivos, el 14% de los cambios están relacionados con la actualización de código específico para arquitecturas de hardware, el 13% están relacionados con la pila de red, el 5% están relacionados con sistemas de archivos y el 3% están relacionados con los subsistemas internos del kernel.
El tamaño del parche es de 72 MB (los cambios afectaron a 13.467 archivos, se agregaron 906.147 líneas de código y se eliminaron 341.048 líneas).
Principales novedades del Kernel de Linux 6.7
Integración del sistema de archivos Bcachefs
Linux 6.7 adopta el código del sistema de archivos Bcachefs, que intenta lograr el rendimiento, la confiabilidad y la escalabilidad de XFS, combinado con elementos de la funcionalidad avanzada que se encuentra en Btrfs y ZFS.
Bcachefs admite funciones como la inclusión de varios dispositivos en una partición, diseños de unidades de varias capas (la capa inferior con datos de uso frecuente basados en SSD rápidos y la capa superior con datos de discos duros menos utilizados), replicación (RAID 1/10), almacenamiento en caché, compresión de datos transparente (modos LZ4, gzip y ZSTD), cortes de estado , verificación de integridad mediante sumas de verificación, capacidad de almacenar códigos de corrección de errores Reed-Solomon (RAID 5/6), almacenamiento de información en forma cifrada (se utilizan ChaCha20 y Poly1305). En términos de rendimiento, Bcachefs está por delante de Btrfs y otros sistemas de archivos basados en el mecanismo de copia en escritura y demuestra una velocidad de funcionamiento cercana a Ext4 y XFS.
Mejoras en Btrfs
En Linux 6.7 se ha implementado para Btrfs un modo de cuota simplificado que permite lograr un mejor rendimiento al rastrear las extensiones solo en la subpartición en la que se crean, lo que simplifica enormemente los cálculos y mejora el rendimiento, pero no permite que las extensiones se compartan entre varias subparticiones. Ademas de ello, en Btrfs se ha agregado una nueva estructura de datos de «stripe tree», adecuada para el mapeo de extensión lógica en situaciones donde el mapeo físico no coincide entre dispositivos. La estructura se utiliza actualmente en implementaciones de RAID0 y RAID1 para dispositivos de bloques zonificados.
Suspensión del soporte para la arquitectura Itanium (ia64)
Se suspendió el soporte para la arquitectura ia64 utilizada en los procesadores Intel Itanium, que se suspendieron por completo en 2021. Intel introdujo los procesadores Itanium en 2001, pero la arquitectura ia64 no pudo competir con AMD64, principalmente debido al mayor rendimiento de AMD64 y la transición más fluida desde los procesadores x86 de 32 bits. Linus Torvalds expresó su voluntad de devolver el soporte ia64 al kernel, pero solo si hay un mantenedor que pueda demostrar alta calidad de soporte para esta plataforma fuera del kernel principal durante al menos un año.
Migración continua de cambios de la rama Rust-for-Linux
La nueva versión hace la transición al uso de la versión Rust 1.73 y ofrece un conjunto de enlaces para trabajar con colas de trabajo.
Mejoras en la implementación de colas FIFO
En esta nueva version de Linux 6.7 se agregó la implementación de un mecanismo light-weight FIFO de conexión única que requieren un spinlock solo para quitar la cola en un contexto de proceso y prescinden de este para adiciones atómicas a la cola en cualquier contexto. Ademas se agregó un búfer circular «objpool» con una implementación escalable de una cola de alto rendimiento para asignar y devolver objetos.
Soporte de cifrado TLS para NVMe-TCP
En Linux 6.7 el controlador NVMe-TCP (que le permite acceder a unidades NVMe a través de la red), ha agregado soporte para cifrar el canal de transmisión de datos usando TLS (usando KTLS y un proceso en segundo plano) en el espacio de usuario tlshd para negociación de conexión.
Mejora del rendimiento del programador de paquetes
Se optimizó el rendimiento del programador de paquetes fq, lo que permitió aumentar el rendimiento en un 5% bajo cargas pesadas en la prueba tcp_rr (Solicitud/Respuesta TCP) y en un 13% con un flujo ilimitado de paquetes UDP.
Adopción del TCP Authentication Option
En la pila TCP se ha agregado soporte para la extensión TCP-AO que permite verificar los encabezados TCP utilizando códigos MAC, utilizando algoritmos más modernos HMAC-SHA1 y CMAC-AES- 128 en lugar de la opción TCP-MD5 previamente disponible basada en el algoritmo MD5 heredado.
De los demás cambios que se destacan:
- Se han agregado nuevas configuraciones «cpuset.cpus.exclusive» y «cpuset.cpus.excluisve. Effective» a cpuset para el enlace exclusivo de la CPU.
- El subsistema BPF implementa soporte para excepciones , que se procesan como una salida de emergencia de un programa BPF con la capacidad de desenrollar marcos de pila de forma segura. Además, los programas BPF permiten el uso de punteros kptr en conexión con la CPU.
- Para las arquitecturas ARM32 y S390x, se agregó compatibilidad con el conjunto actual (cpuv4) de instrucciones BPF.
- Para la arquitectura RISC-V, es posible utilizar el modo de verificación Shadow-Call Stack disponible en Clang 17, diseñado para proteger contra la sobrescritura de la dirección de retorno de una función en caso de un desbordamiento del búfer en la pila.
- Se ha agregado un nuevo modo de escaneo de páginas de memoria inteligente al mecanismo para fusionar páginas de memoria idénticas (
- En AppArmor se ha agregado la capacidad de controlar el acceso al mecanismo io_uring y crear espacios de nombres de usuario, lo que le permite permitir selectivamente el acceso a estas capacidades solo a ciertos procesos.
- Se agregó API de certificación de máquina virtual para verificar la integridad del proceso de inicio de la máquina virtual.
- Los sistemas LoongArch admiten la virtualización mediante el hipervisor KVM.
- Se agregó soporte inicial para el firmware GSP-RM al módulo del kernel Nouveau, que se utiliza en la GPU NVIDIA RTX 20+ para mover las operaciones de inicialización y control de la GPU al lado de un microcontrolador GSP
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.