
qui assimilent le mélange de Rust et du C à un « cancer » qui rendrait Linux impossible à maintenir
Deux camps continuent de s'opposer sur le sujet de l'intégration de Rust dans le noyau Linux : ceux qui voient Rust comme une opportunité d'améliorer la sécurité et la robustesse de Linux et ceux qui rejettent le mélange des langages C et Rust. Christoph Hellwig, l'un des mainteneurs du noyau, appartient au deuxième groupe et assimile ce mélange à un « cancer ». Toutefois, il a rapporté que le créateur de Linux, Linus Torvalds, est favorable à l'ajout de Rust dans le noyau et veut aller de l'avant dans ce projet. Selon Christoph Hellwig, Linus Torvalds aurait déclaré en privé qu'il passera outre le veto des mainteneurs pour fusionner le code du noyau Rust.
Linus Torvalds reste ouvert à l'idée d'intégrer le langage Rust dans le noyau Linux
Ces derniers mois ont été marqués par des discussions houleuses sur la question de l'ajout de Rust comme le deuxième langage de développement du noyau Linux. Le débat est devenu encore plus intense lorsque Christoph Hellwig a assimilé le mélange de Rust et de C dans le noyau Linux à un « cancer ». Christoph Hellwig, l'un des responsables du noyau, s'oppose catégoriquement à cette idée et affirme que « le mélange rendrait Linux impossible à maintenir ».
Il a déclaré : « si vous voulez rendre Linux impossible à maintenir à cause d'une base de code interlangage, faites-le dans votre pilote pour que vous ayez à le faire au lieu de répandre ce cancer dans les sous-systèmes centraux... Je ne veux pas qu'il s'approche d'une énorme base de code C que je dois maintenir ».
Mais Christoph Hellwig a récemment mentionné un échange privé avec Linus Torvalds qui montre que ce dernier veut tenter l'aventure Rust. Dans cet échange, Linus Torvalds aurait précisé qu'il passerait outre le veto des mainteneurs sur le code Rust au sein du noyau. Christoph Hellwig critique cette décision.

Il a déclaré : « le C est, en fin de compte, un langage très simple. C'est l'une des raisons pour lesquelles j'apprécie le C et pour lesquelles beaucoup de programmeurs C apprécient le C, même si le revers de la médaille est évidemment que, parce qu'il est simple, il est aussi très facile de faire des erreurs ».
Les remarques de Christoph Hellwig sont jugées en violation du code de conduite
Hector Martin, chef de projet d'Asahi Linux, estime que « les remarques de Christoph Hellwig constituent une violation du code de conduite », mais doute que des mesures disciplinaires soient prises. Il estime que les développeurs de Rust for Linux devraient ignorer les préoccupations de Christoph Hellwig et soumettre leur correctif à l'approbation du patron du noyau, Linus Torvalds. Selon lui, l'avenir de Rust for Linux dépendra de la réponse de Linus Torvalds.
Et à en croire Christoph Hellwig, Linus Torvalds a bien l'intentien de fusionner le code du noyau Rust. Christoph Hellwig ajoute qu'il ne voit pas l'intérêt d'intégrer Rust. Selon lui, si l'objectif est de résoudre les problèmes liés à la sécurité de la mémoire, « d'autres pistes sont possibles et sont meilleures ».

Le 7 février 2025, Hector Martin a demandé à être retiré de la liste des mainteneurs de Linux. « Je n'ai plus aucune confiance dans le processus de développement du noyau ou dans l'approche de la gestion de la communauté », a-t-il écrit dans une note adressée à la liste de diffusion du noyau Linux.
Pourquoi intégrer Rust dans le noyau Linux ?
La principale raison d'envisager l'utilisation de Rust réside dans ses caractéristiques de sécurité de la mémoire. Le noyau Linux est écrit en C, un langage qui, bien que puissant, nécessite une gestion minutieuse de la mémoire pour éviter les bogues. Le langage Rust facilite l'écriture de codes sûrs, réduisant potentiellement les vulnérabilités et améliorant la stabilité. La possibilité d'écrire des pilotes plus sûrs est donc une motivation clé pour l'adoption de Rust.
Il n'est pas prévu de réécrire l'ensemble du noyau Linux en Rust, mais de l'introduire progressivement, en commençant par les nouveaux pilotes de périphériques. Cette approche progressive vise à minimiser les perturbations et à donner aux responsables le temps de s'adapter au nouveau langage.
Pourquoi certains mainteneurs s'opposent-ils à l'intégration de Rust dans le noyau ?
Alors, si Rust est si génial, pourquoi cette controverse ? Certains mainteneurs affirment que la multiplicité des langages rende plus difficile la maintenance du noyau. Selon eux, l'utilisation de plusieurs langages est une « complication indésirable et risquée ». Voici une analyse des principaux points de désaccord :
- la maintenabilité : certains mainteneurs, dont Christoph Hellwig, s'inquiètent de la maintenabilité à long terme du code Rust dans le noyau. Selon eux, l'introduction d'un second langage ajoute de la complexité et pourrait conduire à des incohérences ;
- qualité du code : certains mainteneurs se demandent si le code Rust dans le noyau sera aussi efficace et idiomatique que le code C, en particulier lors de l'interface avec le code C existant et les structures de données du noyau ;
- autorité du mainteneur : si Linus Torvalds passe outre les objections des mainteneurs, cela pourrait saper leur autorité et créer des conflits au sein du processus de développement ;
- gestion de la base de code : l'introduction d'un autre langage dans le noyau peut poser des problèmes de gestion. La réécriture constante de parties d'un langage à l'autre peut poser problème.
Christoph Hellwig craint que les bindings Rust (le code qui relie Rust et C) ne s'infiltrent partout comme un cancer, conduisant à un projet fragmenté avec des lignes directrices floues. Le mainteneur craint également les frais généraux liés à la gestion d'un projet multilingue.
Source : Christoph Hellwig, mainteneur du noyau Linux
Et vous ?


Voir aussi



Vous avez lu gratuitement 85 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.