Linus Torvalds a l'intention d'inclure des modifications liées à Rust en contournant les mainteneurs.

Christoph Hellwig, mainteneur des sous-systèmes DMA, KVM, Slab Allocator et de l'architecture PowerPC dans le noyau Linux, qui a formellement refusé d'accepter les wrappers Rust dans le noyau pour le sous-système DMA, a rejoint la discussion sur les règles d'accompagnement de Rust dans le noyau, publiées par le projet Rust for Linux. Selon Christoph, ces règles sont inutiles tant qu'elles ne sont pas convenues avec la communauté et incluses dans la documentation du noyau.

Christoph a également signalé que les règles contiennent des informations incorrectes concernant la possibilité pour les mainteneurs de prendre des décisions indépendantes sur l'inclusion de code lié à Rust dans leurs sous-systèmes. Selon Christoph, dans une discussion personnelle, Linus Torvalds a déclaré qu'il avait l'intention ferme d'accepter le code Rust dans le noyau, malgré les objections des mainteneurs. Ainsi, les développeurs et les mainteneurs du noyau devront désormais traiter avec Rust, qu'ils le veuillent ou non.

Christoph a également comparé la propagation des wrappers Rust à une tumeur cancéreuse qui se répandrait dans tous les sous-systèmes du noyau et mènerait à une fragmentation. Un noyau unifié se transforme en un projet écrit dans plusieurs langages, sans définition claire de quand utiliser quel langage. Selon Christoph, travailler avec une telle base de code mixte est devenu son pire cauchemar, car dans de telles conditions, il y a constamment des réécritures de code d'une langue à l'autre, puis inversement.

Christophe demande une clarification sur l'objectif de l'intégration de Rust dans le noyau. Si l'objectif est de résoudre les problèmes de sécurité liés aux opérations bas niveau sur la mémoire, une modernisation du code existant est principalement nécessaire. Étant donné que les mainteneurs réagissent douloureusement même à des choses triviales, comme les vérifications de débordement entier, il n'est pas clair comment surmonter le fossé entre une partie du noyau qui n'accepte même pas des règles simples sur la sécurité et une autre partie qui respecte des règles strictes. En revanche, si l'objectif est de simplifier le développement de pilotes, l'introduction d'un nouveau langage ne fera qu'ajouter un travail supplémentaire et accentuer la charge des personnes déjà surchargées qui maintiennent l'infrastructure du noyau en état de fonctionnement.

Quant aux partisans de l'intégration de Rust dans le noyau, ils évoquent les objectifs suivants :

  • Écrire du nouveau code en Rust réduira le risque d'erreurs liées à la mémoire et aux conditions de concurrence, tout en éliminant certaines erreurs logiques.
  • Il sera plus facile pour les mainteneurs de réviser les modifications et de procéder au refactoring des modules en tenant compte des garanties offertes par le langage Rust.
  • La présence d'abstractions exploitant les capacités avancées de Rust simplifiera la création de nouveaux pilotes et modules.
  • Le soutien d'un langage moderne attirera de nouveaux participants au développement du noyau.
  • L'utilisation des outils de Rust facilitera le respect des exigences de documentation du code. Par exemple, le projet Rust for Linux a introduit une exigence de documentation obligatoire des API publiques, des exigences de sécurité, des blocs unsafe et des invariants de types.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster