Liberación del núcleo de Linux 7.3

Después de dos meses de desarrollo, Linus Torvalds presentó la versión 7.3 del núcleo Linux. Entre los cambios más destacados se encuentran: el mecanismo de aislamiento de sistemas de archivos basado en el pseudo-sistema de archivos failfs y la llamada al sistema fchroot(), soporte para la creación de planificadores anidados SCHED_EXT, controladores BPF para la ejecución de archivos, flujos de datos alternativos en NTFS3, optimizaciones de rendimiento para FUSE, Btrfs y Ext4, soporte para Apple Time Machine en ksmbd, eliminación de los sistemas de archivos EFS y FreeVxFS, modo de acceso directo a dispositivos de bloque, mejoras en el manejo de la falta de memoria de video, seguimiento de accesos a la memoria del sistema invitado a través de userfaultfd, compresión de reglas de AppArmor, restricción de acceso a AF_ALG y soporte para los chips Apple M3 Pro, Max y Ultra.

La nueva versión incluye 20260 correcciones de 3171 desarrolladores, de las cuales 807 enviaron sus cambios al núcleo por primera vez. El tamaño del parche es de 63 MB (los cambios afectaron a 14923 archivos, se añadieron 943849 líneas de código,
se eliminaron 297515 líneas). En la última versión hubo 17833 correcciones de 2766 desarrolladores, y el tamaño del parche fue de 68 MB. Aproximadamente el 44% de todos los cambios presentados en 7.3 están relacionados con controladores de dispositivos; alrededor del 12% de los cambios son actualizaciones de código específico de arquitecturas de hardware; el 12% está relacionado con la pila de red; el 5% con sistemas de archivos y el 3% con subsistemas internos del núcleo.

Novedades principales en el núcleo 7.3 (1, 2, 3):

  • Subsistema de disco, entrada/salida y sistemas de archivos
    • Se ha optimizado el rendimiento del sistema de archivos Btrfs. Para los discos duros no SSD, se ha eliminado la latencia innecesaria, lo que ha resultado en un aumento de cinco veces en el rendimiento para cargas que utilizan activamente la función fsync, como el registro de logs. Se ha desactivado la detección de agujeros en archivos con un alto número de extensiones y sin agujeros en fsync, lo que ha acelerado la ejecución de algunas pruebas específicas en cinco veces.

      Al rastrear los búferes no almacenados en caché de las extensiones, la estructura xarray se ha reemplazado por una lista LRU local, lo que ha triplicado el rendimiento de estas operaciones. Se han eliminado las caídas de rendimiento al usar el modo de entrada/salida directa, causadas por regresiones en versiones anteriores del núcleo. Se han reducido los bloqueos durante la lectura anticipada de extensiones, lo que ha disminuido la sobrecarga al acceder a áreas superpuestas desde diferentes tareas.

    • Se eliminó el soporte para la primera versión de la caché de información sobre espacio libre en Btrfs. Los sistemas de archivos creados en sistemas antiguos deben ser actualizados a la segunda versión de la caché utilizando la herramienta btrfstune, de lo contrario, funcionarán más lentamente. También se ha eliminado la opción de montaje «usebackuproot», que debe reemplazarse con «rescue=usebackuproot».
    • En el sistema de archivos Ext4 se ha mejorado el rendimiento de las operaciones de escritura paralelas en entradas/salidas directas (Direct I/O) y se ha acelerado la reserva de áreas vacías a través de la llamada fallocate(). Se ha corregido una regresión que disminuía el rendimiento en la escritura con búfer.
    • En el sistema de archivos Ext4, el modo de montaje «data=journal» ha sido declarado obsoleto. Se planea eliminar el soporte para esta opción de montaje en 2028. La opción «data=journal» activa el modo de registro completo, en el que se registran no solo los metadatos, sino también los propios datos, lo que garantiza una alta resistencia en caso de fallos, pero complica el mantenimiento del código y reduce significativamente el rendimiento en comparación con los modos «data=ordered» y «data=writeback».
    • Se eliminó el sistema de archivos EFS, que se utilizaba en las versiones antiguas del sistema operativo IRIX, dejó de usarse hace unos 30 años y ha estado sin mantenimiento durante más de 20 años. Para aquellos que necesiten acceso a particiones con EFS, existen herramientas que funcionan en el espacio de usuario.
    • Se eliminó el sistema de archivos FreeVxFS, que implementaba el formato del sistema de archivos VERITAS VxFS, utilizado en SCO UnixWare en la década de 1990 y que no ha sido utilizado en la práctica desde hace tiempo.
    • En el mecanismo de creación de sistemas de archivos en el espacio de usuario FUSE, se ha mejorado el rendimiento y se ha reducido el consumo de memoria al utilizar el sistema de entrada/salida asíncrono io_uring. Esta aceleración se ha logrado gracias a la adición de la capacidad de transferir grupos de búferes desde el espacio de usuario al núcleo y a la eliminación de la sobrecarga de búferes innecesaria (zero-copy) al acceder al servidor FUSE a las páginas de memoria del proceso cliente o al caché de páginas.
    • Para dispositivos de bloques, se ha implementado el indicador RWF_DONTCACHE, similar al modo de entrada/salida directa.
      (Direct I/O), que se puede utilizar en funciones preadv2() y pwritev2() o en solicitudes de lectura y escritura a través de io_uring para acceder al dispositivo de bloque evitando la caché de páginas. Por ejemplo, la bandera se puede aplicar en bases de datos para trabajar a bajo nivel con dispositivos de bloque.
    • En el sistema de archivos overlayfs se ha añadido soporte para el mapeo de identificadores de usuario, utilizado para asociar archivos de un determinado usuario en una partición montada de otro con otro usuario en el sistema actual.
    • Se ha mejorado el soporte para montar múltiples sistemas de archivos desde un solo dispositivo de bloque.
    • En el controlador ntfs3 se ha implementado soporte inicial para flujos de datos alternativos, compartidos a través de dos puntos en el nombre del archivo. Para crear un nuevo flujo alternativo se puede usar el comando 'touch archivo:flujo', para leer 'cat archivo:flujo', para eliminar 'rm archivo:flujo', y para mostrar flujos disponibles 'cat archivo:query_streams'.
    • En la nueva implementación de NTFS (ntfsplus) en modo de solo lectura, se ha añadido soporte para la tecnología de compresión de archivos transparente mediante filtros superpuestos WOF (Windows Overlay Filter).
    • En el servidor NFS se ha añadido soporte para la operación CB_NOTIFY, lo que permite al cliente almacenar en caché los metadatos de directorios en su lado, recibiendo notificaciones de cambios del servidor.
    • En el sistema de archivos F2FS se ha añadido soporte para la eliminación dinámica (sin desmontar el sistema de archivos) de particiones del grupo común con la transferencia automática de datos a otras particiones y retorno (por ejemplo, se puede retirar temporalmente un almacenamiento para otros fines).
    • En XFS se ha añadido soporte para la bandera FALLOC_FL_WRITE_ZEROES en la llamada del sistema fallocate(), permitiendo rellenar con ceros un rango especificado en el archivo, utilizando un comando WRITE_ZERO que algunos SSD pueden soportar, realizando el borrado sin operaciones de entrada/salida.
  • Memoria y servicios del sistema
    • Mejorada la gestión de la falta de memoria de video. En situaciones de agotamiento de memoria de video libre, el núcleo ahora intenta mover los búferes de aplicaciones sin cuota de memoria (dmem cgroup) de la memoria de video a la memoria del sistema (GTT), en lugar de denegar la asignación de memoria de video. Este enfoque garantiza la asignación de recursos a la aplicación para la cual el sistema ha reservado una cierta cantidad de memoria de video, incluso si ya está ocupada por otras aplicaciones. Anteriormente, si una aplicación sin cuotas había recibido memoria de video y había una falta de esta, la aplicación con cuotas garantizadas no podía obtenerla, y en lugar de memoria de video, a través del subsistema TTM (Translation Table Maps) se le asignaba memoria RAM del sistema más lenta, direccionada desde la GPU (GTT).
      Se ha implementado soporte para dmem cgroup en los controladores nouveau, xe y amdgpu.
    • En el mecanismo SCHED_EXT, que permite utilizar BPF para crear programadores de CPU, se ha completado el trabajo sobre la posibilidad de crear programadores anidados (sub-scheduler), mediante los cuales se puede implementar un programador de tareas propio para cada cgroup.
    • Se han realizado mejoras en el planificador de tareas relacionadas con el manejo de cgroup y la resolución de problemas de distribución de pesos, que generaban gastos generales adicionales y retrasos. Se han propuesto varios métodos de distribución de pesos para cgroup: 'up', 'max', 'concur' y 'tasks', configurables a través del parámetro cgroup_mode. Se ha activado una cola de ejecución unificada (runqueue) para la programación de tareas dentro del cgroup. Se han reducido los retrasos en la programación de tareas que reciben cortos cuantums de tiempo de CPU, gracias a
      la capacidad de cancelar, actualizar o minimizar el tiempo de ejecución de tareas protegidas contra desalojo cuando sea necesario.
    • Se ha implementado en el mecanismo binfmt_misc (/proc/sys/fs/binfmt_misc)
      la capacidad de conectar controladores BPF para agregar soporte para nuevos formatos de archivos ejecutables. Este cambio permite analizar programáticamente el tipo de archivo ejecutable en el momento de cada inicio y seleccionar un intérprete o cargador dinámico sin trucos como el uso de la herramienta patchelf y los scripts de envoltura. Por ejemplo, en un programa BPF, se pueden definir archivos ejecutables para otras arquitecturas o plataformas y ejecutar los emuladores correspondientes o Wine, así como simplificar la organización para ejecutar archivos ejecutables en paquetes instalados en diferentes directorios en sistemas con el gestor de paquetes Nix.
    • Se continúa la incorporación de cambios de la rama Rust-for-Linux relacionados con el uso del lenguaje Rust como segundo lenguaje para el desarrollo de controladores y módulos del núcleo (el soporte de Rust no está activado por defecto y no lleva a que Rust se incluya como una dependencia de compilación obligatoria para el núcleo). Se ha habilitado el uso de Rust para la arquitectura PowerPC. Se han implementado: un módulo para conversiones enteras sin pérdidas, un modo de registro ofuscado de valores de punteros para prevenir la fuga de información sobre el espacio de direcciones, un envoltorio sobre la función synchronize_rcu(), barreras de memoria, un módulo de interrupción para activar/desactivar interrupciones, tipos de entrada/salida, envoltorios sobre fwctl, un mecanismo SRCU (actualización de lectura-copia durmiente), envoltorios sobre gem shmem.
      bloqueos de spinlock SpinLockIrq, que no permiten interrupciones en secciones críticas.
    • Se ha añadido el parámetro sysctl syscall_user_dispatch para gestionar la activación del modo de despacho de llamadas al sistema en el espacio de usuario, permitiendo que un proceso intercepte las llamadas al sistema de otro proceso (se utiliza en Wine para emular llamadas al sistema de Windows).
    • En BPF se ha añadido la función bpf_sock_read_xattr(), mediante la cual los programas BPF pueden leer los atributos extendidos establecidos por el usuario
      (user.*) del inode de los sockets. En las aplicaciones BPF ha surgido la capacidad de definir variables globales vinculadas a la CPU. El verificador de programas BPF proporciona información adicional sobre los errores detectados, facilitando la identificación de las causas de los problemas.
    • En los mecanismos de trazado kprobes, uprobes y fprobes se ha implementado soporte para la conversión de tipos, utilizando datos BTF (BPF Type Format) con información para la verificación de tipos en pseudocódigo BPF, así como mejorada la extracción de información sobre variables.
    • En el subsistema DAMON (Data Access MONitor), que permite rastrear el acceso del proceso a los datos en la memoria RAM (por ejemplo, se puede averiguar a qué áreas de la memoria ha accedido el proceso y qué áreas de memoria han quedado sin usar), se ha añadido la posibilidad de monitorear los cambios en los atributos de los datos (memoria anónima, archivos mapeados en memoria, acceso solo de lectura, ausencia de accesos a la memoria, etc.).
    • En el mecanismo KHO (Kexec HandOver), utilizado para iniciar un nuevo núcleo desde uno viejo sin perder el estado del sistema, se ha tenido en cuenta la asignación de páginas de memoria grandes (huge pages) durante el arranque. Estas páginas de memoria ahora se marcan y se conservan después de iniciar el nuevo núcleo.
    • El código de bajo nivel del sistema de intercambio (swap) se ha trasladado a una nueva estructura de datos de bajo nivel swap_ops, que ha simplificado el mantenimiento del código y ha implementado las abstracciones necesarias para expandir la funcionalidad en el futuro.
    • Se han añadido comandos ioctl ALLOCINFO_IOC_CONTENT_ID, ALLOCINFO_IOC_GET_AT y ALLOCINFO_IOC_GET_NEXT, que permiten transferir selectivamente al espacio de usuario los datos de perfilado de la asignación de memoria. En comparación con la interfaz disponible anteriormente /proc/allocinfo, las llamadas ioctl propuestas permiten aumentar el rendimiento de las consultas de perfilado hasta 20 veces al filtrar datos innecesarios.
  • Virtualización y seguridad
    • Se ha propuesto un nuevo mecanismo de aislamiento que bloquea el acceso al contenido de los sistemas de archivos, excepto a los recursos que se han pasado explícitamente al entorno sandbox a través de descriptores de archivo. El mecanismo se ha implementado mediante el pseudo-SO failfs y la llamada al sistema fchroot.

      El sistema de archivos pseudo-failfs se asemeja al sistema de archivos nullfs, pero a diferencia de este último, implementa el principio de «nada se soporta» en lugar de «nada se almacena». Esta característica impide montar cualquier cosa sobre failfs, clonar el sistema de archivos y rastrear el estado a través de statmount(), listmount(), /proc//mountinfo y /proc/filesystems. Si el directorio raíz o de trabajo del proceso se encuentra en failfs, se bloquean todos los intentos de navegación por el sistema de archivos utilizando rutas de archivos absolutas, enlaces simbólicos y rutas relativas que dependen del directorio de trabajo actual. Al proceso solo se le permite acceder a un directorio específico a través de descriptores de archivos abiertos antes de la aislamiento.

      Para cambiar al nuevo modo de aislamiento se ha añadido la llamada al sistema fchroot, similar a la llamada al sistema chroot, pero que funciona a nivel de descriptores de archivos. En las llamadas al sistema fchdir se ha añadido la bandera FD_FAILFS_ROOT para mover el directorio de trabajo del proceso al sistema de archivos failfs.
      Una bandera similar está disponible en la llamada al sistema fchroot.

    • Se ha añadido la capacidad de rastrear las referencias a la memoria del sistema huésped mediante el mecanismo userfaultfd, que permite crear manejadores para referencias a páginas de memoria no asignadas o protegidas en el espacio de usuario. En práctica, esta capacidad propuesta permite al hipervisor identificar las páginas de memoria a las que no se ha accedido en la máquina virtual, para su desalojo a memoria más lenta o almacenamiento externo. Para rastrear violaciones de la prohibición de lectura y escritura en la región de memoria monitoreada, se ha añadido la bandera UFFDIO_REGISTER_MODE_RWP, que puede usarse como un equivalente de mayor rendimiento a la aplicación de mprotect(PROT_NONE) junto con un manejador de señales que se genera al intentar acceder a la memoria donde se impone la prohibición de lectura y escritura (en el caso de userfaultfd se genera una excepción que se maneja en el espacio de usuario). Este cambio fue preparado con la ayuda de IA ("Asistido por: Claude:claude-opus-4-6").
    • Se ha reforzado la separación entre los hilos del núcleo (kthread) y el proceso init (PID 1). Anteriormente, los hilos del núcleo y PID 1 compartían un estado común del sistema de archivos,
      lo que permitía mediante la llamada pivot_root() redefinir el estado del sistema de archivos para todos los hilos del núcleo. En la nueva versión, en el PID 1 se utiliza una estructura fs_struct completamente independiente, y los hilos del núcleo están aislados en un punto de montaje separado con nullfs.
    • Se ha agregado soporte para los modos de cifrado AES — ECB, CBC, CBC-CTS, CTR, XCTR, XTS, GCM y CCM a la biblioteca criptográfica integrada (libcrypto).
    • En el sistema de control de acceso obligatorio AppArmor se ha implementado la capacidad de cargar conjuntos de reglas comprimidas y se ha añadido un modo de auditoría.
    • Se ha añadido el parámetro sysctl af_alg_restrict, que controla el acceso al API criptográfico AF_ALG desde el espacio del usuario. AF_ALG permite utilizar aceleradores de hardware para cálculos criptográficos en el Crypto API del núcleo, pero se utiliza en situaciones bastante específicas y no siempre proporciona un aumento de rendimiento en comparación con la implementación de aceleración en el espacio del usuario. Además, se han identificado una serie de vulnerabilidades en los controladores relacionados con AF_ALG, como Copy Fail, que permiten alterar los datos en la caché de páginas. Para reducir la superficie de ataque, por defecto, el acceso a AF_ALG está parcialmente limitado. Se considera la posibilidad de eliminar AF_ALG en uno de los futuros lanzamientos.
    • Se ha endurecido la verificación de los programas BPF firmados digitalmente. Se ha añadido una verificación de la integridad de los metadatos del programa BPF antes de su carga.
    • Al sistema de llamada landlock_restrict_self(), utilizado para activar los bloqueos de Landlock, se le ha añadido una bandera
      LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, que prohíbe al proceso actual adquirir nuevos privilegios. El mecanismo Landlock permite a los programas no privilegiados renunciar a los privilegios no necesarios para su funcionamiento, limitando voluntariamente su acceso futuro al sistema para aumentar la seguridad, por ejemplo, para protegerse en caso de intentos de explotación de vulnerabilidades en el programa.
    • En el controlador VirtIO-GPU, que proporciona la operación de GPU virtual, se ha añadido soporte para el modo de suspensión S4 (hibernación).
  • Subsistema de red
    • En ksmbd, el servidor integrado en el núcleo para el protocolo SMB, se ha añadido soporte para las extensiones de Apple Time Machine para almacenar copias de seguridad creadas en macOS a través de esta aplicación. Se ha implementado un mecanismo de aislamiento de secuencias de comandos SMB en relación con MessageId para bloquear ataques mediante el envío de solicitudes inválidas o duplicadas. Se ha añadido soporte para el reenvío de solicitudes a través del protocolo SMB3 sin romper el estado de la sesión, si la solicitud anterior se perdió. En SMB3 se ha implementado la capacidad de cifrado a nivel de almacenes compartidos (share) individuales. Se ha añadido soporte para cifrado del canal de comunicación SMB Direct, que utiliza tecnología RDMA (Remote Direct Memory Access).
    • Se ha implementado la posibilidad de utilizar paquetes TCP con la extensión BIG TCP, que permite aumentar el tamaño máximo del paquete TCP a 4 GB, en túneles UDP basados en los protocolos VXLAN y GENEVE.
    • Se ha añadido soporte para el reenvío del protocolo MCTP (Management Component Transport Protocol) sobre USB (MCTP-over-USB 1.1).
    • Se ha proporcionado la opción de desactivar (unregistration) dispositivos de red (netkit, veth, vxcan, bareudp, geneve, ipvlan, macvlan, etc.) para los espacios de nombres seleccionados.
    • Para Bluetooth 6.2+ se ha implementado soporte para el mecanismo SCI (Shorter Connection Interval) para reducir las latencias en la transmisión de datos en modo Bluetooth LE (Low Energy).
    • En la API nl80211 se ha añadido un mecanismo unificado (NL80211_CMD_PROBE_PEER) para verificar los pares conectados, que funciona tanto en puntos de acceso inalámbricos como del lado del cliente.
  • Hardware
    • Se han declarado obsoletas y se pretende eliminar en el núcleo 7.5 las antiguas plataformas ARM, que se utilizan muy poco y dificultan el mantenimiento de subsistemas actuales. Se prevé eliminar alrededor de 55,000 líneas de código relacionadas con el soporte de plataformas sa1100, omap24xx, i.MX31, samv7, lpc18xx, riscpc, axxia, footbridge, antiguas placas pxa, orion, dove y mv78xx0, chips sin unidad de gestión de memoria (MMU) y microcontroladores stm32f4/f7/h7.
    • Se ha añadido soporte inicial para los chips Apple M3 Pro, Max y Ultra. Se ha implementado la gestión del estado de consumo energético para SoC de Apple.
    • En el subsistema DRM (Direct Rendering Manager) se ha añadido la propiedad 'color format', que permite al usuario cambiar el formato de representación del color para el dispositivo de salida. Esta propiedad se ha implementado para los controladores de GPU i915 (HDMI, DP), amdgpu (HDMI, DP) y rockchip (HDMI). Para probar, se puede utilizar un comando del tipo 'modetest -s 115:1920×1080-60@NV12 -w 115:'color format':4', donde 115 es el identificador del conector y '4' es el número del formato YUV420.
    • En el controlador amdgpu se ha añadido soporte para modificadores DRM para GPUs AMD de las series GFX6-8 (Southern Islands, Sea Islands y Volcanic Islands). Se ha implementado el soporte inicial para DCN 6.0.0 (Display Core Next). Se ha limpiado el código obsoleto.
      Se ha activado el soporte para CACP (Content Adaptive Contrast and Power), que permite reducir el consumo de energía de los paneles OLED. Para los motores de visualización en la arquitectura DCN4, se ha incluido el soporte para el mecanismo IPS (Idle Power State) para disminuir el consumo de energía durante la inactividad. Se añade soporte para las tarjetas gráficas AMD Barco.
    • En el controlador i915 se ha reescrito el código para determinar las capacidades y restaurar el estado de los conectores DisplayPort. Se ha incluido soporte para GPU Novalake (NVL) con CMTG (Common mode timing generator) y DC3DO (Display C3 with Clock Off).
    • Continúa el trabajo en el controlador drm (Direct Rendering Manager) Xe para GPUs basadas en la arquitectura Intel Xe, utilizada en las tarjetas gráficas Intel de la familia Arc y gráficos integrados a partir de procesadores Tiger Lake. Se han añadido nuevos identificadores de dispositivos compatibles. En configfs se ha implementado el atributo 'enable_multi_queue' para desactivar el uso simultáneo de múltiples colas de comandos. Se ha mejorado el soporte para el modo de suspensión.
    • Se ha continuado la integración de componentes del controlador Nova para GPUs NVIDIA, equipadas con firmware GSP, utilizado desde la serie NVIDIA GeForce RTX 2000 basada en la microarquitectura Turing. El controlador está escrito en Rust. En la nueva versión se ha realizado la transición a las nuevas imágenes de firmware TLV, en lugar de las versiones anteriores utilizadas en el controlador Nouveau. Se ha añadido soporte
      para el inicio del firmware para el chip GSP (GPU System Processor) con la activación de vGPU. Se ha añadido una API para obtener información sobre el tamaño de la memoria de video.
    • En el controlador Tyr, escrito en Rust y que gestiona GPUs ARM Mali, se ha añadido la capacidad de cargar firmware en formato Mali CSF, activar la memoria virtual de GPU y ejecutar MCU.
    • En el controlador msm se ha añadido soporte para GPU Adreno Shikra (A704) y Eliza (722).
    • Se ha añadido soporte para dispositivos de sonido y ASoC: Pioneer DJ DJM-S11,
      AW88399 (Lenovo Legion Pro), AW88399 (Lenovo Legion), Lisuan, ALC235, RME HDSPe AIO, RT766/RT767 SDCA, Maili, Hawi, CS35L62 (SoundWire), RT766/RT767 VA1.
    • Se ha añadido soporte para Steam Controller (modelo 2026); ratones Logitech G502 X Plus y G502 X Lightspeed; teclados Endorfy Thock TKL, Zenbook A16; auriculares Nova 5X, Nova 7 y Arctis 7; volante Turtle Beach VelocityOne Race; controlador MSI Claw.
    • Se ha mejorado el soporte de sonido en dispositivos ASUS VivoBook M515DA/X515DAP,
      LG gram 16 (16Z90TR), Minisforum AI X1 Pro, HP Pavilion 15-eh2xxx, HP Laptop 15-dy0xxx y HP Spectre x360 16-aa0xxx, HP EliteBook 6 G1, HP OmniBook X Flip 14, Lenovo Yoga Pro 7, Huawei Matebook,
      ThinkPad X1 Carbon 6th, HP ProBook 440 G5, Acer Aspire A515-57.
    • Se ha añadido compatibilidad con smartphones, tablets y laptops: Motorola Edge 30, Motorola Moto G2, Xiaomi 12 Lite 5G, Microsoft Surface Pro, Honor MagicBook art 1412in, Sony Xperia M2, Vicharak Axon, Axon Mini y Vaaman2, Asus Zenbook A16, Lenovo Thinkedge se70.
    • Se ha añadido soporte para plataformas ARM y SoC Samsung Exynos 1580 (que se utilizará en smartphones insignia desde 2024), Orange Pi 5 pro, Sophgo SG2000 (híbrido Arm/RISC-V), BeagleBadge, Qualcomm 'Shikra' y 'Altera' (Cortex-A78C), Agilex72 (Cortex-A720), Alientek ATK-DLRV1126, Variscite SoC DART-MX8M-PLUS, DART-MX8M-MINI, VAR-SOM-MX8QM y placas Sonata/Symphony basadas en ellos, 9Tripod X3568 v4, Youyeetoo YY3588, milk-v duo, ArmSoM CM5, Freescale Verdin iMX8M Mini, Anbernic rg vita-pro, Embedfire lubancat 4, Vicharak Vaaman, LincStation E1, HINLINK H28K.

Al mismo tiempo, la Fundación Latinoamericana de Software Libre ha formado
la variante del núcleo completamente libre 7.3 — Linux-libre 7.3-gnu, depurado de elementos de firmware y controladores que contienen componentes no libres o fragmentos de código cuya aplicación está restringida por el fabricante. En la versión 7.3, se ha limpiado de blobs nuevos controladores para GPU Mali Tyr, Morse Micro mm81x wi-fi, NXP wi-fi, y tarjetas de red con chips Realtek. Se ha actualizado el código de limpieza en los controladores nova-core, amdgpu, adreno, tegra, iris, rtw89 y mt76 wifi, Qualcomm Q6V5 PAS, qla2xxx scsi y códecs de audio aw88399. Se ha realizado la limpieza de nombres de blobs en archivos dts (devicetree) para chips ARM Qualcomm.

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