Version du noyau Linux 5.17

Après deux mois de développement, Linus Torvalds a présenté la version du noyau Linux 5.17. Parmi les changements les plus notables : un nouveau système de gestion de la performance pour les processeurs AMD, la possibilité de mapping récursif des identifiants d'utilisateurs dans les systèmes de fichiers, le support des programmes BPF compilés portables, la migration du générateur de nombres aléatoires vers l'algorithme BLAKE2s, un utilitaire RTLA pour l'analyse d'exécution en temps réel, un nouveau backend fscache pour la mise en cache des systèmes de fichiers réseau, et la possibilité d'attacher des noms à des opérations mmap anonymes.

La nouvelle version contient 14 203 corrections provenant de 1 995 développeurs, la taille du patch étant de 37 Mo (les changements ont concerné 11 366 fichiers, ajoutant 506 043 lignes de code et supprimant 250 954 lignes). Environ 44% de toutes les modifications présentées dans 5.17 sont liées aux pilotes de périphériques, environ 16% concernent la mise à jour de code spécifique aux architectures matérielles, 15% sont liées à la pile réseau, 4% aux systèmes de fichiers et 4% aux sous-systèmes internes du noyau.

Les principales nouveautés du noyau 5.17 :

  • Sous-système de disque, entrée/sortie et systèmes de fichiers
    • La possibilité de mapping imbriqué des identifiants d'utilisateurs des systèmes de fichiers montés a été mise en œuvre, permettant de faire correspondre les fichiers d'un certain utilisateur sur une partition montée d'un autre utilisateur dans le système actuel. La fonctionnalité ajoutée permet d'utiliser récursivement le mapping sur les systèmes de fichiers pour lesquels un mapping est déjà appliqué.
    • La sous-système fscache a été complètement réécrit, utilisé pour organiser la mise en cache dans le système de fichiers local des données transmises via des systèmes de fichiers réseau. La nouvelle mise en œuvre se distingue par une simplification significative du code et le remplacement des opérations complexes de planification et de suivi des états des objets par des mécanismes plus simples. Le support de la nouvelle fscache est implémenté dans le système de fichiers CIFS.
    • Dans le sous-système de suivi des événements, un nouveau type d'événement FAN_RENAME a été implémenté dans fanotify, permettant d'intercepter d'un coup l'opération de renommage de fichiers ou de répertoires (auparavant, le traitement des renommages nécessitait deux événements séparés : FAN_MOVED_FROM et FAN_MOVED_TO).
    • Dans le système de fichiers Btrfs, une optimisation des opérations de journalisation et de fsync pour de grands répertoires a été réalisée en copiant uniquement les clés d'index et en réduisant le volume des métadonnées journalisées. La prise en charge de l'indexation et de la recherche par la taille des enregistrements sur l'espace libre a été assurée, ce qui a permis de réduire les latences d'environ 30 % et de diminuer le temps de recherche. Il est désormais possible d'interrompre les opérations de défragmentation. La possibilité d'ajouter des dispositifs lors de la désactivation de l'équilibrage entre les dispositifs est incluse, c'est-à-dire lors du montage du système de fichiers avec l'option skip_balance.
    • Une nouvelle syntaxe de montage pour le système de fichiers Ceph a été proposée, résolvant les problèmes liés à l'attachement aux adresses IP. En outre, adresses IP pour déterminer le serveur, il est désormais possible d'utiliser l'identifiant du cluster (FSID) : mount -t ceph user@fsid.fs_name=\[subdir\] mnt -o mon_addr=monip1[:port][\/monip2[:port]]
    • Le système de fichiers Ext4 a été migré vers une nouvelle API de montage, qui sépare les étapes de parsing des options de montage et de configuration du superbloc. Le support des options de montage lazytime et nolazytime, qui avaient été ajoutées comme changement temporaire pour simplifier la migration de util-linux vers l'utilisation du flag MS_LAZYTIME, a été interrompu. La prise en charge de la définition et de la lecture des étiquettes dans le système de fichiers (ioctl FS_IOC_GETFSLABEL et FS_IOC_SETFSLABEL) a été ajoutée.
    • Dans NFSv4, la prise en charge du fonctionnement dans des systèmes de fichiers sans distinction entre majuscules et minuscules dans les noms de fichiers et de répertoires a été ajoutée. Dans NFSv4.1+, la prise en charge de la définition de sessions agrégées (trunking) a été ajoutée.
  • Mémoire et services système
    • Le driver amd-pstate a été ajouté, fournissant une gestion dynamique de la fréquence pour atteindre des performances optimales. Le driver prend en charge les CPU et APU AMD à partir de la génération Zen 2, développé en collaboration avec Valve et visant à améliorer l'efficacité de la gestion de la consommation d'énergie. Un mécanisme CPPC (Collaborative Processor Performance Control) est utilisé pour modifier de manière adaptative la fréquence, permettant des ajustements plus précis (non limité à trois niveaux de performance) et réagissant plus rapidement aux changements d'état que les drivers P-state précédemment utilisés basés sur ACPI (CPUFreq).
    • Dans la sous-système eBPF, un gestionnaire bpf_loop() a été proposé, offrant une alternative pour organiser les boucles dans les programmes eBPF, plus rapide et plus simple à vérifier par le vérificateur.
    • Un mécanisme CO-RE (Compile Once — Run Everywhere) a été mis en œuvre au niveau du noyau, permettant de compiler le code des programmes eBPF une seule fois et d'utiliser un chargeur universel spécialisé qui adapte le programme chargé au noyau actuel et aux types BTF (BPF Type Format).
    • Il est désormais possible d'attribuer des noms aux régions de mémoire privée anonyme (allouées via malloc), ce qui peut faciliter le débogage et l'optimisation de la consommation de mémoire dans les applications. Les noms sont attribués via prctl avec le drapeau PR_SET_VMA_ANON_NAME et apparaissent dans /proc/pid/maps et /proc/pid/smaps sous la forme «[anon:<name>]».
    • Le planificateur de tâches a été amélioré pour suivre et afficher dans /proc/PID/sched le temps passé par les processus en état de veille forcée (forced-idle), utilisé par exemple pour réduire la charge en cas de surchauffe du processeur.
    • Un module gpio-sim a été ajouté, destiné à la simulation de puces GPIO pour les tests.
    • Une sous-commande «latency» a été ajoutée à la commande «perf ftrace» pour générer des histogrammes contenant des informations sur les latences.
    • Un ensemble d'outils «RTLA» a été ajouté pour analyser le fonctionnement en temps réel. Il comprend des outils tels qu'osnoise (qui détermine l'impact du système d'exploitation sur l'exécution d'une tâche) et timerlat (qui modifie les latences liées aux minuteries).
    • La deuxième série de patchs intégrant le concept de folios de pages mémoire a été intégrée, qui ressemble aux pages mémoire combinées (compound pages), mais se distingue par une sémantique améliorée et une organisation plus compréhensible du travail. L'utilisation des folios permet d'accélérer la gestion de la mémoire dans certaines sous-systèmes du noyau. Les patchs proposés terminent la transition du cache de pages vers l'utilisation des folios et ajoutent un support initial des folios dans le système de fichiers XFS.
    • Un mode de compilation «make mod2noconfig» a été ajouté, qui génère une configuration compilant tous les sous-systèmes désactivés sous forme de modules du noyau.
    • Les exigences concernant la version de LLVM/Clang pouvant être utilisée pour la compilation du noyau ont été augmentées. Pour la compilation, une version d'LLVM 11 minimum est désormais requise.
  • Virtualisation et sécurité
    • Une mise en œuvre mise à jour du générateur de nombres pseudo-aléatoires RDRAND a été proposée, responsable du fonctionnement des dispositifs /dev/random et /dev/urandom, se distinguant par le passage à l'utilisation de la fonction de hachage BLAKE2s au lieu de SHA1 pour les opérations de mélange d'entropie. Ce changement a permis d'améliorer la sécurité du générateur de nombres pseudo-aléatoires, en éliminant l'algorithme problématique SHA1 et en excluant la réécriture du vecteur d'initialisation RNG. Étant donné que l'algorithme BLAKE2s surpasse SHA1 en termes de performance, son application a également eu un impact positif sur la performance.
    • Une protection contre les vulnérabilités dans les processeurs, causées par l'exécution spéculative d'instructions après des opérations de saut inconditionnel direct, a été ajoutée. Le problème survient en raison du traitement anticipé des instructions suivant immédiatement la commande de saut (SLS, Straight Line Speculation). Pour activer la protection, il est nécessaire d'utiliser une version du compilateur GCC 12, qui est en phase de test.
    • Un mécanisme de suivi du comptage des références (refcount, reference-count) a été ajouté, visant à réduire le nombre d'erreurs de comptage des références entraînant des accès à la mémoire après sa libération. Ce mécanisme est actuellement limité au sous-système réseau, mais pourrait à l'avenir être adapté pour d'autres parties du noyau.
    • Des vérifications avancées des nouvelles entrées dans la table des pages mémoire du processus ont été mises en œuvre, permettant d'identifier certains types de corruptions et d'arrêter le système en bloquant les attaques à un stade précoce.
    • La possibilité de déballer les modules du noyau directement par le noyau lui-même, et non par un gestionnaire en espace utilisateur, a été ajoutée, permettant grâce au module LSM LoadPin de garantir que les modules du noyau sont chargés en mémoire à partir d'un dispositif de stockage vérifié.
    • Une compilation avec l'option « -Wcast-function-type » a été assurée, incluant des avertissements sur le casting de pointeurs de fonction vers un type incompatible.
    • Un pilote de hôte virtuel pvUSB pour l'hyperviseur Xen a été ajouté, fournissant un accès aux dispositifs USB passés dans les systèmes invités (permet d'accéder depuis les systèmes invités aux dispositifs USB physiques assignés au système invité).
    • Un module a été ajouté, permettant l'interaction via Wi-Fi avec le sous-système IME (Intel Management Engine), qui est fourni dans la plupart des cartes mères modernes avec des processeurs Intel et est implémenté sous la forme d'un microprocesseur distinct, fonctionnant indépendamment du CPU.
    • Pour l'architecture ARM64, la prise en charge de l'outil de débogage KCSAN (Kernel Concurrency Sanitizer) a été mise en œuvre, destiné à la détection dynamique des conditions de concurrence au sein du noyau.
    • Pour les systèmes ARM 32 bits, la possibilité d'appliquer le mécanisme KFENCE pour détecter les erreurs lors de l'utilisation de la mémoire a été ajoutée.
    • Le hyperviseur KVM a ajouté la prise en charge des instructions AMX (Advanced Matrix Extensions), mises en œuvre dans les futurs processeurs serveurs Intel Xeon Scalable.
  • Sous-système réseau
    • La prise en charge du déchargement (offloading) vers des dispositifs réseau des opérations liées à la gestion du trafic a été ajoutée.
    • Il est désormais possible d'utiliser le protocole MCTP (Management Component Transport Protocol) sur des dispositifs avec une interface série. MCTP peut être utilisé pour l'interaction entre les contrôleurs de gestion et les dispositifs associés (processeurs hôtes, périphériques, etc.).
    • Une optimisation de la pile TCP a été effectuée, par exemple, pour améliorer les performances des appels recvmsg, un délai de libération des buffers de sockets a été mis en place.
    • Au niveau des privilèges CAP_NET_RAW, il est désormais possible d'exposer via la fonction setsockopt les modes SO_PRIORITY et SO_MARK.
    • Pour IPv4, il est désormais autorisé de lier des sockets bruts à des adresses IP non locales, en utilisant les options IP_FREEBIND et IP_TRANSPARENT.
    • Ajout de sysctl arp_missed_max pour régler le seuil d'échecs de vérification par le moniteur ARP, après lequel l'interface réseau est mise hors service.
    • Il est désormais possible de configurer des valeurs sysctl séparées min_pmtu et mtu_expires pour les espaces de noms réseau.
    • Dans l'API ethtool, la possibilité de définir et de déterminer la taille des buffers pour les paquets entrants et sortants a été ajoutée.
    • Dans Netfilter, la prise en charge du filtrage du trafic pppoe transit dans le pont réseau a été ajoutée.
    • Dans le module ksmbd, qui implémente le partage de fichiers utilisant le protocole SMB3, la prise en charge de l'échange de clés a été ajoutée, le port réseau 445 a été activé pour smbdirect et le paramètre « smb2 max credit » a été ajouté. de serveurs, utilisant le protocole SMB3, le support de l'échange de clés a été ajouté, le port réseau 445 a été activé pour smbdirect et le paramètre «smb2 max credit» a été intégré.
  • Matériel
    • Le sous-système drm (Direct Rendering Manager) et le pilote i915 bénéficient désormais d'un support pour les écrans capables d'afficher des informations sensibles, par exemple, certains ordinateurs portables sont équipés d'écrans avec un mode de confidentialité intégré qui rend la visualisation difficile pour les personnes situées sur les côtés. Les modifications ajoutées permettent de connecter des pilotes spécialisés pour ces écrans et de gérer les modes de confidentialité via des propriétés définies dans les pilotes KMS classiques.
    • Le pilote amdgpu intègre le support de la technologie de débogage STB (Smart Trace Buffer) pour tous les GPU AMD compatibles. STB facilite l'analyse des pannes et l'identification des sources de problèmes grâce à la conservation dans un tampon spécial des informations sur les fonctions exécutées avant la dernière panne.
    • Le pilote i915 prend désormais en charge les puces Intel Raptor Lake S, et le support de la sous-système graphique des puces Intel Alder Lake P est activé par défaut. La possibilité de contrôler le rétroéclairage de l'écran via l'interface DPCD VESA est également fournie.
    • Le support de l'accélération matérielle de défilement dans la console a été rétabli dans les pilotes fbcon/fbdev.
    • L’intégration des modifications pour le support des puces Apple M1 se poursuit. Il est désormais possible d'utiliser le pilote simpledrm sur des systèmes avec une puce Apple M1 pour l'affichage via un framebuffer fourni par le firmware.
    • Ajout du support pour les SoC ARM, ainsi que pour les appareils et cartes Snapdragon 7c, 845 et 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 (utilisé dans les routeurs 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.
    • Ajout du support pour les processeurs ARM Cortex-M55 et Cortex-M33.
    • Ajout du support pour des appareils basés sur des CPU MIPS : Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Ajout du support pour le SoC StarFive JH7100 basé sur l'architecture RISC-V.
    • Ajout du pilote lenovo-yogabook-wmi pour contrôler le rétroéclairage du clavier et accéder à divers capteurs dans le Lenovo Yoga Book.
    • Ajout du pilote asus_wmi_sensors pour accéder aux capteurs utilisés sur les cartes mères Asus X370, X470, B450, B550 et X399 basées sur les processeurs AMD Ryzen.
    • Ajout du pilote x86-android-tablets pour les tablettes basées sur l'architecture x86, fournies avec la plateforme Android.
    • Ajout de la prise en charge des écrans tactiles TrekStor SurfTab duo W1 et du stylet pour les tablettes Chuwi Hi10 Plus et Pro.
    • Les pilotes pour le SoC Tegra 20/30 ont été mis à jour avec la gestion de l'alimentation et de la tension. Il est désormais possible de démarrer sur d'anciens appareils 32 bits basés sur le SoC Tegra, tels que ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 et Pad TF300TG.
    • Des pilotes ont été ajoutés pour les ordinateurs industriels Siemens.
    • Ajout de la prise en charge des panneaux LCD Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA et Team Source Display TST043015CMHX.
    • Ajout de la prise en charge des systèmes audio et des codecs AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, systèmes Intel utilisant NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Résolution des problèmes liés à l'audio HD Tegra194. Ajout de la prise en charge HDA pour les codecs CS35L41. Amélioration de la prise en charge des systèmes audio pour les ordinateurs portables Lenovo et HP, ainsi que pour les cartes mères Gigabyte.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster