Après deux mois de développement, Linus Torvalds a annoncé la sortie du noyau Linux 6.12, version dans laquelle La possibilité d'activer le mode temps réel se démarque, l'ajout de sched_ext pour permettre la création de planificateurs de CPU à l'aide d'eBPF, et un mécanisme qui génère des codes QR dans des situations critiques.
Linux 6.12 comprend un total de 14,607 XNUMX corrections effectuées, Ils ont été ajoutés plus de 507,913 XNUMX lignes de code et en éliminant 234,083 XNUMX. Bien que le patch soit plus petit par rapport aux versions précédentes, il représente une optimisation sans précédent.
Principales actualités sous Linux 6.12
Le noyau Linux maintenant peut être construit avec l'option PREEMPT_RT iintégré, éliminant ainsi le besoin de correctifs externes pour un fonctionnement en temps réel. Ceci a été réalisé en incluant la prise en charge dans la fonction printk. PREEMPT_RT et est disponible sur des architectures telles que x86, x86_64, ARM64 et RISC-V.
Dans la compilation, le La prise en charge du compilateur Clang a été étendue à la bibliothèque standard nolibc, permettant des optimisations telles que l'optimisation du temps de liaison (LTO). C'est aussi ajout d'un système de suivi d'anneau, qui conserve les informations de débogage en mémoire après les redémarrages, facilitant ainsi l'analyse après panne.
De la part de Rust-for-Linux, cela continue d'avancer avec de nouveaux modules comme list et rbtree pour les listes chaînées et l'arbre rouge-noir. De plus, la prise en charge a été étendue dans des domaines clés tels que l'initialisation, la synchronisation et la gestion des erreurs. Il est possible de compiler le noyau avec Rust tout en conservant des protections avancées comme Spectre et le débogage avec KASAN ou kCFI. De plus, un pilote Ethernet PHY écrit en Rust a été intégré.
Une autre nouveauté Ce qui ressort de cette nouvelle version du noyau Linux 6.12 est l'introduction du mécanisme sched_ext (SCX), qui vous permet d'utiliser eBPF pour créer des planificateurs de processeur personnalisés. Avec SCX, les développeurs peuvent concevoir des planificateurs dynamiques qui optimisent l'exécution des tâches en fonction de l'état du système et des besoins spécifiques des applications, facilitant ainsi l'expérimentation et la mise en œuvre de stratégies dans les environnements de production.
Aussi L'intégration du serveur SCHED_DEADLINE est terminée, une solution plus efficace pour éviter la monopolisation du processeur par des tâches hautement prioritaires, améliorant l’allocation des ressources aux tâches peu prioritaires. De plus, le planificateur CFS a été remplacé par le nouveau EEVDF (Earliest Eligible Virtual Deadline First), qui alloue plus équitablement les ressources du processeur et élimine le besoin d'ajustements manuels, réduisant ainsi les retards dans les tâches critiques.
Le controlle Panique DRM, responsable de la gestion des urgences dans le noyau, vous pouvez désormais afficher un rapport visuel avec logos et QR codes y compris les données de diagnostic compressées. Ces codes QR facilitent l'analyse des pannes, permettant aux utilisateurs d'être redirigés vers des pages configurées par les distributions pour signaler les problèmes.
En ce qui concerne ARM, ajout de la prise en charge de l'extension POE (Permission Overlay Extension), qui active des mécanismes tels que les clés de protection de la mémoire pour restreindre l'accès à des zones spécifiques de la mémoire sans avoir besoin de modifier les tables de pages. De plus, l'optimisation de l'appel système getrandom() à l'aide de vDSO a augmenté la vitesse de génération de nombres aléatoires jusqu'à 15 fois sur les architectures Loongarch, ARM64, PowerPC et s390.
Un le nouveau pilote USB permet d'utiliser le protocole 9pfs pour transférer des données entre des périphériques USB en montant des systèmes de fichiers 9p. Ceci est particulièrement utile sur les périphériques embarqués, offrant une alternative efficace à NFS pour démarrer les partitions racine.
Le sous-système io_uring a ajouté la prise en charge des délais d'attente absolus, activé à des heures spécifiques en fonction de l’horloge du système. Cela améliore le contrôle des opérations asynchrones, offrant une plus grande précision dans leur exécution.
pour la bibliothèque libcpupower, inclus des fichiers de génération de liens utilisant SWIG, qui permet d'utiliser des langages tels que Python pour étendre ses fonctionnalités. De plus, l'utilitaire cpuidle a été amélioré et peut désormais mesurer le temps d'inactivité minimum nécessaire pour justifier les coûts énergétiques de transition.
Dans le domaine des réseaux, un Les améliorations les plus notables sont le mécanisme TCP pour la mémoire de l'appareil, qui permet des transferts de données directs entre la mémoire des périphériques et le réseau sans passer par le CPU, obtenant ainsi une efficacité notable. De plus, les capacités de nombreux contrôleurs Ethernet et WiFi, tels que iwlwifi d'Intel et rtw89 de RealTek, ont été étendues avec une prise en charge supplémentaire des puces WiFi 6 et des normes IEEE avancées. Pour IPv6, une nouvelle fonctionnalité a été introduite pour optimiser l'allocation d'adresses à l'aide de DHCPv6-PD, tandis que MPTCP a reçu des améliorations en termes de routage et de détection des pertes de trafic.
En support matériel, Ajout de la prise en charge continue d'AMD RDNA4 dans le pilote AMDGPU et des améliorations du pilote Xe DRM pour les GPU Intel Xe. On a également ajouté le Prise en charge des processeurs Xeon Granite Rapids et de nouvelles plates-formes ARM, dont le SoC Snapdragon X Elite.
Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant