Rust sur Linux : avancées, défis et état actuel

Pilotes Rust sous Linux

Depuis que Linus Torvalds a inclus Rust dans Linux Kernel version 6.1, le langage gagne progressivement du terrain et de plus en plus de développeurs rejoignent ce mouvement.

Toutefois, certains des développeurs du noyau Linux Ils soulignent que les avancées entraîneront de plus en plus de travail et de défis., car dans leurs commentaires, ils laissent entendre qu'une impasse pourrait survenir.

Il convient de préciser que nous ne mentionnons pas que la mise en œuvre est dans une impasse, mais plutôt compte tenu des commentaires de divers développeurs et comme nous l'avons déjà mentionné, dans l'état actuel, la nécessité de réduire le rythme de travail a commencé à apparaître, ou c'est du moins ce que nous suggère l'article suivant LWN.net.

Et il y a quelques semaines, je suis tombé sur cet article qui fait le point sur l'état actuel de l'utilisation de Rust sous Linux et analyse si l'expérience avec ce langage de programmation a été couronnée de succès.

On mentionne que depuis quelques années, La rouille est un sujet qui n'a cessé d'être discuté au "KernelMainteners Summit" et celui qui s'est tenu en 2023 n'a pas fait exception, puisque depuis la mise en place officielle de Rust comme deuxième langage de programmation sous Linux, Miguel Ojeda, Développeur Rust pour Linux, a souligné l'intérêt croissant pour l'utilisation de Rust pour le développement du noyau lors de la session dédiée à ce sujet.

Miguel Ojeda mentionne que le projet Rust pour Linux a connu une dynamique significative au cours de la dernière année, depuis qu'un ingénieur à temps plein et un étudiant développeur se sont joints et que diverses entreprises se sont jointes pour soutenir les travaux. De plus, des travaux sont en cours pour intégrer l'outil Coccinelle au code Rust. Cependant, tout n’est pas rose puisque l’un des défis actuels est de recruter davantage de relecteurs pour le code en cours d’élaboration.

Linux Kernel
Article connexe:
Linux 6.1 arrive avec Rust, des améliorations de performances, des pilotes et plus

Dans l'articleet mentionne que les problèmes ont commencé à être visibles dans la chaîne d'outils, puisque progression du compilateur Rust basé sur GCC, connu sous le nom de gccrs, a ralenti. D'autre part, le générateur de code GCC pour rustc montre des progrès prometteurs et a été fusionné avec le compilateur, ce qui permettra d'étendre le support de Rust aux architectures non compatibles avec LLVM.

Article connexe:
Dans GCC, ils ont approuvé la mise en œuvre de RUST (gccrs)

A l'intérieur du noyau, des progrès sont réalisés dans plusieurs sous-systèmes, c'est le cas de l'implémentation Rust de classeur Android qui a démontré des performances comparables à l'implémentation C, avec une quantité minimale de code dangereux. De plus, des travaux sont en cours sur la liaison du système de fichiers dans le but d'obtenir un support en lecture seule dans Rust, avec la vision d'implémenter un système de fichiers entièrement sécurisé dans Rust.

Dave Airlie, le responsable du sous-système DRM (graphique), a déclaré que s'il réussit, il y aura un pilote Rust DRM fusionné dans les prochaines versions. Christoph Hellwig a répondu qu'Airlie était prête à "faire de la vie de tout le monde un enfer" pour pouvoir jouer avec son jouet préféré. Hellwig a déclaré que la fusion de Rust obligerait les autres à gérer un deuxième langage, de nouvelles chaînes d'outils et des « wrappers avec une sémantique étrange ». Dan Williams a déclaré que la situation actuelle "est à quoi ressemble le succès" et que la communauté du noyau était déjà engagée envers Rust.

Bien que les mainteneurs s’intéressent de plus en plus à l’adoption de Rust, des défis surviennent, puisque cela a été débattu besoin d'avoir des pilotes de référence du noyau écrits en Rust pour montrer comment les contrôleurs peuvent être écrits dans ce langage. Cependant, la duplication des fonctionnalités entre les pilotes Rust et C a généré de la méfiance parmi les responsables.

La discussion sur l'inclusion de Rust a pris différentes directions, Eh bien, certains responsables préconisent de fusionner les pilotes Rust autonomes, tels que le pilote Binder, pour démontrer leur viabilité, tandis que de l'autre côté de la médaille, d'autres Ils expriment des inquiétudes quant à la complexité de maintenir un noyau avec deux langages de programmation.

Airlie a poursuivi en disant qu'une grande partie du travail de Rust est actuellement enfermée dans un problème de poule et d'œuf. Les abstractions ne peuvent pas être fusionnées tant qu'il n'y a pas d'utilisateur pour elles, mais le code qui a besoin de ces abstractions est bloqué en attendant que le code atteigne plusieurs sous-systèmes. En conséquence, les développeurs travaillant sur Rust disposent d’une grande quantité de correctifs dont ils ont besoin pour faire fonctionner leur code. Pour briser cet obstacle, il faudra autoriser l’entrée de certaines abstractions sans utilisateurs immédiats.

Malgré les défis, la communauté du noyau reconnaît le potentiel de Rust pour améliorer la sécurité et la stabilité du code. Il est possible de fusionner des pilotes plus largement utilisés dans Rust à l'avenir, une fois les problèmes de patchability et de maintenabilité résolus.

Ojeda a reconnu que ce problème avait ralenti les progrès, mais a déclaré qu'il avait essayé de ne pas faire pression sur les responsables pour qu'ils fusionnent rapidement le code. Dans le cas du réseau, ironiquement, les développeurs de Rust ont dû demander aux personnes du réseau de ralentir la fusion du code Rust.

Enfin, il convient de mentionner que le chemin vers l'adoption généralisée de Rust sur Linux présente des défis, l'intérêt et les progrès dans ce domaine sont évidents. Au fil du temps, Rust devrait jouer un rôle important dans l’amélioration de Linux.

source: https://lwn.net/


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.