La nouvelle version du noyau 5.19 a été publiée , et parmi les changements les plus notables de cette nouvelle version figurent la prise en charge de l'architecture de processeur LoongArch , l'intégration des correctifs « BIG TCP », le mode « à la demande » dans fscache, la suppression du code pour la prise en charge du format a.out, la possibilité d'utiliser ZSTD pour compresser le firmware, une interface pour gérer le déplacement de mémoire depuis l'espace utilisateur, une fiabilité et des performances améliorées du générateur de nombres pseudo-aléatoires, la prise en charge des extensions Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) et ARM SME (Scalable Matrix Extension).
La nouvelle version a accepté 16401 correctifs de 2190 développeurs (la dernière version avait 16206 correctifs de 2127 développeurs), taille du correctif : 90 Mo (les modifications ont affecté 13847 fichiers, 1149456 lignes de code ont été ajoutées, 349177 lignes ont été supprimées).
Principales nouveautés du noyau 5.19
Parmi les changements les plus notables de cette nouvelle version, on peut citer la prise en charge du mécanisme de randomisation de la structure du noyau lors de la compilation avec Clang 15.
Le mécanisme Landlock , qui permet de limiter l'interaction d'un groupe de processus avec l'environnement externe, a été doté d'une prise en charge des règles permettant de contrôler l'exécution des opérations de renommage de fichiers.
Le sous-système IMA (Integrity Measurement Architecture), conçu pour vérifier l'intégrité des composants du système d'exploitation à l'aide de signatures et de hachages numériques, a été modifié pour utiliser le module fs-verity pour la vérification des fichiers.
La logique des actions a été modifiée en désactivant l'accès non privilégié au sous-système eBPF . Auparavant, toutes les commandes associées à l'appel système bpf() étaient désactivées. Depuis la version 5.19, l'accès est conservé uniquement pour les commandes n'entraînant pas la création d'un objet. De ce fait, un processus privilégié est requis pour charger un programme BPF, mais les processus non privilégiés peuvent interagir avec lui.
La prise en charge de la redondance des connexions MPTCP (MultiPath TCP) vers TCP standard a été ajoutée dans les cas où certaines fonctionnalités MPTCP sont indisponibles. MPTCP est une extension du protocole TCP qui organise le fonctionnement d'une connexion TCP en acheminant simultanément les paquets via plusieurs chemins à travers différentes interfaces réseau associées à différentes adresses IP. Une API a été ajoutée pour gérer les transmissions MPTCP depuis l'espace utilisateur.
Il convient également de noter que plus de 420 000 lignes de code relatives au pilote amdgpu ont été ajoutées , dont environ 400 000 lignes sont des fichiers d'en-tête générés automatiquement contenant les données des registres ASIC du pilote GPU AMD, et 22,5 000 lignes supplémentaires assurent l'implémentation initiale de la prise en charge d'AMD SoC21. La taille totale du pilote pour GPU AMD dépasse désormais les 4 millions de lignes de code. Outre SoC21, le pilote AMD inclut la prise en charge de SMU 13.x (System Management Unit), une prise en charge mise à jour de l'USB-C et de GPUVM, et est prêt à prendre en charge les plateformes RDNA3 (RX 7000) et CDNA (AMD Instinct) de nouvelle génération.
Le contrôleur i915 (Intel) dispose de capacités de gestion de l'alimentation améliorées, en plus d'ajouter des identifiants pour les GPU Intel DG2 (Arc Alchemist) utilisés dans les ordinateurs portables, de fournir une prise en charge initiale de la plateforme Intel Raptor Lake-P (RPL-P), d'ajouter des informations sur les cartes graphiques Arctic Sound-M, de mettre en œuvre l'ABI pour les moteurs de calcul, d'ajouter la prise en charge des cartes au format Tile4 pour les cartes DG2 et la prise en charge DisplayPort HDR pour les systèmes basés sur la microarchitecture Haswell.
Le pilote Nouveau utilise désormais le pilote drm_gem_plane_helper_prepare_fb , et certaines structures et variables sont désormais assignées statiquement. Concernant l'utilisation du code source du module noyau dans Nouveau, que NVIDIA a rendu open source, les efforts déployés jusqu'à présent ont porté sur l'identification et la correction des bogues. Il est prévu d'utiliser le firmware publié pour améliorer les performances du pilote.
Des fonctionnalités ont été développées pour gérer la détection des verrous fractionnés , qui surviennent lors de l'accès à des données mal alignées en mémoire. Ce phénomène se produit lorsque, lors de l'exécution d'une instruction atomique, les données traversent deux lignes du cache étendu du processeur. De tels verrous entraînent une baisse significative des performances. Auparavant, le noyau émettait par défaut un avertissement contenant des informations sur le processus à l'origine du verrou ; désormais, le processus problématique sera davantage ralenti afin de préserver les performances du reste du système.
La prise en charge du mécanisme IFS (In-Field Scan) implémenté dans les processeurs Intel a été ajoutée . Ce mécanisme permet d'exécuter des tests de diagnostic CPU de bas niveau capables de détecter des problèmes qui ne sont pas détectés par les moyens habituels basés sur les codes de correction d'erreurs (ECC) ou les bits de parité.
Parmi les autres changements notables de cette nouvelle version, on peut citer :
- Ajout d'un pilote pour le contrôleur NVMe utilisé dans les ordinateurs Apple basés sur la puce M1.
- ajout de la prise en charge initiale de l'architecture du jeu d'instructions LoongArch utilisée dans les processeurs Loongson 3 5000, qui implémente un nouveau RISC ISA similaire à MIPS et RISC-V.
- L'architecture LoongArch est disponible en trois versions : 32 bits simplifiés (LA32R), 32 bits normaux (LA32S) et 64 bits (LA64).
- Ajout de la possibilité d'intégrer le fichier bootconfig dans le noyau.
- 'CONFIG_BOOT_CONFIG_EMBED_FILE=”/PATH/TO/BOOTCONFIG/FILE”'.
- Suppression de la prise en charge des options de démarrage spécifiques à x86 : nosp, nosmap, nosmep, noexec et noclflush).
- La prise en charge de l'architecture CPU obsolète h8300 (Renesas H8/300), qui n'a pas été maintenue depuis longtemps, a été interrompue.
Enfin, si vous souhaitez en savoir plus sur cette nouvelle version, vous trouverez les détails en suivant ce lien.