La quatrième version des correctifs pour la prise en charge du pilote Rust sous Linux a été publiée

Miguel Ojeda, auteur du projet Rust-for-Linux, Teme a récemment dévoilé la quatrième proposition de composants du pilote de périphérique Rust pour les développeurs du noyau Linux à considérer.

Le support de la rouille est considéré comme expérimental, mais il a déjà été convenu d'être inclus dans la branche linux-next et est suffisamment mature pour commencer à travailler sur des couches d'abstraction au-dessus des sous-systèmes du noyau, ainsi que sur l'écriture de pilotes et de modules. 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 augmenter la sécurité sur Internet.

Pour ceux qui ne sont pas encore au courant des changements proposés, qu'ils sachent qu'ils permettent l'utilisation de Rust comme deuxième langage pour développer des contrôleurs et des modules du 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.

Utiliser Rust pour développer des pilotes vous permettra de créer des pilotes meilleurs et plus sécurisés avec un minimum d'effort, sans problèmes comme 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 sécurité de la mémoire est assurée 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.

Rust fournit également une protection contre le débordement d'entier, nécessite que les variables soient initialisées 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 et offre un typage statique fort pour minimiser les erreurs logiques. .

Quels sont les changements dans le quatrième opus ?

Dans cette nouvelle version des correctifs qui sont présentés, il est mentionné que les commentaires formulés lors de la discussion de la première, deuxième et troisième édition des correctifs ont continué d'être éliminés.

Nous continuerons à mettre à jour jusqu'à ce que nous ne dépendions plus de fonctionnalités instables ;
à quel point nous voudrons peut-être commencer à déclarer une version minimale de Rust
est pris en charge, comme c'est le cas, par exemple, pour GCC et Clang.

De même, nous avons également migré vers l'édition 2021 du langage Rust.

Quant aux autres changements qui ont été apportés dans cette nouvelle version, l'annonce mentionne ce qui suit :

  • Transition pour utiliser la version stable de Rust 1.58.0 comme compilateur de référence.
  • Les modifications requises pour le projet, non encore incluses dans la boîte à outils principale de Rust, incluent le drapeau "-Zsymbol-mangling-version=v0" (attendu dans Rust 1.59.0) et le mode "maybe_uninit_extra" (attendu dans Rust 1.60.0) .
  • Des vérifications automatiques de la disponibilité des outils Rust et de leur adéquation ont été ajoutées, et la possibilité de tester la prise en charge de Rust sur le système a également été étendue.
  • De nouvelles abstractions sont proposées pour pouvoir accéder aux tables d'identifiants d'appareil ("IdArray" et "IdTable") depuis le code Rust.
  • Ajout de couches pour appeler les fonctions liées à la minuterie (frame d'horloge).
  • Les contrôleurs de plate-forme sont désormais définis via des implémentations de traits.
  • Une nouvelle macro a été ajoutée afin de simplifier l'enregistrement du pilote de la plate-forme et un nouveau modèle de pilote générique a été proposé.
  • Ajout de nouvelles macros pour les structures "dev_*".
  • Ajout de nouvelles méthodes "{read,write}*_relaxed" pour le type IoMem .
  • Suppression de la propriété FileOpener pour simplifier les opérations sur les fichiers.
  • Ajout du paramètre "ThisModule" au nombre d'arguments passés lors de l'enregistrement du contrôleur.
  • Un modèle typique de création de modules noyau en langage Rust est proposé.

Enfin, si vous souhaitez en savoir plus sur cette nouvelle version, vous pouvez consulter les détails dans le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.