Linux 5.9 llega con soporte de Zstd, mejoras de rendimiento y mas
Después de dos meses de desarrollo, Linus Torvalds dio a conocer el lanzamiento de la nueva version del Kernel de Linux, version que llega con diversos cambios notables, tales como el poder limitar la importación de símbolos de módulos propietarios a módulos GPL, soporte para comprimir la imagen del kernel usando Zstd, reelaborar la priorización de subprocesos en el kernel, soporte para PRP, programación de rendimiento en el programador de fechas límite, mejoras de rendimiento de dm-crypt, eliminación de código para invitados Xen PV de 32 bits, nuevo mecanismo de administración de memoria slab, entre otras cosas mas.
La nueva versión recibió 16074 correcciones de los desarrolladores de 2011, el tamaño del parche es de 62 MB (los cambios afectaron a 14,548 archivos, 782,155 líneas de código agregadas, 314,792 líneas eliminadas).
Principales novedades del Kernel de Linux 5.9
Dentro de los principales cambios que se destacan de esta nueva version del Kernel de Linux, podremos encontrar la protección reforzada contra el uso de capas intermedias GPL para vincular controladores propietarios con componentes del kernel exportados solo para módulos bajo la licencia GPL.
Se agregó soporte para kcompactd para empaquetar de forma proactiva las páginas de memoria en segundo plano para aumentar la cantidad de páginas de memoria grandes disponibles para el kernel.
Se agregó soporte para comprimir la imagen del kernel usando el algoritmo Zstandard (zstd).
Para los sistemas x86, se implementa el soporte para la instrucción del procesador FSGSBASE, lo que le permite leer y cambiar el contenido de los registros FS / GS desde el espacio de usuario.
En el programador de E/S de fecha límite implementa la programación basada en ancho de banda para tomar las decisiones correctas en sistemas asimétricos. En particular, el nuevo modo evita los desajustes de programación cuando un núcleo de CPU lento no tiene los recursos para completar una tarea a tiempo.
El subsistema de audio ALSA y la pila USB se han limpiado de términos políticamente incorrectos de acuerdo con las pautas recientemente adoptadas para el uso de terminología inclusiva en el kernel de Linux.
En el subsistema seccomp, cuando se usa el control de procesos en el espacio de usuario, se ha agregado la capacidad de sustituir descriptores de archivos en el proceso monitoreado para emular completamente las llamadas al sistema que conducen a la creación de descriptores de archivos.
Se ha agregado un modo a dm-crypt para reducir la latencia al realizar el procesamiento de datos criptográficos sin usar colas de trabajo. El modo especificado también es necesario para el funcionamiento correcto con dispositivos de bloques zonificados (dispositivos con áreas que deben escribirse secuencialmente con todo el grupo de bloques que se actualiza).
Se eliminó el código para admitir sistemas invitados de 32 bits que se ejecutan en modo de paravirtualización en el hipervisor Xen. Los usuarios de dichos sistemas deben cambiar al uso de kernels de 64 bits en entornos invitados o usar modos de virtualización completa (HVM) o combinada (PVH) en lugar de paravirtualización (PV) para ejecutar entornos.
Ademas, para Btrfs se eliminó el soporte para las opciones «alloc_start» y «subvolrootid», en desuso la opción «inode_cache». Se ha realizado una optimización del rendimiento, especialmente el rendimiento de las operaciones fsync () se ha acelerado significativamente. Se agregó la capacidad de usar tipos alternativos de sumas de verificación que no sean CRC32c.
Se agregó la capacidad de usar cifrado en línea (cifrado en línea) en los sistemas de archivos ext4 y F2FS, para habilitar la opción de montaje «inlinecrypt». El modo de cifrado en línea le permite utilizar los mecanismos de cifrado integrados en el controlador de la unidad, que cifran y descifran E/S de forma transparente.
Ext4 implementa la precarga de mapas de bits de asignación de bloques. Combinada con la limitación del escaneo de grupos no inicializados, la optimización ha reducido el tiempo de montaje de particiones muy grandes.
Para los dispositivos de almacenamiento NVMe, se ha agregado soporte para comandos de zonificación de unidades (ZNS, NVM Express Zoned Namespace), lo que le permite dividir el espacio de almacenamiento en zonas que forman grupos de bloques para tener más control sobre cómo se colocan los datos en la unidad.
Se agregó la capacidad de rechazar paquetes en Netfilter en la etapa antes de verificar el enrutamiento (la expresión REJECT ahora se puede usar no solo en las cadenas INPUT, FORWARD y OUTPUT, sino también en la etapa PREROUTING para icmp y tcp).
En nftables, la API netlink agrega soporte para cadenas anónimas, que son nombradas dinámicamente por el kernel. Cuando elimina una regla asociada con una cadena anónima, la cadena en sí se elimina automáticamente.
BPF agrega soporte para iteradores para atravesar, filtrar y modificar elementos de matrices asociativas (mapas) sin copiar datos en el espacio del usuario. Los iteradores se pueden utilizar para sockets TCP y UDP, lo que permite a los programas BPF iterar sobre listas de sockets abiertos y extraer la información que necesitan.
Para la arquitectura RISC-V, se implementa soporte para kcov (una interfaz debugfs para analizar la cobertura del código del kernel), kmemleak (un sistema de detección de fugas de memoria), protección de pila, etiquetas de salto y operaciones tickless (multitarea independiente del temporizador).
Para las arquitecturas ARM y ARM64, se utiliza el mecanismo predeterminado para regular la frecuencia del procesador schedutil (gobernador cpufreq), que utiliza directamente la información del programador de tareas para tomar una decisión sobre el cambio de frecuencia y puede acceder inmediatamente a los controladores cpufreq para cambiar rápidamente la frecuencia.
Finalmente si quieres conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.