Linus Torvalds, ingénieur logiciel, créateur principal et développeur du noyau Linux, a annoncé le 25 avril la sortie de la version 5.12 du kernel Linux. Cette version apporte un certain nombre d'améliorations notables pour divers matériels, notamment la prise en charge de l'hyperviseur ACRN et la prise en charge de l'écriture NFS Eager. Cette version du noyau permet également de sélectionner le modèle de préemption au démarrage de l'ordinateur. Actuellement, l'utilisation d'un modèle de préemption none/voluntary/model est une option de configuration au moment de la construction.Dans son message du 25 avril portant sur la sortie de la version 5.12 du kernel Linux, Linus Torvalds a indiqué que dans l’ensemble, les améliorations apportées au nouveau kernel ne sont pas assez nombreuses. « ...merci à tous ceux qui ont rendu la semaine dernière très calme, ce qui avec la sortie de la version 5.12 du kernel Linux me rendent encore plus heureux. Il ajoute que malgré la semaine de grâce supplémentaire, il s'agit d'une version relativement petite dans l'ensemble ». Voici, ci-dessous, les améliorations apportées à la version 5.12 du kernel Linux.
Mappage d'ID dans les montages
Cette version introduit le concept de montages idmapped. Cela permet de mapper l'ID utilisateur d'un montage à un autre. Cela permet de partager plus facilement des fichiers entre plusieurs utilisateurs ou plusieurs machines, notamment dans des scénarios complexes. Par exemple, les montages idmapped seront utilisés dans l'implémentation des répertoires personnels portables dans systemd-homed.service où ils permettent aux utilisateurs de déplacer leur répertoire personnel vers un périphérique de stockage externe et de l'utiliser sur plusieurs ordinateurs auxquels sont attribués des UID et des GID différents. Cette implémentation est fournie avec des portages pour les systèmes de fichiers FAT et ext4, d'autres systèmes de fichiers étant annoncés dans les prochaines versions.
Permettre de sélectionner le modèle de préemption au démarrage et à l'exécution
Actuellement, l'utilisation d'un modèle de préemption none/voluntary/model est une option de configuration au moment de la construction. Cette version ajoute les options de démarrage preempt=none/voluntary/full (par défaut : full), pour permettre aux distributions de construire un noyau PREEMPT mais de revenir à un comportement d'ordonnancement au démarrage proche de PREEMPT_VOLUNTARY (ou PREEMPT_NONE) via une sélection au démarrage. Il y a aussi le commutateur /debug/sched_debug pour faire cela au moment de l'exécution. Cette fonctionnalité est implémentée par le biais de patches d'exécution (une nouvelle variante des appels statiques).
Prise en charge de l'hyperviseur ACRN
Cette version ajoute la prise en charge de l'hyperviseur ACRN. ACRN est une pile d'hyperviseur de référence de type 1, s'exécutant directement sur le matériel, et convient à une variété de solutions pour l’Internet des objets et des dispositifs embarqués. Elle met en œuvre une architecture VMM hybride, utilisant un service VM privilégiée. Le service VM gère les ressources système (CPU, mémoire, etc.) et les périphériques d'E/S des VMs User. Plusieurs utilisateurs VM sont pris en charge, chacun d'entre eux exécutant Linux, Android OS ou Windows.
Prise en charge de l'écriture NFS Eager
Cette version ajoute un ensemble d'options de montage pour les systèmes de fichiers NFS qui contrôlent la façon dont les appels système write() réagissent. writes=lazy est la valeur par défaut, et conserve le comportement actuel. writes=eager signifie que l’écriture est immédiatement envoyée comme une écriture instable au serveur. writes=wait signifie que l'écriture est envoyée comme une écriture instable, puis une réponse est attendue. Cela garantit qu'un client NFS voit immédiatement les erreurs ENOSPC.
Recherche de chemin non bloquant lors de l'ouverture d'un fichier
Cette version supporte les recherches de noms de chemin qui ne se bloquent en aucun cas. Cela signifie que le noyau essaiera de résoudre le chemin avec les données en cache, mais s'il doit effectuer des E/S, il retournera une erreur. Ceci est nécessaire pour io_uring(), mais le support dans openat2() avec le paramètre RESOLVE_CACHED a été aussi ajouté.
Interrogation NAPI basée sur...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.