Il y a quelques semaines, nous avons partagé ici sur le blog la nouvelle de la confirmation qui a été faite lors de l'Open Source Summit Europe, de Linus Torvalds annoncé que, sauf problèmes imprévus, set inclura des correctifs pour prendre en charge le développement du pilote Rust dans le noyau Linux 6.1, dont la sortie est prévue en décembre.
La raison de le mentionner est que Miguel Ojeda, auteur du projet Rust-for-Linux, a annoncé récemment le lancement de la dixième proposition des composants pour le développement Pilotes de périphériques Rust pour les développeurs du noyau Linux à considérer.
En tant que tel, il s'agit de la onzième édition des correctifs, en tenant compte de la première version publiée (pas de numéro de version). Linus Torvalds a approuvé l'inclusion de la prise en charge de Rust dans le noyau Linux 6.1, sauf problèmes imprévus.
Il convient de mentionner que le développement est financé par Google et l'ISRG (Internet Security Research Group), qui est le fondateur du projet Let's Encrypt et promeut HTTPS et le développement de technologies pour accroître la sécurité sur Internet.
Quelques des avantages d'obtenir le support de Rust dans le noyau facilitent l'écriture de contrôleurs d'appareils sécurisés en réduisant les risques d'erreurs de mémoire et encourager les nouveaux développeurs à s'impliquer dans le noyau.
"La rouille est l'une de ces choses qui, je pense, apportera de nouveaux visages … nous devenons vieux et gris", a déclaré Linus.
Les notes de version pour Linux 6.0 fournit une mise à jour sur l'avancement du projet Rust pour Linux : il existe un groupe de travail associé, un pilote préliminaire pour les supports de stockage NVMe développés avec ce langage est disponible, ainsi qu'un pilote pour un serveur destiné au protocole réseau 9P.
Profitant de la mention sur la version 6.1 du noyau Linus a également annoncé que la version 6.1 du noyau améliorera certaines des parties les plus anciennes et les fondamentaux du noyau, comme la fonction printk().
Concernant cette nouvelle proposition de patchs Rust, ainsi que la dernière version des patchs, la dixième version est réduite au strict minimum, suffisamment pour construire un simple module de noyau écrit en Rust.
Différences avec la version précédente sont réduits à des corrections mineures, remplacement de sizeof par ARRAY_SIZE dans kallsyms.c et portage des correctifs vers le noyau v6.0-rc7.
Le support de la rouille doit toujours être considéré comme expérimental. Cependant,
Le support est suffisamment bon pour que les développeurs du noyau puissent commencer à travailler dessus.
Le correctif minimal, qui a été réduit de 40 000 lignes de code à 13 000 lignes de code, devrait, facilitent l'adoption du support Rust dans le noyau. Après avoir fourni un support minimal, il est prévu d'augmenter progressivement les fonctionnalités existantes, en transférant d'autres modifications de la branche Rust-for-Linux.
Les modifications proposées permettent d'utiliser Rust comme deuxième langage pour développer des pilotes et des modules de noyau. La prise en charge de Rust est présentée comme une option qui n'est pas activée par défaut et n'entraîne pas l'inclusion de Rust parmi les dépendances de construction requises pour le noyau.
L'utilisation de Rust pour développer des pilotes vous permettra de créer des pilotes meilleurs et plus sûrs avec un minimum d'effort, sans problèmes tels que l'accès à une zone mémoire après l'avoir libérée, le déréférencement de pointeurs nuls et les débordements de tampon.
La gestion sécurisée de la mémoire est fournie dans Rust au moment de la compilation en vérifiant les références, en suivant la propriété de l'objet et la durée de vie de l'objet (portée), ainsi qu'en évaluant l'exactitude de l'accès à la mémoire pendant l'exécution du code.
la rouille aussi fournit une protection contre le débordement d'entier, nécessite une initialisation obligatoire des valeurs de variables avant utilisation, gère mieux les erreurs dans la bibliothèque standard, applique le concept de variables et de références immuables par défaut, offre un typage statique fort pour minimiser les erreurs logiques.
Enfin si vous souhaitez en savoir plus à propos de la note, vous pouvez consulter les listes de diffusion sur le sujet, dans le lien suivant.