28 de noviembre de 2022

Linux 6.0 incluye soporte para AArch64, además de autenticación para NVMe y mucho más

Después de dos meses de desarrollo, Linus Torvalds ha lanzado el kernel de Linux 6.0 y de los cambios notables alrededor del 40 % de todos los cambios introducidos en 6.0 están asociados con los controladores de dispositivos, aproximadamente el 19 % de los cambios están relacionados con la actualización del código específico de las arquitecturas de hardware, el 12 % están relacionados con la pila de red, el 4 % con los sistemas de archivos y el 2 % con los internos.

De las principales novedades de la nueva versión del kernel de Linux 6.0 se presenta el soporte para la arquitectura de hardware AArch64 (ARM64), soporte para autenticación en banda NVMe, soporte para buses PCI en arquitecturas OpenRISC y LoongArch, escrituras asíncronas en búfer durante el uso de XFS e io_uring, así como soporte para transmisión de red, entre otras cosas más.

Al anunciar la disponibilidad general de la nueva versión del kernel, Torvalds dijo que la versión 6.0 es ‘uno de los mayores lanzamientos, al menos por número de confirmaciones, en bastante tiempo’, en gran parte debido a la inclusión de ‘15.000 confirmaciones totales no fusionadas’.

-¿Qué hay de nuevo en el Kernel de Linux 6?0?

En esta nueva versión del Kernel de Linux 6.0 se destaca que se incluye una mejor administración de energía y ACPI, lo que debería ayudar a los usuarios de los procesadores Sapphire Rapids de Intel a ahorrar energía.

Otro cambio importante es el soporte del kernel para SMB3 debería acelerar las transferencias de archivos y mejorar la seguridad al dar a más usuarios una razón para deshacerse de SMB1, que ya no es seguro y hace tiempo que se suspendió.

Ademas de ello, tambien se destaca que se añadió al sistema de archivos XFS soporte para escrituras asíncronas en búfer utilizando el mecanismo io_uring. Las pruebas de rendimiento realizadas con el kit de herramientas fiaron (1 subproceso, tamaño de bloque 4kb, 600 segundos, escritura secuencial) muestran un aumento en las operaciones de entrada/salida por segundo (IOPS) de 77k a 209k, tasas de transferencia de datos de 314MB/s a 854MB/s y la latencia cae de 9600 ns a 120 ns (80 veces).

Tambien se destaca que se agregó el soporte para autenticación en banda para unidades NVMe, ademas de que en el servidor NFSv4 se implementa un límite en la cantidad de clientes activos, que se establece en 1024 clientes válidos por gigabyte de RAM en el sistema.

La implementación del cliente CIFS ha mejorado el rendimiento de rutas múltiples, ademas de que se agregó una nueva bandera FAN_MARK_IGNORE al subsistema de seguimiento de eventos en fanotify FS para ignorar eventos específicos.

En el frente de la seguridad, en el Kernel de Linux 6.0 implementa la recuperación de semillas de números aleatorios de los datos de configuración del gestor de arranque para kernels x86 y m68k, asi como el soporte para el módulo de seguridad SafeSetID para controlar los cambios en setgroups(), soporte para el algoritmo de cifrado ARIA.

Se eliminó la configuración CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, que permitía compilar el kernel en el modo de optimización ‘-O3’. Se observa que la experimentación con los modos de optimización se puede llevar a cabo mediante el paso de indicadores durante la compilación (‘make KCFLAGS=-O3’), y para agregar una configuración a Kconfig, se requiere proporcionar un perfil de rendimiento repetible, mostrando que el desenrollado de bucle aplicado en el modo ‘-O3’ proporciona una ganancia en comparación con el nivel de optimización ‘-O2’.

Por otra parte, tambien se destaca que ahora los gráficos discretos Arc de Intel son compatibles y se ha mejorado la compatibilidad con algunas computadoras portátiles con tecnología Arm.

Lo mismo ocurre con la arquitectura LoongArch, la arquitectura soberana de China promocionada como candidata a tecnología autóctona para permitirle reducir la dependencia de la tecnología importada.

Tambien vale la pena mencionar las nuevas extensiones RISC-V están integradas en el núcleo principal como Zicbom, Zihintpause y Sstc. RISC-V también tiene una configuración de kernel predeterminada más útil para ejecutar aplicaciones como Docker y Snaps en construcciones defconfig;

Se agregó una interfaz debugfs para obtener información sobre el trabajo de ‘reductores de memoria’ individuales (controladores llamados cuando no hay suficiente memoria y empaquetan estructuras de datos del kernel para reducir su consumo de memoria).

De los demás cambios que se destacan de esta nueva versión:

  • Se ha implementado soporte para el bus PCI para las arquitecturas OpenRISC y LoongArch.
  • Se implementó la extensión ‘Zicbom’ para la arquitectura RISC-V para administrar dispositivos DMA no coherentes con la memoria caché.
  • Compatibilidad con Intel Raptor Lake P en el controlador RAPL.
  • Preparación de espera de AMD para el próximo hardware de AMD.
  • Compatibilidad con controladores de audio para plataformas AMD Raphael y Jadeite.
  • Compatibilidad con el controlador de audio Intel Meteor Lake.
  • La virtualización Intel IPI y AMD x2AVIC llegarán para KVM.
  • Compatibilidad con el controlador kernel Raspberry Pi V3D para Raspberry Pi 4.
  • Correcciones del controlador Atari FBDEV.
  • Desplazamiento más rápido de la consola en controladores FBDEV más antiguos.
  • Varias otras actualizaciones de controladores de gráficos de kernel de código abierto.
  • IO_uring soporte de controlador de bloque de espacio de usuario.
  • Optimización del rendimiento de IO_uring y adición de nuevas funciones, incluido el envío sin copia para la red.