Linux 6.3 llega cargado de muchos cambios y novedades
Después de dos meses de desarrollo, Linus Torvalds dio a conocer el lanzamiento de la nueva versión del kernel Linux 6.3, en la cual entre los cambios más notables se destaca la limpieza de plataformas ARM y controladores de gráficos obsoletos, integración continua del soporte del lenguaje Rust, utilidad hwnoise, entre otras cosas mas.
La nueva versión aceptó 15637 correcciones de 2055 desarrolladores; tamaño del parche: 76 MB (los cambios afectaron a 14296 archivos, se agregaron 1023183 líneas de código, se eliminaron 883103 líneas). A modo de comparación, en la versión anterior, se propusieron 16843 correcciones de 2178 desarrolladores; tamaño del parche – 62 MB.
Principales novedades de Linux 6.3
En esta nueva version que se presenta se ha llevado a cabo una importante limpieza de código relacionado con placas ARM antiguas y sin uso , lo que ha reducido el tamaño de las fuentes del kernel en 150 mil líneas. Se eliminaron más de 40 plataformas ARM antiguas
Tambien se destaca que se continua con la migración desde la rama de Rust-for-Linux de funcionalidad adicional relacionada con el uso de Rust como segundo idioma para desarrollar controladores y módulos de kernel. La compatibilidad con Rust no está habilitada de forma predeterminada y no hace que Rust se incluya como una dependencia de compilación del kernel obligatoria. La funcionalidad ofrecida en versiones anteriores se ha ampliado con soporte para los tipos Arc (una implementación de punteros con un recuento de referencia), ScopeGuard (la limpieza se realiza cuando se sale del alcance) y ForeignOwnable (proporciona el movimiento del puntero entre el código C y Rust).
Ademas de ello, Linux en modo de usuario (que ejecuta el kernel como un proceso de usuario) en sistemas x86-64 admite código escrito en Rust y agregó soporte para compilar Linux en modo de usuario usando clang con optimizaciones de tiempo de enlace habilitadas (LTO).
Tambien podremos encontrar en esta nueva versión de Linux 6.3 la utilidad hwnoise para rastrear los retrasos causados por el comportamiento del hardware. Las desviaciones en el tiempo de ejecución de las operaciones (jitter) se determinan cuando el procesamiento de interrupciones está deshabilitado, superando un microsegundo en 10 minutos de cálculos.
Se agregó un módulo de kernel con una implementación de referencia de Dhrystone que se puede usar para evaluar el rendimiento de la CPU en configuraciones sin componentes de espacio de usuario (por ejemplo, la migración a SoC más nuevos que solo arrancan el kernel).
Para sistemas basados en la arquitectura del conjunto de instrucciones LoongArch (usado en los procesadores Loongson 3 5000 e implementando un nuevo RISC ISA similar a MIPS y RISC-V), se añadió el soporte para la aleatorización del espacio de direcciones del kernel (KASLR), reubicación del kernel en la memoria (reubicación ), tope de puntos de hardware y mecanismo kprobe.
El mecanismo memfd, que permite identificar un área de memoria a través de un descriptor de archivo pasado entre procesos, se ha agregado la capacidad de crear áreas en las que la ejecución de código está prohibida (memfd no ejecutable) y es imposible establecer derechos de ejecución en el futuro.
Por otra parte, se destaca que en Linux 6.3 se aborda una vulnerabilidad que podría eludir la protección contra ataques de Spectre v2 cuando se usa tecnología de subprocesos múltiples simultáneos (SMT o Hyper-Threading) y causada por la desactivación del mecanismo STIBP (Predictores de bifurcación indirecta de un solo subproceso) al seleccionar el modo de protección IBRS.
Para IPv4, es posible utilizar la extensión BIG TCP, que permite aumentar el tamaño máximo del paquete TCP hasta 4 GB para optimizar el funcionamiento de las redes internas de alta velocidad de los centros de datos. Este aumento en el tamaño del paquete con un campo de encabezado de 16 bits se logra mediante la implementación de paquetes «jumbo» que tienen el tamaño del encabezado IP establecido en 0 y el tamaño real se transmite en un campo de 32 bits separado en un encabezado adjunto separado.
De los demás cambios que se destacan:
- Se ha agregado un controlador DRM para la VPU (Unidad de procesamiento versátil) integrado en las CPU Intel Meteor Lake (14.ª generación), diseñado para acelerar las operaciones de visión por computadora y aprendizaje automático.
- El controlador se implementa mediante el subsistema » accel «, cuyo objetivo es proporcionar soporte para aceleradores de cómputo que se pueden enviar como ASIC independientes o como bloques de IP dentro de SoC y GPU.
- El controlador i915 (Intel) amplía la compatibilidad con las tarjetas gráficas discretas Intel Arc (DG2/Alchemist), brinda compatibilidad preliminar con las GPU Meteor Lake e incluye compatibilidad con las GPU Intel Xe HP 4tile.
- El controlador amdgpu agrega soporte para la tecnología AdaptiveSync y la capacidad de usar Secure Display con varias pantallas. Soporte actualizado para DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x y DP 2.1.
- Se agregó soporte para las plataformas SM8350, SM8450 SM8550, SDM845 y SC8280XP al controlador msm (GPU Qualcomm Adreno).El controlador Nouveau ha dejado de admitir llamadas ioctl antiguas.
- Rendimiento mejorado de ext4 FS al permitir que varios procesos realicen simultáneamente operaciones de E/S directas en bloques preasignados mediante bloqueos de inodos compartidos en lugar de bloqueos exclusivos.
- Se ha agregado soporte experimental para NPU VerSilicon (VeriSilicon Neural Network Processor) al controlador etnaviv.
- Se agregó el controlador ath12k para tarjetas inalámbricas basadas en chips Qualcomm con compatibilidad con Wi-Fi 7.
- Se agregó compatibilidad con tarjetas inalámbricas basadas en chips RealTek RTL8188EU.
- Se agregó soporte para placas RISC-V basadas en SoC Allwinner D1 y D1s.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los demás detalles en el siguiente enlace.