
� je ne veux pas qu'il s'approche d'une �norme base de code C que je dois maintenir �, dit-il � propos de Rust
L'int�gration du langage Rust dans le noyau Linux continue de cr�er des divergences d'opinions dans le rang des mainteneurs. Certains voient en Rust une opportunit� d'am�liorer la s�curit� et la robustesse de Linux, notamment gr�ce � sa gestion de la m�moire et � sa pr�vention des erreurs courantes en C. D'autres expriment des r�serves, soulignant la complexit� du langage et les risques li�s � son adoption dans un projet aussi vaste que Linux. Un responsable du noyau, Christoph Hellwig, s'est r�cemment oppos� � l'int�gration d'un correctif �crit en Rust dans le noyau, indiquant clairement qu'il n'est tout simplement pas int�ress� par le code Rust.
Rust for Linux : une initiative qui provoque des divisions dans la communaut� du noyau
Le projet Rust for Linux vise � int�grer le langage de programmation Rust au sein du noyau Linux, historiquement �crit en C et en assembleur. Lanc� en 2020, ce projet a pour objectif principal de tirer parti des garanties de s�curit� m�moire offertes par Rust afin de r�duire les bogues et vuln�rabilit�s dans le d�veloppement des pilotes du noyau. Toutefois, bien que le projet soit jug� prometteur, il semble que les choses ne se passent pas comme pr�vu.
Certains craignent que la multiplicit� des langages rende plus difficile la maintenance de ce super-projet open source, d'autres ne sont pas d'accord. Et aujourd'hui, les d�veloppeurs qui tentent d'ajouter du code Rust au noyau Linux se heurtent � l'opposition des responsables du noyau. Certains responsables du noyau estiment notamment que l'utilisation de plusieurs langages est une � complication ind�sirable et risqu�e �. C'est le cas de Christoph Hellwig.
Des inqui�tudes sont apparues en ao�t 2024 lorsque l'ing�nieur logiciel de Microsoft Wedson Almeida Filho s'est retir� du projet Rust for Linux, citant sa frustration face � des � absurdit�s non techniques �, ce qui est une fa�on de d�crire la difficult� de collaborer avec ceux qui ont des objectifs diff�rents.
Le probl�me s'est � nouveau pos� en janvier 2025, lorsqu'une proposition d'abstraction permettant aux pilotes de p�riph�riques �crits en Rust d'appeler l'API DMA de Linux principalement bas� sur le langage C s'est heurt�e � l'opposition ferme de Christoph Hellwig, un responsable du noyau.
Plus pr�cis�ment, un contributeur du noyau a soumis un correctif pour permettre aux pilotes Rust d'utiliser la fonction C dma_alloc_coherent() de l'API DMA afin d'allouer et de faire correspondre de grandes zones de m�moire pour un acc�s direct � la m�moire. Christoph Hellwig s'est oppos� � ce correctif.
Dans un message adress� � la liste de diffusion du noyau Linux, Christoph Hellwig a �crit : � pas de code Rust dans kernel/dma, s'il vous pla�t �. Par la suite, Miguel Ojeda, le d�veloppeur principal du projet Rust for Linux, a demand� � Christoph Hellwig de sugg�rer une alternative.
Christoph Hellwig : � ne me forcez pas � travailler avec votre langage brillant du jour �
En adoptant Rust, la communaut� autour du noyau Linux devrait mettre � profit les atouts du langage sur le C. Et elle devrait faire d�une pierre deux coups, �tant donn� que Rust peut faciliter l�arriv�e de nouveaux contributeurs. C�est en tout cas ce que laisse entrevoir une �tude de l�universit� de Waterloo. Mais les habitu�s du langage C d�sapprouvent l'initiative et n�entendent pas se laisser embarquer dans ce qu�ils appellent la nouvelle religion du Rust.
En r�ponse � Miguel Ojeda, Christoph Hellwig a d�clar� : � gardez les wrappers dans votre code au lieu de rendre la vie difficile aux autres �, et a poursuivi en affirmant que � les interfaces de l'API DMA devraient rester dans un code C lisible et non dans des bindings bizarres afin qu'il [reste] greppable et maintenable �.
Le souhait de Christoph Hellwig semble �tre que les pilotes qui ne sont pas �crits en C aient leurs propres liaisons priv�es avec le code C, et que ces abstractions ne soient pas maintenues s�par�ment, pas m�me dans l'arbre rust/kernel. Interrog� par Danilo Krummrich, un ing�nieur logiciel de Red Hat impliqu� dans le projet Rust for Linux, Christoph Hellwig a clairement fait savoir qu'il n'est tout simplement pas int�ress� par le code Rust :

Mais Christoph Hellwig ne semble pas int�ress� par le fait que les abstractions DMA Rust soient maintenues s�par�ment. Christoph Hellwig a expliqu� qu'il ne voulait pas d'un autre mainteneur. Il a poursuivi en affirmant que le fait de demander � d'autres de maintenir la couche d'abstraction Rust pour l'allocateur coh�rent DMA en tant que composant s�par� n'am�liore pas les choses et entrave la maintenabilit� du noyau Linux :

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.

� Le d�veloppement de la plate-forme Apple/ARM se poursuivra en aval. Si j'ai envie d'envoyer moi-m�me des correctifs en amont � l'avenir, pour quelque sous-arbre que ce soit, je le ferai, ou je ne le ferai pas. Tous ceux qui ont envie de se battre en amont eux-m�mes sont les bienvenus �, a-t-il ajout�.
Le noyau Linux a ajout� la prise en charge du code Rust le 3 octobre 2022, peu apr�s que Mark Russinovich, directeur technique de Microsoft Azure, a affirm� que les nouveaux projets de programmation devraient �tre �crits en Rust plut�t qu'en C ou C++. Mark Russinovich a justifi� sa position par le fait que le code Rust peut �tre �crit de mani�re � �viter les bogues de s�curit� de la m�moire (par exemple, les d�bordements de m�moire tampon).
Ces bogues affectent depuis longtemps le code C et C++ et repr�sentent la majorit� des vuln�rabilit�s s�rieuses dans les grands projets. Le point de vue de Mark Russinovich a depuis lors attir� le soutien de nombreuses organisations gouvernementales de s�curit� dans le monde entier.
Peu apr�s que l'ing�nieur logiciel de Microsoft Wedson Almeida Filho a annonc� son d�part de Rust for Linux l'ann�e derni�re, Linus Torvalds a abord� la question des frictions entre les d�veloppeurs C et Rust lors du sommet Open Source de la Fondation Linux � Vienne, en Autriche. � Il est clair que certaines personnes n'aiment pas la notion de Rust et le fait que Rust empi�te sur leur domaine �, a d�clar� Linus Torvalds.
� Les gens ont m�me dit que l'int�gration de Rust �tait un �chec... Nous faisons cela depuis deux ans maintenant, il est donc bien trop t�t pour dire cela, mais je pense aussi que m�me si cela devenait un �chec - et je ne pense pas que ce sera le cas - c'est comme cela que l'on apprend �, a-t-il ajout�.
Source : liste de diffusion du noyau Linux (1, 2) ; Christoph Hellwig, responsable du noyau Linux (1, 2) ; Hector Martin, chef de projet d'Asahi Linux (1, 2)
Et vous ?






Voir aussi



Vous avez lu gratuitement 0 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.