La possibilité d'intégrer le support de Rust dans le noyau Linux 5.20 n'est pas exclue

À la conférence Open-Source Summit 2022 en cours ces jours-ci, dans la section FAQ, Linus Torvalds a mentionné la possibilité d'une intégration précoce dans le noyau Linux de composants à développer Pilotes de périphériques dans Rust.

Il a donc été mentionné que les correctifs activés par Rust pourraient être acceptés dans le prochain journal des modifications qui constitue la composition du noyau 5.20, prévu pour fin septembre.

Il convient de rappeler que depuis l'année dernière, Rust est devenu l'un des favoris à inclure dans divers projets importants et qu'au cours du temps qui s'est écoulé, des travaux ont déjà été effectués concernant la mise en œuvre du support Rust.

Parmi les projets renommés qui s'intéressent à la rouille depuis l'année dernière, on peut souligner, par exemple, Android, puisqu'il s'est intéressé à Calme parce qu'il permet obtenir des performances proches des langages C et C++, lui permettant d'être utilisé pour développer des parties de bas niveau de la plate-forme et des composants pour s'interfacer avec le matériel.

Pour garantir la sécurité du code C et C ++, Android utilise l'isolement sandbox, l'analyse statique et les tests de fuzzing. Les capacités d'isolation du bac à sable sont limitées et ont atteint la limite de leurs capacités (une fragmentation supplémentaire des processus n'est pas pratique du point de vue de la consommation des ressources).

Parmi les limites de l'utilisation de sandbox, ils mentionnent la surcharge élevée et la consommation de mémoire plus élevée causées par la nécessité de générer de nouveaux processus, ainsi que la latence supplémentaire associée à l'utilisation d'IPC.

Rust-Android
Article connexe:
Rust est déjà un favori pour le développement Android

D'autre part, il ne faut pas oublier que Linus Torvalds a également donné son avis sur Rust et dans lequel consacré à l'examen de la mise en œuvre patch de possibilités pour définir les pilotes de langage Rust dans le noyau Linux et a émis des critiques.

Les plus grosses plaintes ont été causées par le potentiel d'évasion "Panicen run-time failure" dans de mauvaises situations, par exemple, dans une situation de mémoire insuffisante, lorsque les opérations d'allocation de mémoire dynamique, y compris les opérations du noyau, peuvent échouer.

Torvalds a déclaré qu'une telle focalisation sur le noyau est fondamentalement inacceptable, Et si vous ne comprenez pas ce point, vous pouvez rejeter complètement tout code qui tente d'utiliser une telle approche. D'un autre côté, le développeur du patch était d'accord avec le problème et le considérait comme résoluble.

Linus Torvalds
Article connexe:
Rust n'était pas exempt des critiques de Linus Torvalds

Mais cela fait plusieurs mois que Linus n'a pas donné son avis et un travail acharné a été fait pour améliorer la mise en œuvre. En tant que tel, une demande d'extraction pour le noyau n'a pas encore été soumise à Torvalds, mais l'ensemble de correctifs a été révisé, les notes d'identification supprimées, testées sur la branche linux-next pendant un certain temps et amenées à un état adapté à la construction de couches d'abstraction au-dessus des sous-systèmes du noyau, à l'écriture de pilotes et de modules.

Le support de la rouille est une option qui n'est pas activé par défaut et n'inclut pas Rust parmi les dépendances de construction requises pour le noyau.

Les modifications proposées permettent d'utiliser Rust comme deuxième langage pour développer des pilotes et des modules de 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 sécurité 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. Rust fournit également une protection contre les débordements d'entiers, nécessite l'initialisation des 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 et offre un typage statique fort pour minimiser les erreurs logiques.


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.