Lanzamiento del núcleo Linux 5.17

Después de dos meses de desarrollo, Linus Torvalds presentó el lanzamiento del núcleo Linux 5.17. Entre los cambios más destacados se encuentran: un nuevo sistema de gestión del rendimiento para los procesadores AMD, la posibilidad de mapeo recursivo de identidades de usuarios en sistemas de archivos, soporte para programas BPF compilados portátiles, la transición del generador de números pseudoaleatorios al algoritmo BLAKE2s, la herramienta RTLA para análisis de ejecución en tiempo real, un nuevo backend fscache para la caché de sistemas de archivos de red, y la posibilidad de adjuntar nombres a operaciones anónimas mmap.

La nueva versión incluye 14,203 correcciones de 1,995 desarrolladores, el tamaño del parche es de 37 MB (los cambios afectaron a 11,366 archivos, se añadieron 506,043 líneas de código y se eliminaron 250,954 líneas). Aproximadamente el 44% de todas las modificaciones introducidas en 5.17 están relacionadas con controladores de dispositivos, alrededor del 16% se refieren a la actualización del código específico para arquitecturas de hardware, el 15% está relacionado con la pila de redes, el 4% con sistemas de archivos y el 4% con subsistemas internos del núcleo.

Las principales novedades del núcleo 5.17:

  • Subsistema de disco, entrada/salida y sistemas de archivos
    • Se ha implementado la posibilidad de mapeo anidado de identidades de usuarios de sistemas de archivos montados, utilizado para asociar archivos de un usuario específico en una partición montada ajena con otro usuario en el sistema actual. La nueva funcionalidad permite usar el mapeo recursivamente sobre sistemas de archivos para los cuales ya se aplica el mapeo.
    • Se ha reescrito completamente el subsistema fscache, utilizado para organizar la caché en un sistema de archivos local de datos transmitidos a través de sistemas de archivos de red. La nueva implementación presenta una simplificación significativa del código y reemplaza operaciones complejas de programación y seguimiento del estado de objetos por mecanismos más sencillos. El soporte para el nuevo fscache se ha implementado en el sistema de archivos CIFS.
    • En el subsistema de seguimiento de eventos en FS, fanotify se ha implementado un nuevo tipo de evento FAN_RENAME, que permite interceptar de una vez la operación de renombrado de archivos o directorios (anteriormente, se utilizaban dos eventos separados, FAN_MOVED_FROM y FAN_MOVED_TO, para manejar los renombrados).
    • Se ha optimizado el registro de operaciones y fsync en el sistema de archivos Btrfs para grandes directorios, logrando esto a través de la copia solo de claves de índice y la reducción del volumen de metadatos registrados. Se ha proporcionado soporte para la indexación y búsqueda por tamaño de registros sobre espacio libre, lo que ha permitido reducir las latencias aproximadamente en un 30% y acortar el tiempo de búsqueda. Se permite interrumpir las operaciones de desfragmentación. Se ha habilitado la posibilidad de agregar dispositivos mientras se desactiva el balanceo entre unidades, es decir, al montar el sistema de archivos con la opción skip_balance.
    • Se ha propuesto una nueva sintaxis para montar el sistema de archivos Ceph, que resuelve los problemas existentes relacionados con la vinculación a direcciones IP. Además, direcciones IP para identificar el servidor, ahora se puede usar el identificador del clúster (FSID): mount -t ceph user@fsid.fs_name=/[subdir] mnt -o mon_addr=monip1[:port][ /monip2[:port]]
    • El sistema de archivos Ext4 ha sido trasladado a una nueva API para el montaje, que separa las etapas de análisis de opciones de montaje y configuración del superblock. Se ha cesado el soporte para las opciones de montaje lazytime y nolazytime, que fueron añadidas como un cambio temporal para simplificar la migración de util-linux al uso de la bandera MS_LAZYTIME. Se ha añadido soporte para establecer y leer etiquetas en el sistema de archivos (ioctl FS_IOC_GETFSLABEL y FS_IOC_SETFSLABEL).
    • NFSv4 ha añadido soporte para operar en sistemas de archivos sin distinción de mayúsculas en los nombres de archivos y directorios. En NFSv4.1+ se ha añadido soporte para la definición de sesiones agregadas (trunking).
  • Memoria y servicios del sistema
    • Se ha añadido el controlador amd-pstate, que proporciona gestión dinámica de frecuencia para alcanzar un rendimiento óptimo. El controlador soporta CPU y APU AMD a partir de la generación Zen 2, desarrollado en conjunto con Valve y enfocado en mejorar la eficiencia de la gestión del consumo energético. Se utiliza el mecanismo CPPC (Control de Rendimiento de Procesador Colaborativo) para un cambio de frecuencia más preciso (sin limitarse a tres niveles de rendimiento) y para reaccionar más rápido a los cambios de estado, en comparación con los controladores de P-state utilizados anteriormente basados en ACPI (CPUFreq).
    • En el subsistema eBPF se ha propuesto el manejador bpf_loop(), que proporciona una forma alternativa de organizar ciclos en programas eBPF, siendo más rápida y sencilla de verificar por el verificador.
    • A nivel del núcleo se ha implementado el mecanismo CO-RE (Compile Once — Run Everywhere), que permite compilar el código de programas eBPF solo una vez y utilizar un cargador universal especial que adapta el programa cargado al núcleo actual y a los tipos BTF (BPF Type Format).
    • Se ha habilitado la posibilidad de asignar nombres a regiones de memoria privada anónima (asignadas a través de malloc), lo que puede simplificar la depuración y optimización del consumo de memoria en aplicaciones. Los nombres se asignan mediante prctl con la bandera PR_SET_VMA_ANON_NAME y se muestran en /proc/pid/maps y /proc/pid/smaps en la forma «[anon:]».
    • En el planificador de tareas se ha garantizado el seguimiento y la visualización en /proc/PID/sched del tiempo que los procesos pasan en estado de inactividad forzada (forced-idle), que se aplica, por ejemplo, para reducir la carga en caso de sobrecalentamiento del procesador.
    • Se ha añadido el módulo gpio-sim, destinado a simular chips GPIO para realizar pruebas.
    • Se ha añadido un subcomando «latency» al comando «perf ftrace» para generar histogramas con información sobre las latencias.
    • Se ha añadido un conjunto de utilidades «RTLA» para analizar el rendimiento en tiempo real. Incluye utilidades como osnoise (que determina la influencia del sistema operativo en la ejecución de tareas) y timerlat (que modifica las latencias relacionadas con el temporizador).
    • Se ha integrado la segunda serie de parches con la implementación de la concepción de folios de páginas de memoria (page folios), que se asemejan a las páginas de memoria compuestas (compound pages), pero se diferencian por una semántica mejorada y una organización del trabajo más clara. El uso de folios permite acelerar la gestión de memoria en algunos subsistemas del núcleo. En los parches propuestos, se ha completado la transición del caché de páginas al uso de folios y se ha añadido soporte inicial para folios en el sistema de archivos XFS.
    • Se ha añadido el modo de compilación «make mod2noconfig», en el que se genera una configuración que compila todos los subsistemas desactivados en forma de módulos del núcleo.
    • Se han elevado los requisitos para la versión de LLVM/Clang que se puede utilizar para compilar el núcleo. Ahora se requiere al menos la versión 11 de LLVM para la compilación.
  • Virtualización y seguridad
    • Se ha propuesto una implementación actualizada del generador de números pseudoaleatorios RDRAND, responsable del funcionamiento de los dispositivos /dev/random y /dev/urandom, notable por la transición al uso de la función hash BLAKE2s en lugar de SHA1 para las operaciones de mezcla de entropía. Este cambio ha mejorado la seguridad del generador de números pseudoaleatorios, al eliminar el problemático algoritmo SHA1 y evitar la sobrescritura del vector de inicialización RNG. Dado que el algoritmo BLAKE2s supera a SHA1 en rendimiento, su aplicación también ha tenido un efecto positivo en el rendimiento.
    • Se ha añadido protección contra vulnerabilidades en los procesadores, causadas por la ejecución especulativa de instrucciones después de operaciones de salto incondicional directo. El problema surge debido al procesamiento anticipado de instrucciones que siguen en la memoria inmediatamente después del comando de salto (SLS, Especulación de Línea Recta). Para habilitar la protección, se requiere compilar utilizando la versión GCC 12, que se encuentra en fase de pruebas.
    • Se ha agregado un mecanismo de seguimiento del conteo de referencias (refcount, conteo de referencias), dirigido a reducir la cantidad de errores de conteo de referencias que conducen al acceso a la memoria después de que ha sido liberada. Actualmente, el mecanismo está limitado al subsistema de red, pero en el futuro podría adaptarse a otras partes del núcleo.
    • Se han implementado verificaciones ampliadas para nuevas entradas en la tabla de páginas de memoria del proceso, lo que permite detectar ciertos tipos de corrupciones y detener el sistema, bloqueando ataques en una etapa temprana.
    • Se ha añadido la capacidad de desempaquetar módulos del núcleo directamente por el propio núcleo, en lugar de por un manejador en el espacio de usuario, lo que permite, mediante el módulo LSM LoadPin, garantizar que los módulos del núcleo se carguen en memoria desde un dispositivo de almacenamiento verificado.
    • Se ha asegurado la compilación con la opción '-Wcast-function-type', que activa la emisión de advertencias sobre la conversión de punteros de funciones a tipos incompatibles.
    • Se ha añadido un controlador de host virtual pvUSB para el hipervisor Xen, que proporciona acceso a dispositivos USB pasados a las máquinas invitadas (permite que las máquinas invitadas accedan a dispositivos USB físicos asignados a la máquina invitada).
    • Se ha añadido un módulo que permite interactuar a través de Wi-Fi con el subsistema IME (Intel Management Engine), que se incluye en la mayoría de las placas base modernas con procesadores Intel y que se implementa como un microprocesador independiente del CPU.
    • Se ha implementado soporte para la herramienta de depuración KCSAN (Kernel Concurrency Sanitizer) en la arquitectura ARM64, destinada a la detección dinámica de condiciones de carrera dentro del núcleo.
    • Para sistemas ARM de 32 bits, se ha añadido la posibilidad de aplicar el mecanismo KFENCE para detectar errores en el manejo de la memoria.
    • Se ha añadido soporte para las instrucciones AMX (Advanced Matrix Extensions) en el hipervisor KVM, que se implementarán en los próximos procesadores de servidor Intel Xeon Scalable.
  • Subsistema de red
    • Se ha añadido soporte para el offloading de las operaciones relacionadas con la gestión del tráfico a los dispositivos de red.
    • Se ha añadido la posibilidad de utilizar el protocolo MCTP (Management Component Transport Protocol) sobre dispositivos con interfaz serial. MCTP se puede utilizar para la interacción entre controladores de gestión y dispositivos relacionados (procesadores host, dispositivos periféricos, etc.).
    • Se ha optimizado la pila TCP, por ejemplo, para mejorar el rendimiento de las llamadas recvmsg, se ha implementado la liberación diferida de los buffers de los sockets.
    • A nivel de privilegios CAP_NET_RAW, se ha permitido establecer a través de la función setsockopt los modos SO_PRIORITY y SO_MARK.
    • Para IPv4, se ha permitido el enlace de sockets raw a direcciones IP no locales, utilizando las opciones IP_FREEBIND y IP_TRANSPARENT.
    • Se ha añadido sysctl arp_missed_max para configurar el número umbral de fallos en la verificación de ARP por parte del monitor, después del cual la interfaz de red se desactiva.
    • Se ha proporcionado la capacidad de configurar valores individuales de sysctl min_pmtu y mtu_expires para los espacios de nombres de red.
    • En la API ethtool, se ha añadido la posibilidad de establecer y determinar el tamaño de los buffers de los paquetes entrantes y salientes.
    • En Netfilter, se ha añadido soporte para la filtración del tráfico PPPoE de paso en el puente de red.
    • En el módulo ksmbd que implementa el servicio de archivos, servidoresque utiliza el protocolo SMB3, se ha añadido soporte para el intercambio de claves, se ha utilizado el puerto de red 445 para smbdirect y se ha añadido soporte para el parámetro "smb2 max credit.
  • Hardware
    • En el subsistema drm (Direct Rendering Manager) y el controlador i915 se añadió soporte para pantallas que muestran información confidencial, por ejemplo, algunos portátiles vienen con pantallas que tienen un modo de visualización confidencial, lo que dificulta la visualización desde un lado. Los cambios introducidos permiten conectar controladores especializados para dichas pantallas y gestionar los modos de visualización confidencial a través de la configuración de propiedades en los controladores KMS normales.
    • En el controlador amdgpu se habilitó el soporte para la tecnología de depuración STB (Smart Trace Buffer) para todas las GPU AMD que la soportan. STB facilita el análisis de fallos y la identificación de la fuente de problemas al almacenar en un búfer especial información sobre las funciones que se llevaron a cabo antes del último fallo.
    • En el controlador i915 se añadió soporte para los chips Intel Raptor Lake S y se habilitó por defecto el soporte para el subsistema gráfico de los chips Intel Alder Lake P. Se brindó la posibilidad de gestionar la retroiluminación de la pantalla a través de la interfaz DPCD VESA.
    • En los controladores fbcon/fbdev se reintrodujo el soporte para la aceleración de hardware en el desplazamiento en la consola.
    • Se continuó la integración de cambios para el soporte de chips Apple M1. Se implementó la capacidad de utilizar el controlador simpledrm en sistemas con el chip Apple M1 para la salida a través del framebuffer provisto por el firmware.
    • Se añadió soporte para SoC ARM, dispositivos y placas Snapdragon 7c, 845 y 888 (Sony Xperia XZ2/XZ2C/XZ3, Xperia 1 III/5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 (Acer Chromebook 314), Mediatek MT7986a/b (utilizado en enrutadores Wi-fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • Se añadió soporte para procesadores ARM Cortex-M55 y Cortex-M33.
    • Se añadió soporte para dispositivos basados en CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Se añadió soporte para SoC StarFive JH7100 basado en la arquitectura RISC-V.
    • Se añadió el controlador lenovo-yogabook-wmi para gestionar la retroiluminación del teclado y acceder a varios sensores en el Lenovo Yoga Book.
    • Se añadió el controlador asus_wmi_sensors para acceder a los sensores utilizados en placas base Asus X370, X470, B450, B550 y X399 basadas en procesadores AMD Ryzen.
    • Se añadió el controlador x86-android-tablets para tabletas basadas en la arquitectura x86, que vienen con la plataforma Android.
    • Se añadió soporte para pantallas táctiles TrekStor SurfTab duo W1 y lápices electrónicos para tabletas Chuwi Hi10 Plus y Pro.
    • En los controladores para SoC Tegra 20/30 se añadió soporte para la gestión de energía y voltaje. Se facilitó la posibilidad de arranque en antiguos dispositivos de 32 bits basados en SoC Tegra, como ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 y Pad TF300TG.
    • Se añadieron controladores para computadoras industriales Siemens.
    • Se añadió soporte para paneles LCD Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA y Team Source Display TST043015CMHX.
    • Se añadió soporte para sistemas de audio y codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, sistemas Intel que utilizan NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/P-DIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Se resolvieron problemas con el audio HD de Tegra194. Se añadió soporte HDA para codecs CS35L41. Se mejoró el soporte de sistemas de audio para laptops Lenovo y HP, así como placas base Gigabyte.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster