La deuxième version des correctifs pour la prise en charge du pilote Rust sur Linux a déjà été expédiée

En mars de cette année sur la branche linux-next dans lequel à l'époque il fonctionnait pour le noyau Linux 5.13, un premier ensemble de composants a été inclus pour développer des pilotes de périphériques dans le langage Rust et maintenant la demande a été faite pour inclure une deuxième édition de correctifs pour ajouter le support de Rust au noyau Linux.

La personne qui a envoyé la demande aux développeurs Linux est Miguel Ojeda, auteur du projet Rust-for-Linux et dont nous avons également parlé il y a quelques jours, puisqu'il a été engagé pour prendre en charge le projet "Prossimo" qui en gros se concentre sur la coordination des efforts pour déplacer l'infrastructure logicielle critique vers un code sécurisé pour sécuriser la mémoire du noyau Linux avec Rust (si vous voulez en savoir plus sur le projet, vous pouvez consulter publication sur le lien ci-dessous.)

Pilotes Rust sous Linux
Article connexe:
Prossimo, un projet ISRG pour sécuriser la mémoire du noyau Linux avec Rust

La demande envoyée par Miguel Ojeda est une deuxième version mise à jour des composants pour le développement de pilotes de périphériques en langage Rust et dans lesquels les commentaires faits lors de la discussion de la première version des correctifs sont supprimés et auxquels Linus Torvalds a déjà rejoint la discussion et a suggéré de changer la logique pour traiter certaines opérations sur les bits.

À l'intérieur des avantages qui sont mentionnés sont que la gestion sûre de la mémoire est garantie dans Rust au moment de la compilation en vérifiant les références, en suivant la propriété et la durée de vie des objets, ainsi qu'en évaluant l'exactitude de l'accès à la mémoire au moment de l'exécution.

La rouille fournit également protection contre le débordement d'entier, nécessite une initialisation obligatoire des valeurs des variables avant utilisation, gère mieux les erreurs dans la bibliothèque standard, adopte le concept de références et de variables immuables par défaut, et offre une écriture statique forte pour minimiser les erreurs logiques.

Des changements qui ressortent de cette nouvelle version des patchs il est mentionné :

  • Le code d'allocation de mémoire empêche la possibilité de générer un état de panique lorsque des erreurs telles qu'un manque de mémoire se produisent.
  • S'inclut une variante de la bibliothèque Rust alloc, dans laquelle le code a été retravaillé pour gérer les serrures, mais l'objectif final est d'apporter toutes les fonctionnalités nécessaires pour le noyau à l'édition principale d'alloc (les modifications ont déjà été préparées et transférées à la bibliothèque Rust standard).
  • Au lieu de builds nocturnes, les versions bêta et stables peuvent désormais être utilisées compilateur rustc pour compiler un noyau compatible Rust. Actuellement, rustc 1.54-beta1 est utilisé comme compilateur de référence, mais après la version 1.54 à la fin du mois, il sera supporté comme compilateur de référence.
  • Ajout de la prise en charge de l'écriture de tests à l'aide de l'attribut Rust standard "# [test]" et de la possibilité d'utiliser des doctests pour utiliser des exemples de code de la documentation en tant que tests.
  • Ajout de la prise en charge des architectures ARM32 et RISCV en plus des x86_64 et ARM64 précédemment pris en charge.
    Implémentations GCC améliorées Rust (le frontend GCC pour Rust) et rustc_codegen_gcc (le backend rustc pour GCC), qui passe maintenant tous les tests de performances.
  • UNE nouveau niveau d'abstraction pour que les programmes Rust utilisent les mécanismes du noyau écrits en C, tels que les arbres, les objets de comptage de références, la création de descripteurs de fichiers, de tâches, de fichiers et de vecteurs d'E/S.
  • Les composants de développement de pilotes ont une compatibilité améliorée avec le module "file_operations", la macro "module!", la journalisation des macros et les pilotes rudimentaires (sonde et suppression).
  • Binder prend en charge la transmission de descripteurs de fichiers et de liens LSM.
  • Un exemple plus fonctionnel de pilote Rust, bcm2835-rng, est proposé pour un générateur matériel de nombres aléatoires pour les cartes Raspberry Pi.

Enfin, si vous souhaitez en savoir plus, 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.