Le kernel Linux 6.2 est sorti le 19 février 2023. Si ses nouveautés ne sont, selon Linus Torvalds lui-même, « pas aussi sexy » que la précédente, cette version apporte son lot de fonctionnalités et de support matériel ainsi qu’une intégration approfondie de Rust. Maintenu par une communauté de développeurs passionnés et pour la plupart bénévoles, chaque nouvelle version répond à des besoins opérationnels réels. Après 2 mois d’attentes, nous avons tous hâte de découvrir leur travail !
Vous souhaitez apprendre un langage de programmation basé sur la sécurité et la vitesse ? Notre formation Rust vous permettra de programmer des applications tirant tout le bénéfice des processeurs multi-core modernes. Vous éviterez ainsi les erreurs de segmentation mémoire et assurerez la sécurité de vos threads.
Vous souhaitez prouver vos compétences sur Kubernetes ? Les certifications Kubernetes vous permettront de vous distinguer sur le marché de l’emploi. Elles vous donnent un accès à l’examen officiel supervisé par la fondation Linux. Ces certifications concernent les examens officiels que sont la KCNA, CKAD, CKA et CKS. Notre centre propose également un parcours de formation complet sur la technologie Kubernetes.
L’équipe Ambient IT
Faut-il le déployer en production ?
Bien que considérée comme stable, cette version du kernel 6.2 n’a pas vocation à être déployée en production. En effet, elle ne bénéficiera pas du statut LTS et son support n’est donc pas prévu durablement.
Comment l’installer ?
Sur Ubuntu, vous pouvez déployer tous les kernels depuis un seul outil nommé mainline :
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
Il faut alors installer le dernier kernel disponible avec cette commande :
mainline --install-latest
Quelles sont les nouveautés du KERNEL Linux version 6.2 ?
ARM : Début du support des puceS serie-m D’apple
Avec la 6.2 c’est un début de commencement pour le support des nouvelles puces ARM de type Mac Apple Silicon M1 (T8103) M1 Pro (T6000), M1 Max (T6001) et le M1 Ultra (T6002).
Attention : Ce support étant encore incomplet, il est toujours conseillé d’utiliser la version Linux Asahi. Plus particulièrement si vous utilisez les dernières générations de puce M2 (T8112), car ces dernières ne sont pas encore prises en charge par les branches principales du noyau.
POwer management
Linux 6.2 apporte une variété de changements pour les processeurs et d’architectures. Les modèles Intel Alder Lake-N et Raptor Lake-P ont modifié la valeur de l’EPB (Energy Performance Bias) pour réduire la consommation d’énergie, en optimisant le pilote de régulation de la fréquence et du voltage des processeurs, avec l’ajout d’un nouveau niveau ENERGY_PERF_BIAS_NORMAL_POWERSAVE pour l’EPB 7. Une mise à jour similaire a été faite sur Apple M1/M2 qui apporte une mise à niveau du CPU pour la gestion des P-States.
Refonte du MSI
De nombreux codes ont été abandonnés dans le Message Signaled Interrupts (MSI) afin de prendre en charge les domaines d’interruption par dispositif.
IMS (Interrupt Message Store) est une nouveauté qui permet aux fabricants de périphériques de fournir un stockage défini par l’implémentation pour les messages d’interruption.
La refonte de MSI était dans le radar des développeurs depuis un certain temps en raison de sa conception initiale peu satisfaisante.
prise en charge de Wi-Fi 7 et des réseaux 800 Gbit/s
La nouvelle norme de l’IEEE de réseaux filaire de type 800G (BASE-R) n’en est qu’à ses débuts, mais le Kernel Linux 6.2 la prend déjà en charge. Le travail sur la norme Ethernet 800 Gbit/s est effectué par un groupe de travail spécifique. Parmi les fournisseurs travaillant sur l’Ethernet 800 Gbit/s, on peut citer Nvidia qui a réalisé de lourds investissements techniques et financiers dans le secteur.
WiFi 7 introduit de nouveaux canaux sans fil de 320 MHz qui fournissent une augmentation significative de la vitesse, avec une latence plus faible qu’avec WiFi 6 et ses canaux de 160 MHz. Un débit maximal de 30 Gbit/s pourrait être possible, ce qui est trois fois plus rapide que WiFi 6.
Linux 6.2 introduit plus de support pour WiFi 7, y compris le support initial pour les appareils MediaTek WiFi 7 802.11be. Le Kernel bénéficie également de la prise en charge des pilotes iwlwifi d’Intel pour Linux, qui supporteront les nouveaux canaux de 320 MHz fournis par le WiF7.
Processeurs ZEN 4
Les processeurs zen 4 sont maintenant pris en charge par la mise à jour 6.2. Des éléments essentiels ont été ajoutés parmi lesquels les modules de surveillance des performances du cœur, les compteurs de surveillance de performance du cache L3, les métriques d’événement multiples autour de la répartition. La prédiction d’embranchement et l’activité du cache L1/L2 sont également comprises.
Architecture RISC-V
Un support amélioré sur l’architecture Risc-V est désormais disponible sur cette nouvelle version du kernel. La version 6.2 est maintenant compatible avec les périphériques de mémoire non volatile. Cela inclut particulièrement PMEM pour le mappage et l’accès à la mémoire. Vous devez activer Svpbmt et Zicbom dans Risc-V pour profiter de ses nouveautés.
Support Carte graphique
La gestion de la pile graphique reçoit également de nombreuses mises à jour importantes, notamment l’ajout continu de code pour les modèles futur Intel et AMD.
Le support pour la carte Arc Graphics d’Intel (DG2/Alchemist) est à présent stable. Elle est supprimée des supports expérimentaux est prête à être utilisé avec la version core de cette version.
Le support de NVIDIA RTX 30 « Ampere » a été accéléré et le code de base n’est plus nécessaire sur Intel Meteor Lake, AMD et RDNA3.
système de fichiers
Un grand nombre de changements sont arrivés sur cette version. La mise à jour la plus significative comprend le pilote NTFS qui dispose de nouvelles options de montage, de meilleures performances pour Exfat lors de la création de fichiers/répertoires. On peut également citer une meilleure mise en cache pour F2FS et des corrections pour les fichiers btrfs.
Les mises à jour USB4 de la version 6.2 apportent le réveil à la connexion/déconnexion. La prise en charge du pilote de l’adaptateur USB 2.0 dongle est abandonnée à cause de l’obsolescence de ce matériel.
Mises à niveau INTEL
INTEL IFS est maintenant optimisé pour la fonction In-Field Scan permettant d’accéder aux capacités de test du silicium du processeur pour toutes les prochaines versions d’Intel.
Le driver d’Intel On Demand est désormais disponible avec plus de fonctionnalités et sous son nom (remplaçant « Software Defined Silicon »). Cela permet d’activer certaines fonctionnalités des processeurs Xeon Scalable.
Les derniers développements des extensions TDX intègrent à présent la prise en charge de la confirmation d’invité search Intel TDX.
Intel SGX Async Exit Notification (AEX Notify) améliore la sécurité en protégeant les utilisateurs contre certains types d’attaques SGX.
UN MEILLEUR Support Du LANGAGE Rust
La version Linux Kernel 6.1 avait donné un support de base pour l’écriture de code Rust, la version 6.2 apporte de nombreuses fonctionnalités supplémentaires.
Une macro plus complexe a été installée, le kernel fait désormais un usage intensif de structures remplies de pointeurs vers les fonctions. Ces structures sont au cœur des modèles objets du kernel. Cela va de fonctions relativement évidentes comme read() et write() à des fonctions plus complexes comme setlease() ou remap_file_range().
D’autres fonctionnalités sont disponibles et elles participent à construire progressivement le code Rust dans le Kernel. Il ne fait aucun doute que les futures sorties continueront dans cette dynamique.
le futur de Rust dans le noyau : les différents étages de la fusée
Bien que prometteur, l’intégration de Rust dans le kernel n’en est qu’à ses débuts. Je vais tout de même tâcher de décrire les évolutions successives de Rust au sein du projet Linux, de la façon suivante :
6.1 : Cette version compose la première brique du système de construction. Clippy, rustdoc, la configuration de rust-analyzer, etc., c’est juste assez de pour faire un pilote « Hello World » avec Rust. En gros, une preuve de concept (PoC) qui permet aux constructeurs de noyaux de faire la configuration s’ils veulent faire des modules Rust et de valider que Kbuild fonctionne.
6.2 : Plus de types de données personnalisés, quelques abstractions supplémentaires, assez pour faire un module de base comprenant des fonctionnalités utiles.
6.3 : On peut faire l’hypothèse de la fourniture de traits (sous-classes abstraites) pour les fichiers de périphériques et d’autres types de modules, plus d’abstractions ce qui pourrait être utile lors de l’écriture de modules du noyau. À ce stade, j’ai l’impression que nous pourrions voir la considération de certains modules de base dans l’arbre écrits en Rust – mais probablement pas fusionnés ici.
Futur proche : Les modules in-tree (apparition dans l’arborescence du noyau) vont probablement être sur la table à un moment donné. Les mainteneurs du noyau vont être très prudents à ce sujet, mais les mainteneurs des pilotes de périphériques peuvent opter pour une proposition de leur code et assurer ainsi une migration en douceur.
Futur spéculatif : Écrire les fonctionnalités de base du noyau en Rust, donc au cœur du projet, pourrait éventuellement se retrouver sur la table (j’espère). Si cela se produit, je soupçonne qu’il y aura une restructuration plus importante de la partie Rust du projet (par exemple, ne plus travailler uniquement dans le répertoire rust/ qui lui est aujourd’hui dédié), et ces changements se feront probablement à un rythme lent au vu du Legacy à gérer et de l’ampleur du projet évidemment.
rECOMMANDATION (Vidéo en anglais)
Linux 6.2 is out de More Bits inside by René Rebe