Linus Torvalds annonce la disponibilité de la version 5.15 du kernel Linux,
elle apporte une nouvelle implémentation de NTFS, un nouveau serveur SMB3, le support Btrfs pour le mappage fs-verity et id

Linus Torvalds a annoncé le 31 octobre la disponibilité de la version 5.15 du kernel Linux, « Nous voilà, avec la sortie de la version 5.15 du kernel Linux, et la fenêtre de fusion qui commence demain. Parfois, le timing de la sortie fonctionne, et parfois non... Quoi qu'il en soit, la dernière semaine de la 5.15 était principalement consacrée à la mise en réseau et à la correction des processeurs, avec un peu de saupoudrage aléatoire d'autres choses (quelques btrfs reverts, quelques mises à jour kvm, des corrections mineures ici et là, quelques corrections d'architecture de journalisation, de petits pilotes, etc) », a déclaré Linus Torvalds.

La nouvelle version du kernel Linux apporte une nouvelle implémentation de NTFS en lecture-écriture ; le support pour mettre tous les processus d'un cgroup dans la classe d'ordonnancement SCHED_IDLE ; le support Btrfs pour le mappage fs-verity et id ; le support pour le DAMON, qui permet de surveiller les modèles d'accès à la mémoire de processus spécifiques ; un nouveau serveur SMB3 au niveau du noyau ; un nouvel appel système process_mrelease(2) pour permettre aux gestionnaires de services de libérer plus rapidement les ressources des processus ; le support de la migration des pages de mémoire vers la mémoire persistante au lieu de les jeter ; le support du device Mapper pour l'attestation à distance basée sur IMA ; le support pour éviter de programmer des tâches 32 bits sur des CPUS 64 bits seulement dans des systèmes avec des CPU mixtes. Comme toujours, il existe de nombreuses autres fonctionnalités, de nouveaux pilotes, des améliorations et des corrections.

Nom : linuxB.png
Affichages : 21692
Taille : 41,1 Ko

Nouvelle implémentation du système de fichiers NTFS

Le noyau Linux dispose déjà d'une implémentation de NTFS, mais elle présente de sérieuses limitations (comme le fait d'être en lecture seule), c'est pourquoi les utilisateurs de Linux utilisent généralement l'implémentation ntfs-3g de l'espace utilisateur. Cette version apporte une nouvelle implémentation NTFS entièrement fonctionnelle qui supporte les versions du système de fichiers NTFS jusqu'à 3.1 et la relecture des journaux.

ksmbd, un serveur SMB3 pour le noyau Linux

ksmbd est un nouveau module du noyau qui implémente le côté serveur du protocole SMB3. L'objectif est de fournir des performances optimisées, un serveur SMB GPLv2, et une meilleure gestion des baux (mise en cache distribuée). L'objectif plus large est d'ajouter de nouvelles fonctionnalités plus rapidement (par exemple, RDMA alias "smbdirect", et les récentes améliorations du protocole en matière de chiffrement et de signature).

Il ne s'agit pas de remplacer Samba, dont la portée est beaucoup plus large (outils, services de sécurité, LDAP, contrôleur de domaine Active Directory, prise en charge multiplateforme), mais plutôt d'une extension permettant une meilleure optimisation pour Linux et une meilleure intégration des performances et des fonctionnalités dans certains cas.

Migration des pages de mémoire vers la mémoire persistante

Dans les systèmes comportant de la DRAM et de la mémoire persistante, une fois que la DRAM est remplie, la récupération commence et une partie du contenu de la DRAM est perdue. Dans cette version, les pages sont migrées vers la mémoire persistante au lieu d'être simplement jetées, ce qui améliore les performances dans de nombreux benchmarks exécutés dans ce type de systèmes. Le fait de migrer de la mémoire rapide à la mémoire lente améliore le processus de récupération de la mémoire, qui intervient normalement lorsque la mémoire est insuffisante et rejette le contenu des pages rarement utilisées.

David Hansen, Kernel Hacker chez Intel, a déclaré que dans un système avec mémoire persistante, ces pages pourraient être migrées de la DRAM vers la mémoire plus lente, maintenant l'accès à celles-ci si elles sont à nouveau nécessaires. Hansen a précisé qu'il s'agit d'une solution partielle, car les pages migrées seront bloquées dans la mémoire lente sans possibilité de retour vers la DRAM plus rapide. Ce mécanisme est optionnel et les utilisateurs pourront l'activer à la demande avec sysctl vm.zone_reclaim_mode ou dans /proc/sys/vm/zone_reclaim_mode avec le bitmask défini à 8.

Support Btrfs pour fs-verity et id mapping

Dans cette version du Kernel Linux, Btrfs ajoute le support pour fs-verity, une couche générique déjà supportée par Ext4 et F2fs qui fournit une protection transparente de l'intégrité et de l'authenticité des fichiers en lecture seule. Rappelons que fs-verity (fs/verity/) est une couche de support à laquelle les systèmes de fichiers peuvent s'accrocher pour supporter une protection transparente de l'intégrité et de l'authenticité des fichiers en lecture seule. Actuellement, il est supporté par les systèmes de fichiers ext4 et f2fs. Comme fscrypt, peu de code spécifique au système de fichiers est nécessaire pour supporter fs-verity. Il est similaire à dm-verity mais fonctionne sur les fichiers plutôt que sur les blocs. Pour les fichiers réguliers sur les systèmes de fichiers supportant fs-verity, l'espace utilisateur peut exécuter un ioctl qui fait que le système de fichiers construit un arbre de Merkle pour le fichier et le fait persister dans un emplacement spécifique au système de fichiers associé au fichier.

Après cela, le fichier est rendu en lecture seule, et toutes les lectures du fichier sont automatiquement vérifiées par rapport à l'arbre Merkle du fichier. Les lectures de données corrompues, y compris celles de mmap, échoueront. L'espace utilisateur peut utiliser une autre ioctl pour récupérer le hachage racine (en fait le fs-verity file digest, qui est un hachage qui inclut le hachage racine de l'arbre de Merkle) que fs-verity applique au fichier. Cette ioctl s'exécute en temps constant, quelle que soit la taille du fichier. fs-verity est essentiellement un moyen de hacher un fichier en temps constant, sous réserve que les lectures qui violeraient le hachage échouent à l'exécution.

DAMON, un moniteur d'accès aux données

DAMON, qui signifie Data Access MONitor, est un mécanisme permettant de surveiller le modèle d'accès à la mémoire de processus spécifiques de l'espace utilisateur. En d'autres termes, il peut indiquer quelles parties de la mémoire d'un processus sont accédées en permanence, et lesquelles ne sont pas utilisées du tout. Il est léger, tant en termes d'utilisation de la mémoire que d'utilisation du CPU lors de l'analyse du processus cible. Il s'agit de l'une des pièces d'un projet appelé Data Access-aware Operating System.

DAMON est destiné à être utilisé par d'autres parties du noyau qui pourraient être fusionnées à l'avenir, mais il peut également fournir des informations à l'espace utilisateur. Il peut être utilisé pour profiler un programme et obtenir sa carte de chaleur d'accès, en utilisant l'outil complémentaire damo, découvrir comment le programme se comporte réellement dans le monde réel, et identifier la chaleur dynamique des données. Ces informations peuvent être utilisées simplement pour profiler ce que fait réellement un processus, mais il peut aussi être utilisé pour optimiser le comportement de la mémoire d’un programme en utilisant mlock() ou madvise() avec MADV_WILLNEED pour verrouiller les données chaudes qui seront utilisées, et/ou madvise() avec MADV_PAGEOUT pour que le système récupère les données froides dès que possible.

Introduction de l'appel système process_mrelease (2)

Dans les systèmes modernes, il n'est pas rare d'avoir un composant surveillant les conditions de la mémoire du système et chargé de garder la pression de la mémoire du système sous contrôle, et de tuer les processus non essentiels afin de libérer de la mémoire pour les processus plus importants. On peut citer comme exemples le démon tueur d'OOM de Facebook appelé oomd et le démon tueur de mémoire basse d'Android appelé lmkd.

La destruction et la libération des ressources d'un processus peuvent être retardées pendant une longue période pour diverses raisons. Le nouvel appel système process_mrelease(2) permet de libérer la mémoire d'un processus mourant depuis le contexte de l'appelant. De cette façon, la mémoire est libérée de manière plus contrôlable en fonction de l'affinité du CPU et de la priorité de l'appelant. La charge de travail liée à la libération de la mémoire sera également facturée à l'appelant.

Progrès du verrouillage en temps réel

La fusion de l'ensemble des correctifs pour le temps réel continue de progresser dans chaque version. Dans cette version, l'un des éléments les plus importants, la majeure partie du code de verrouillage, a été fusionné. Lorsque PREEMPT_RT est activé, les primitives de verrouillage suivantes sont remplacées par des variantes basées sur RT-Mutex : mutex, ww_mutex, rw_semaphore, spinlock et rwlock. L'allocateur de slab SLUB a également été modifié pour mieux gérer PREEMPT_RT.

Support des cgroup pour SCHED_IDLE

Cette version ajoute le support pour mettre toutes les tâches d'un cgroup entier sous la classe SCHED_IDLE du planificateur de tâches, ce qui signifie qu'elles ne s'exécuteront que s'il n'y a pas d'autres tâches en attente d'exécution. Une différence essentielle avec les tâches normales réglées individuellement sur SCHED_IDLE est que les tâches d'un cgroupe réglées sur SCHED_IDLE conservent leur poids relatif.

Attestation à distance basée sur IMA de Device Mapper

La version 5.15 du kernel Linux ajoute l'infrastructure nécessaire pour l'attestation à distance basée sur Integrity Measurement Architecture (IMA). Ces changements sont la base du déploiement du stockage basé sur DM dans un cloud distant qui doit valider les configurations exécutées par les utilisateurs finaux pour maintenir la confiance. Il permet de mesurer les configurations des cibles DM prises en charge via IMA. Mais la politique et l'application (pour savoir quelles configurations sont valides) sont gérées par quelque chose d'extérieur au noyau (par exemple Keylime).

Source : Liste de diffusion Linux

Et vous :

Que pensez-vous de la version 5.15 du Kernel Linux ?

Quelle amélioration vous intéresse le plus ?

Quelles sont vos attentes pour Kernel Linux ?

Voir aussi :

Le nombre d'utilisateurs de Linux sur desktop ne cesse de croître tandis que celui de Windows baisse avec, Linux : 10,92 % de progression par an, Windows : -1,95 % par an, sur les 12 dernières années

Une vulnérabilité du kernel Linux expose la mémoire et provoque des fuites de données, alors que des discussions se poursuivent sur la prise en charge de Rust pour le développement du noyau Linux

Linus Torvalds annonce la disponibilité de la version 5.11 du kernel Linux, qui s'accompagne de la prise en charge de la technologie Intel Software Guard Extensions (SGX)

Ubuntu 21.10 est disponible avec le noyau Linux 5.13, PHP 8, GCC 11, GNOME 40 et d'autres fonctionnalités pour l'innovation en IA/ML