Après deux mois de développement, Linus Torvalds a présenté la version du noyau Linux 7.3. Parmi les changements les plus notables : un mécanisme d'isolation du système de fichiers basé sur le pseudo-système de fichiers failfs et l'appel système fchroot(), le support de la création de planificateurs imbriqués SCHED_EXT, des gestionnaires BPF pour le lancement de fichiers exécutables, des flux de données alternatifs dans NTFS3, des optimisations de performances pour FUSE, Btrfs et Ext4, le support d'Apple Time Machine dans ksmbd, la suppression des systèmes de fichiers EFS et FreeVxFS, un mode d'accès direct aux dispositifs de blocs, une amélioration du traitement du manque de vidéo mémoire, un suivi des accès à la mémoire du système invité via userfaultfd, la compression des règles AppArmor, la restriction d'accès à AF_ALG, et le support des puces Apple M3 Pro, Max et Ultra.
La nouvelle version comprend 20260 corrections de la part de 3171 développeurs, dont 807 ont soumis leurs modifications pour la première fois au noyau. La taille du patch est de 63 Mo (les modifications ont concerné 14923 fichiers, 943849 lignes de code ajoutées,
297515 lignes supprimées). Dans la version précédente, il y avait 17833 corrections de la part de 2766 développeurs, la taille du patch était de 68 Mo. Environ 44 % de tous les changements présentés dans 7.3 sont liés aux pilotes de périphériques, environ 12 % concernent la mise à jour de code spécifique aux architectures matérielles, 12 % sont liés à la pile réseau, 5 % aux systèmes de fichiers et 3 % aux sous-systèmes internes du noyau.
Les principales nouveautés du noyau 7.3 (1, 2, 3) :
- Sous-système de disque, entrée/sortie et systèmes de fichiers
- Une optimisation des performances du système de fichiers Btrfs a été réalisée. Pour les disques non SSD, le retard inutile a été supprimé, ce qui a entraîné une augmentation de cinq fois la bande passante pour les charges de travail utilisant activement la fonction fsync, comme l'écriture de journaux. Dans fsync, la détection des espaces vides dans les fichiers avec un grand nombre d'extent et sans espaces vides a été désactivée, ce qui a accéléré l'exécution de certains tests spécifiques par cinq.
Lors du suivi des buffers d'extent non cachés, la structure xarray a été remplacée par une liste LRU locale, ce qui a triplé les performances de ces opérations. Des régressions dans les versions précédentes du noyau ont causé des baisses de performances en mode d'entrée/sortie directe. Les verrous lors de la lecture anticipée des extent ont été réduits, ce qui a diminué les frais généraux dus aux accès de différentes tâches à des zones qui se chevauchent.
- Dans Btrfs, le support de la première version du cache d'informations sur l'espace libre a été supprimé. Les systèmes de fichiers créés sur d'anciennes versions doivent être mis à jour vers la deuxième version du cache à l'aide de l'outil btrfstune, sinon ils fonctionneront plus lentement. L'option de montage « usebackuproot » a également été supprimée, à la place, il faut utiliser « rescue=usebackuproot ».
- Dans le système de fichiers Ext4, la performance des opérations d'écriture parallèles en entrée/sortie directe (Direct I/O) a été améliorée et la réservation des espaces vides a été accélérée via l'appel fallocate(). Une régression qui diminuait les performances lors de l'écriture mise en mémoire tampon a été corrigée.
- Dans le système de fichiers Ext4, le mode de montage « data=journal » a été classé comme obsolète. Le support de cette option de montage devrait cesser en 2028. L'option « data=journal » active le mode de journalisation complète, où non seulement les métadonnées mais aussi les données elles-mêmes sont enregistrées dans le journal, ce qui garantit une haute résilience en cas de pannes, mais complique la maintenance du code et entraîne une diminution significative des performances par rapport aux modes « data=ordered » et « data=writeback ».
- Le système de fichiers EFS a été supprimé, utilisé dans les anciennes versions du système d'exploitation IRIX, ne l'ayant plus été pendant environ 30 ans et étant abandonné depuis plus de 20 ans. Pour ceux qui ont besoin d'accéder à des partitions EFS, des outils fonctionnant en espace utilisateur sont disponibles.
- Le système de fichiers FreeVxFS, qui réalisait le format de système de fichiers VERITAS VxFS utilisé dans SCO UnixWare dans les années 1990, a été supprimé, car il n'est plus utilisé pratiquement depuis longtemps.
- Dans le mécanisme de création de systèmes de fichiers en espace utilisateur FUSE, la performance a été améliorée et la consommation de mémoire réduite lors de l'utilisation du système d'entrée/sortie asynchrone io_uring. L'accélération a été obtenue grâce à l'ajout de la possibilité de transmettre des pools de buffers de l'espace utilisateur au noyau et à l'exclusion de la surmémoire (zero-copy) lors de l'accès du serveur FUSE aux pages mémoire du processus client ou au cache de pages.
- Pour les dispositifs de blocs, un drapeau RWF_DONTCACHE a été implémenté, similaire au mode d'entrée/sortie directe.
(Direct I/O), qui peut être utilisé dans les fonctions preadv2() et pwritev2() ou dans les requêtes de lecture et d'écriture via io_uring pour accéder à un périphérique de bloc en contournant le cache de page. Par exemple, le drapeau peut être utilisé dans une base de données pour un travail de bas niveau avec des dispositifs de stockage en bloc. - Dans le système de fichiers overlayfs, le support du mappage des identifiants d'utilisateurs a été ajouté, utilisé pour faire correspondre les fichiers d'un utilisateur particulier sur une partition montée étrangère avec un autre utilisateur dans le système actuel.
- Amélioration du support du montage de plusieurs systèmes de fichiers à partir d'un seul périphérique de bloc.
- Dans le pilote ntfs3, un support initial des flux de données alternatifs, partagés par deux-points dans le nom de fichier, a été implémenté. Pour créer un nouveau flux alternatif, on peut utiliser la commande « touch file:flux », pour lire — « cat file:flux », pour supprimer — « rm file:flux », pour afficher les flux disponibles — « cat file:query_streams ».
- La nouvelle implémentation NTFS (ntfsplus) en mode lecture seule a introduit le support de la technologie de compression transparente des fichiers utilisant des filtres superposés WOF (Windows Overlay Filter).
- Le serveur NFS a ajouté le support de l'opération CB_NOTIFY, permettant au client de mettre en cache les métadonnées de répertoires côté client, en recevant des notifications de changements du serveur.
- Dans le système de fichiers F2FS, le support de la suppression dynamique (sans démonter le système de fichiers) de partitions du pool partagé a été ajouté, avec un transfert automatique des données vers d'autres partitions et un retour arrière (par exemple, un périphérique peut être temporairement retiré pour d'autres usages).
- Dans XFS, le support du drapeau FALLOC_FL_WRITE_ZEROES dans l'appel système fallocate() a été ajouté, permettant de remplir de zéros une plage spécifiée dans un fichier, en utilisant une commande WRITE_ZERO pris en charge par certains SSD, réalisant l'opération sans opérations d'entrée/sortie.
- Une optimisation des performances du système de fichiers Btrfs a été réalisée. Pour les disques non SSD, le retard inutile a été supprimé, ce qui a entraîné une augmentation de cinq fois la bande passante pour les charges de travail utilisant activement la fonction fsync, comme l'écriture de journaux. Dans fsync, la détection des espaces vides dans les fichiers avec un grand nombre d'extent et sans espaces vides a été désactivée, ce qui a accéléré l'exécution de certains tests spécifiques par cinq.
- Mémoire et services système
- Amélioration du traitement du manque de mémoire vidéo. Dans les situations d'épuisement de la mémoire vidéo libre, le noyau essaie désormais de déplacer vers la mémoire système (GTT) les buffers des applications ne disposant pas d'un quota mémoire garanti (dmem cgroup), au lieu de refuser directement l'allocation de mémoire vidéo. Cette approche garantit l'allocation de ressources à une application à laquelle le système a réservé une certaine quantité de mémoire vidéo, même si cette mémoire est déjà utilisée par d'autres applications. Auparavant, si de la mémoire vidéo avait déjà été allouée à une application sans quota, dans une situation de pénurie de mémoire vidéo, une application avec quotas garantis ne pouvait pas l'obtenir, et au lieu de la mémoire vidéo via le sous-système TTM (Translation Table Maps), une mémoire vive système plus lente, adressée par le GPU (GTT), était allouée à l'application.
Le support de dmem cgroup a été implémenté pour les pilotes nouveau, xe et amdgpu. - Dans le mécanisme SCHED_EXT, permettant d'utiliser BPF pour créer des planificateurs CPU, le travail sur la possibilité de créer des planificateurs imbriqués (sub-scheduler) est terminé, permettant à chaque cgroup d'utiliser son propre planificateur de tâches.
- Des améliorations ont été apportées au planificateur de tâches concernant le traitement des cgroups et la résolution de problèmes de distribution des poids, qui entraînaient des frais généraux et des délais supplémentaires. Plusieurs méthodes de distribution des poids pour les cgroups ont été proposées : 'up', 'max', 'concur' et 'tasks', définies via le paramètre cgroup_mode. Une file d'attente d'exécution unique (runqueue) est activée pour la planification des tâches à l'intérieur du cgroup. Les délais de planification des tâches recevant de courts quanta de temps processeur ont été réduits grâce à
la possibilité d'annuler, de mettre à jour ou de minimiser le temps d'exécution des tâches protégées contre l'éviction si nécessaire. - Le mécanisme binfmt_misc (/proc/sys/fs/binfmt_misc) a été implémenté.
la possibilité de connecter des gestionnaires BPF pour ajouter le support de nouveaux formats de fichiers exécutables. Ce changement permet d'analyser par programme le type de fichier exécuté à chaque lancement et de choisir l'interpréteur ou le chargeur dynamique approprié sans recourir à des détournements, tels que l'utilisation de l'outil patchelf et de scripts d'enveloppe. Par exemple, dans un programme BPF, il est possible de définir des fichiers exécutables pour d'autres architectures ou plateformes et de lancer les émulateurs correspondants ou Wine, tout en simplifiant l'organisation de l'exécution des fichiers exécutables dans les paquets installés dans différents répertoires sur des systèmes avec gestionnaire de paquets Nix. - La transition des changements de la branche Rust-for-Linux, relative à l'utilisation du langage Rust comme deuxième langage pour le développement de pilotes et de modules de noyau (le support de Rust n'est pas activé par défaut et ne fait pas de Rust une dépendance de build obligatoire pour le noyau), a été poursuivie. Il est désormais possible d'utiliser Rust pour l'architecture PowerPC. Les réalisations incluent : un module pour des transformations entières sans perte, un mode de journalisation obscurci des valeurs de pointeurs pour prévenir les fuites d'informations sur l'espace d'adresses, un enveloppement autour de la fonction synchronize_rcu(), des barrières mémoire, un module d'interruption pour activer/désactiver les interruptions, des types pour l'entrée/sortie, un enveloppement autour de fwctl, le mécanisme SRCU (sleepable read-copy-update), des enveloppements autour de gem shmem.
des verrouillages spinlock SpinLockIrq, qui ne permettent pas d'interruption dans les sections critiques. - Un paramètre sysctl syscall_user_dispatch a été ajouté pour gérer l'activation du mode de répartition des appels système dans l'espace utilisateur, permettant à un processus d'intercepter les appels système d'un autre processus (utilisé dans Wine pour émuler les appels système Windows).
- Une fonction bpf_sock_read_xattr() a été ajoutée à BPF, permettant aux programmes BPF de lire les attributs étendus définis par l'utilisateur.
(user.*) à partir des inodes des sockets. Dans les applications BPF, il est désormais possible de définir des variables globales liées au CPU. Le vérificateur des programmes BPF a été amélioré avec des informations supplémentaires sur les erreurs détectées, facilitant l'identification des causes des problèmes. - Les mécanismes de traçage kprobes, uprobes et fprobes prennent en charge le typage, en utilisant les données BTF (BPF Type Format) contenant des informations pour vérifier les types dans le pseudocode BPF, tout en améliorant l'extraction d'informations sur les variables.
- Le sous-système DAMON (Data Access MONitor), qui permet de suivre l'accès d'un processus aux données en mémoire vive (comme savoir quelles zones de mémoire ont été consultées par le processus et quelles zones sont restées inutilisées), a été enrichi de la possibilité de surveiller les modifications des attributs des données (mémoire anonyme, fichiers mappés en mémoire, accès en lecture seule, absence d'accès à la mémoire, etc.).
- Dans le mécanisme KHO (Kexec HandOver), utilisé pour démarrer un nouveau noyau à partir d'un ancien sans perdre l'état du système, la prise en compte de l'allocation de grandes pages mémoire (huge pages) au moment du chargement a été mise en place. Ces pages mémoire sont désormais marquées et conservées après le démarrage du nouveau noyau.
- Le code bas niveau du système de swap a été converti en une nouvelle structure de données bas niveau swap_ops, ce qui a simplifié la maintenance du code et a permis d'implémenter les abstractions nécessaires pour étendre la fonctionnalité à l'avenir.
- Des commandes ioctl ALLOCINFO_IOC_CONTENT_ID, ALLOCINFO_IOC_GET_AT et ALLOCINFO_IOC_GET_NEXT ont été ajoutées, permettant de transmettre sélectivement les données de profilage sur l'allocation de mémoire à l'espace utilisateur. Par rapport à l'interface précédemment disponible /proc/allocinfo, les appels ioctl proposés permettent d'augmenter jusqu'à 20 fois les performances des requêtes de profilage grâce à la filtration des données superflues.
- Amélioration du traitement du manque de mémoire vidéo. Dans les situations d'épuisement de la mémoire vidéo libre, le noyau essaie désormais de déplacer vers la mémoire système (GTT) les buffers des applications ne disposant pas d'un quota mémoire garanti (dmem cgroup), au lieu de refuser directement l'allocation de mémoire vidéo. Cette approche garantit l'allocation de ressources à une application à laquelle le système a réservé une certaine quantité de mémoire vidéo, même si cette mémoire est déjà utilisée par d'autres applications. Auparavant, si de la mémoire vidéo avait déjà été allouée à une application sans quota, dans une situation de pénurie de mémoire vidéo, une application avec quotas garantis ne pouvait pas l'obtenir, et au lieu de la mémoire vidéo via le sous-système TTM (Translation Table Maps), une mémoire vive système plus lente, adressée par le GPU (GTT), était allouée à l'application.
- Virtualisation et sécurité
- Un nouveau mécanisme d'isolation a été proposé, bloquant l'accès au contenu des systèmes de fichiers, à l'exception des ressources explicitement transmises à l'environnement sandbox via des descripteurs de fichiers. Ce mécanisme est réalisé par le biais d'un pseudo-système de fichiers failfs et d'un appel système fchroot.
Le pseudo-système de fichiers failfs ressemble au système de fichiers nullfs, mais contrairement à ce dernier, il applique le principe du « rien n'est supporté » au lieu de « rien n'est stocké ». Cette caractéristique empêche le montage de quoi que ce soit au-dessus de failfs, le clonage du système de fichiers et le suivi de l'état via statmount(), listmount(), /proc//mountinfo et /proc/filesystems. Si le répertoire racine ou de travail du processus se trouve dans failfs, toutes les tentatives de navigation dans le système de fichiers en utilisant des chemins de fichiers absolus, des liens symboliques et des chemins relatifs, dépendant du répertoire de travail actuel, sont bloquées. Au processus, il est seulement permis d'accéder à un répertoire spécifique via des descripteurs de fichiers ouverts avant l'isolement.
Un appel système fchroot a été ajouté pour passer en mode d'isolement, similaire à l'appel système chroot, mais opérant au niveau des descripteurs de fichiers. L'appel système fchdir a reçu un drapeau FD_FAILFS_ROOT pour déplacer le répertoire de travail du processus dans le système de fichiers failfs.
Un drapeau similaire est disponible dans l'appel système fchroot. - La possibilité de suivre les accès à la mémoire du système invité a été ajoutée à l'aide du mécanisme userfaultfd, permettant de créer des gestionnaires d'accès à des pages mémoire non allouées ou protégées dans l'espace utilisateur. En pratique, cette possibilité permet à l'hyperviseur de déterminer les pages mémoire auxquelles aucune demande n'a été faite dans la machine virtuelle, afin de les déplacer vers une mémoire plus lente ou un stockage externe. Pour suivre les violations de l'interdiction de lecture et d'écriture dans la zone mémoire surveillée, le drapeau UFFDIO_REGISTER_MODE_RWP a été ajouté, qui peut être utilisé comme un analogue de haute performance à l'utilisation de mprotect(PROT_NONE) en conjonction avec un gestionnaire de signaux, généré lors d'une demande de mémoire à laquelle a été imposée une interdiction de lecture et d'écriture (dans le cas de userfaultfd, une exception est générée, traitée dans l'espace utilisateur). Ce changement a été préparé avec l'aide de l'IA (« Assisted-by: Claude:claude-opus-4-6 »).
- Le partage entre les threads du noyau (kthread) et le processus init (PID 1) a été renforcé. Auparavant, les threads du noyau et le PID 1 partageaient un état commun du système de fichiers.
ce qui permettait de redéfinir l'état du système de fichiers pour tous les threads du noyau via l'appel pivot_root(). Dans la nouvelle version, le PID 1 a une structure fs_struct entièrement distincte, et les threads du noyau sont isolés dans un point de montage séparé avec nullfs. - La bibliothèque cryptographique intégrée (libcrypto) a ajouté le support des modes de chiffrement AES — ECB, CBC, CBC-CTS, CTR, XCTR, XTS, GCM et CCM.
- Le système de gestion des accès mandatés AppArmor a mis en œuvre la possibilité de charger des ensembles de règles compressées et un mode d'audit a été ajouté.
- Un paramètre sysctl af_alg_restrict a été ajouté, contrôlant l'accès au cryptographic API AF_ALG depuis l'espace utilisateur. AF_ALG permet d'utiliser des accélérateurs matériels pour les calculs cryptographiques dans l'API de cryptographie du noyau, mais il est appliqué dans des situations plutôt spécifiques et ne donne pas toujours un gain de performance par rapport à l'accélération côté utilisateur. De plus, une série de vulnérabilités a été découverte dans les gestionnaires associés à AF_ALG, telles que Copy Fail, permettant de modifier les données dans le cache de pages. Pour réduire la surface d'attaque, l'accès à AF_ALG est partiellement limité par défaut. La possibilité de supprimer AF_ALG dans l'un des futurs versions est à l'étude.
- La vérification des programmes BPF signés numériquement a été renforcée. Une vérification de l'intégrité des métadonnées du programme BPF a été ajoutée avant son chargement.
- Le système d'appel landlock_restrict_self(), utilisé pour activer les verrouillages Landlock, a reçu un nouveau drapeau
LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, interdisant au processus actuel d'acquérir de nouveaux privilèges. Le mécanisme Landlock permet aux programmes non privilégiés de renoncer aux privilèges inutiles pour leur fonctionnement, limitant volontairement leur accès au système dans un but de sécurité, par exemple, pour se protéger en cas de tentative d'exploitation des vulnérabilités dans le programme. - Dans le pilote VirtIO-GPU, qui permet le fonctionnement du GPU virtuel, le support du mode veille S4 (hibernation) a été ajouté.
- Un nouveau mécanisme d'isolation a été proposé, bloquant l'accès au contenu des systèmes de fichiers, à l'exception des ressources explicitement transmises à l'environnement sandbox via des descripteurs de fichiers. Ce mécanisme est réalisé par le biais d'un pseudo-système de fichiers failfs et d'un appel système fchroot.
- Sous-système réseau
- Dans ksmbd, le serveur intégré au noyau pour le protocole SMB, le support des extensions Apple Time Machine pour le stockage des sauvegardes créées sur macOS via cette application a été ajouté. Un mécanisme d'isolation des séquences de commandes SMB lié à MessageId a été mis en place pour bloquer les attaques par envoi de requêtes invalides ou dupliquées. La prise en charge de l'envoi de requêtes répétées par le protocole SMB3 sans violer l'état de la session, si la requête précédente a été perdue, a été ajoutée. SMB3 offre désormais la possibilité de chiffrement au niveau de partages spécifiques. Le support du chiffrement du canal de communication SMB Direct utilisant la technologie RDMA (Remote Direct Memory Access) a également été ajouté.
- La possibilité d'utiliser des paquets TCP avec l'extension BIG TCP, permettant d'augmenter la taille maximale d'un paquet TCP jusqu'à 4 Go, dans des tunnels UDP basés sur les protocoles VXLAN et GENEVE a été mise en œuvre.
- Le support du protocole MCTP (Management Component Transport Protocol) sur USB (MCTP-over-USB 1.1) a été ajouté.
- La possibilité de désinscrire (unregistration) des dispositifs réseau (netkit, veth, vxcan, bareudp, geneve, ipvlan, macvlan, etc.) pour les espaces de noms sélectionnés a été fournie.
- Pour Bluetooth 6.2+, le support du mécanisme SCI (Shorter Connection Interval) a été mis en œuvre pour réduire la latence lors de la transmission de données en mode Bluetooth LE (Low Energy).
- Dans l'API nl80211, un mécanisme unifié (NL80211_CMD_PROBE_PEER) a été ajouté pour vérifier les pairs connectés, fonctionnant tant sur les points d'accès sans fil que du côté client.
- Matériel
- Les anciennes plateformes ARM, qui sont peu utilisées et gênent le suivi des sous-systèmes actuels, ont été déclarées obsolètes et doivent être supprimées dans le noyau 7.5. Environ 55 000 lignes de code liées au support des plateformes sa1100, omap24xx, i.MX31, samv7, lpc18xx, riscpc, axxia, footbridge, anciennes cartes pxa, orion, dove et mv78xx0, puces sans unité de gestion de mémoire (MMU) et microcontrôleurs stm32f4/f7/h7 doivent être supprimées.
- Un support initial pour les puces Apple M3 Pro, Max et Ultra a été ajouté. La gestion de l'état de consommation d'énergie pour le SoC Apple a été mise en œuvre.
- Dans le sous-système DRM (Direct Rendering Manager), l'attribut «color format» a été ajouté, permettant à l'utilisateur de basculer le format de représentation des couleurs pour le périphérique de sortie. Cette fonctionnalité est mise en œuvre pour les pilotes GPU i915 (HDMI, DP), amdgpu (HDMI, DP) et rockchip (HDMI). Pour les tests, la commande de type «modetest -s 115:1920×1080-60@NV12 -w 115:’color format’:4» peut être utilisée, où 115 est l'identifiant du connecteur et '4' est le numéro du format YUV420.
- Le pilote amdgpu prend en charge les modificateurs DRM pour les GPU AMD des séries GFX6-8 (Southern Islands, Sea Islands et Volcanic Islands). Un support initial pour DCN 6.0.0 (Display Core Next) a été implémenté. Le code obsolète a été nettoyé.
La prise en charge de CACP (Content Adaptive Contrast and Power) a été activée, permettant de réduire la consommation d'énergie des panneaux OLED. Pour les moteurs d'affichage basés sur l'architecture DCN4, la prise en charge du mécanisme IPS (Idle Power State) a été activée pour diminuer la consommation d'énergie pendant l'inactivité. La prise en charge des cartes graphiques AMD Barco a été ajoutée. - Dans le pilote i915, le code pour déterminer les capacités et restaurer l'état des connecteurs DisplayPort a été retravaillé. Pour le GPU Novalake (NVL), le support de CMTG (Common mode timing generator) et DC3DO (Display C3 with Clock Off) a été ajouté.
- Le travail sur le pilote drm (Direct Rendering Manager) Xe pour les GPU basés sur l'architecture Intel Xe, utilisée dans les cartes graphiques Intel de la famille Arc et dans les graphiques intégrés des processeurs Tiger Lake, se poursuit. De nouveaux identifiants d'appareils pris en charge ont été ajoutés. L'attribut 'enable_multi_queue' a été implémenté dans configfs pour désactiver l'utilisation simultanée de plusieurs files d'attente de transmission de commandes. Le support de la mise en veille a été amélioré.
- L'intégration des composants du pilote Nova pour les GPU NVIDIA, équipés de firmwares GSP utilisés depuis la série NVIDIA GeForce RTX 2000 sur l'architecture Turing, se poursuit. Le pilote est écrit en Rust. Dans la nouvelle version, la transition vers de nouvelles images de firmware TLV a été réalisée, en remplacement des anciennes variantes utilisées dans le pilote Nouveau. Le support a été ajouté.
du démarrage du firmware pour le chip GSP (GPU System Processor) avec activation de vGPU. Une API pour obtenir des informations sur la taille de la mémoire vidéo a été ajoutée. - Dans le pilote Tyr, écrit en Rust et assurant le fonctionnement avec les GPU ARM Mali, la possibilité de charger des firmwares au format Mali CSF, d'activer la mémoire virtuelle GPU et de démarrer le MCU a été ajoutée.
- Dans le pilote msm, la prise en charge des GPU Adreno Shikra (A704) et Eliza (722) a été ajoutée.
- La prise en charge des appareils audio et ASoC a été ajoutée : 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. - La prise en charge du Steam Controller (modèle 2026) a été ajoutée ; ainsi que des souris Logitech G502 X Plus et G502 X Lightspeed ; et des claviers Endorfy Thock TKL, Zenbook A16 ; des casques Nova 5X, Nova 7 et Arctis 7 ; du volant de course Turtle Beach VelocityOne Race ; et de la manette MSI Claw.
- Le support audio sur les appareils ASUS VivoBook M515DA/X515DAP a été amélioré.
LG gram 16 (16Z90TR), Minisforum AI X1 Pro, HP Pavilion 15-eh2xxx, HP Laptop 15-dy0xxx et HP Spectre x360 16-aa0xxx, HP EliteBook 6 G1, HP OmniBook X Flip 14, Lenovo Yoga Pro 7, Huawei Matebook,
ThinkPad X1 Carbon 6e génération, HP ProBook 440 G5, Acer Aspire A515-57. - Ajout du support pour les smartphones, tablettes et ordinateurs portables : Motorola Edge 30, Motorola Moto G2, Xiaomi 12 Lite 5G, Microsoft Surface Pro, Honor MagicBook art 1412in, Sony Xperia M2, Vicharak Axon, Axon Mini et Vaaman2, Asus Zenbook A16, Lenovo Thinkedge se70.
- Ajout du support pour les plates-formes ARM et SoC Samsung Exynos 1580 (utilisé dans les smartphones phares à partir de 2024), Orange Pi 5 pro, Sophgo SG2000 (hybride Arm/RISC-V), BeagleBadge, Qualcomm « Shikra » et « Altera » (Cortex-A78C), Agilex72 (Cortex-A720), Alientek ATK-DLRV1126, Variscite SoC DART-MX8M-PLUS, DART-MX8M-MINI, VAR-SOM-MX8QM et les cartes Sonata/Symphony basées sur celles-ci, 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.
En même temps, la fondation latino-américaine pour le logiciel libre a formé
une version entièrement libre du noyau 7.3 — Linux-libre 7.3-gnu, dépouillée des éléments de firmwares et de pilotes contenant des composants non libres ou des sections de code dont l'utilisation est limitée par le fabricant. La version 7.3 a effectué un nettoyage des blobs de nouveaux pilotes pour GPU Mali Tyr, Morse Micro mm81x wi-fi, NXP wi-fi, et des cartes réseau sur des puces Realtek. Le code de nettoyage des pilotes nova-core, amdgpu, adreno, tegra, iris, rtw89 et mt76 wifi, Qualcomm Q6V5 PAS, qla2xxx scsi et des codecs audio aw88399 a été mis à jour. Des nettoyages des noms des blobs dans les fichiers dts (device tree) pour les puces ARM de Qualcomm ont été réalisés.
Source : opennet.ru
