IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

« Le problème vient peut-être de vous », lance Linus Torvalds à un promoteur de Rust dans le noyau Linux,
Linus Torvalds s'immisce dans la rixe qui oppose mainteneurs C et Rust

Le , par Patrick Ruiz

6PARTAGES

4  0 
Après plus de 30 ans, un deuxième langage a fait l’objet d’adoption pour le développement du noyau Linux : Le Rust. L’état des lieux à date fait état de ce que le taux d’adoption de Rust comme langage de programmation pour le noyau Linux reste faible. C’est la raison pour laquelle des promoteurs de Rust comme langage de développement du noyau Linux bousculent en utilisant des méthodes que Linus Torvalds juge malsaines pour la communauté. C’est la raison d’une récente sortie de ce dernier contre Hector Martin qui promeut l’usage de Rust comme langage de développement du noyau Linux.

« Et si vous acceptiez le fait que le problème vient peut-être de vous ? Vous pensez que vous savez mieux [que les autres]. Mais le processus actuel fonctionne. Il a des problèmes, mais les problèmes font partie de la vie. La perfection n’existe pas », lance-t-il à Hector Martin auquel il reproche en particulier sa propension à communiquer sur les réseaux sociaux à propos des écueils en matière d’adoption de Rust dans le noyau Linux plutôt que dans les canaux consacrés par la communauté de développement du kernel.

Le différend est né de l'opposition de Hellwig (mainteneur principal du noyau) à un correctif proposé le mois dernier par Hector Martin et qui devait permettre aux pilotes de périphériques écrits en Rust d'appeler l'API DMA du noyau, principalement basé sur le langage C, qui alloue et mappe des régions de mémoire pour l'accès direct à la mémoire.

Les habitués du langage C n’entendent pas se laisser embarquer dans ce qu’ils appellent la nouvelle religion du Rust

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 :

« Ne me forcez pas à travailler avec votre langage brillant du jour. La maintenance de projets multilingues est une tâche pénible à laquelle je n'ai aucune envie de m'atteler. Si vous voulez utiliser quelque chose qui n'est pas du C, que ce soit de l'assembleur ou du Rust, vous écrivez dans des interfaces C et vous vous occupez vous-même du décalage d'impédance en ce qui me concerne », a-t-il lancé.

En réponse, Danilo Krummrich a expliqué que Rust for Linux crée un code Rust qui abstrait les API C pour tous les pilotes Rust et qui est maintenu par les développeurs Rust. En d'autres termes, le côté C du noyau reste le même, et les pilotes Rust utilisent des abstractions de ce code C, et ces abstractions sont maintenues par une équipe centralisée dans rust/kernel, ce qui est sans doute mieux que des pilotes ayant leurs propres bindings C individuels.

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 :

« 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. (Où ce cancer est explicitement une base de code interlangage et non Rust lui-même, juste pour échapper à la brigade flameware.)

Chaque bit supplémentaire introduit par un autre langage réduit considérablement la maintenabilité du noyau en tant que projet intégré. La seule raison pour laquelle Linux a réussi à survivre aussi longtemps est qu'il n'a pas de frontières internes, et l'ajout d'un autre langage rompt complètement avec cela.

Vous n'aimerez peut-être pas ma réponse, mais je ferai tout ce qui est en mon pouvoir pour arrêter cela. Ce n'est pas parce que je déteste Rust. Même si ce n'est pas mon langage préféré, c'est certainement l'un des meilleurs nouveaux langages et j'encourage les gens à l'utiliser pour de nouveaux projets là où il convient.

Je ne veux pas qu'il s'approche d'une énorme base de code C que je dois maintenir », a-t-il ajouté.

Source : LKML

Et vous ?

Quels sont les avantages et les inconvénients de Rust par rapport au C pour le code du noyau ?
Pourquoi le langage C pourrait encore avoir de longues années devant lui ?
Le C a-t-il vraiment besoin d’un remplaçant en matière de programmation système ?
Le problème avec le C n’est-il pas plutôt le mauvais usage que certains développeurs en font ?

Voir aussi :

Programmation : une étude révèle les langages les plus voraces en énergie, Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts

Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux, et aurait qualifié le C++ de « langage de m... », après le message de Google

Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation

Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust, et renforce son équipe Rust par des nouveaux talents

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de floyer
Membre éclairé https://www.developpez.com
Le 10/02/2025 à 20:59
Citation Envoyé par chrtophe Voir le message
Bonne remarque, mais si on est capable d'utiliser l'IA pour fournir un meilleur code, on peut le faire aussi en C, donc pas besoin de Rust dans ce cas là.

Intégrer Rust dans le noyau Linux, si ça apporte un vrai plus. Pour le moment c'est un peu tôt pour en juger.
Oui, effectivement… je pense que l’on peut plus facilement faire confiance au code de SeL4 (dont la compilation finale est en C) qu’à un code Rust sans élément de preuve.

Ceci-dit, je pense que l’horizon d’une preuve automatique est un peu loin. Rust garde alors une utilité.
0  0 
Avatar de floyer
Membre éclairé https://www.developpez.com
Le 10/02/2025 à 21:18
La transpilation n’est pas de la science fiction. Je suppose que si Rust compile directement en LM, c’est par efficacité. Usuellement, on transpile en C par simplification et portabilité, mais avec des bibliothèques telles que LLVM, ce n’est plus forcément nécessaire.

Par ailleurs, quel intérêt vu de la maintenance d’avoir du C en intermédiaire ? La maintenance se fait toujours sur le code source, donc par définition, pas sur du code généré.
0  0 
Avatar de rust2code
Membre régulier https://www.developpez.com
Le 11/02/2025 à 2:32
Citation Envoyé par foreman Voir le message
Bon vu que c'est vraiment d'actualité, si Rust est si intéressant que ça face au C, qu'il utilise l'IA pour avoir un équivalent optimisé du C en Rust....de toute façon on peut imaginer que le futur de l'IA, on pourra générer tout un OS.... ça peut paraïtre surréaliste au moment où j'écris mais c'est très loin d'être de la science fiction aussi....et penser le contraire ça serait ne pas admettre et ne pas croire à l'évolution de l'IA (générative)
Du coup on arrête tout et on attend le futur ?

La jeunesse...
0  0 
Avatar de rust2code
Membre régulier https://www.developpez.com
Le 11/02/2025 à 2:59
Citation Envoyé par fdecode Voir le message
Ici, le classement semble cumulatif. Cela défavorise l'Asie, et autres pays émergents.

Il y a PISA aussi. La presse avait évoqué la chute française inédite de 2022, mais cela m'avait semblé moins marqué que les résultats de TIMSS.
Oui, le PISA a été largement évoqué. Mais au-delà des indicateurs, il faudrait expliquer aux Français pourquoi leurs enfants deviennent plus sots que les autres. En Suisse, nous constatons tous les jours, avec effroi et consternation, pourquoi.
0  0 
Avatar de foreman
Membre à l'essai https://www.developpez.com
Le 10/02/2025 à 21:04
Bon vu que c'est vraiment d'actualité, si Rust est si intéressant que ça face au C, qu'il utilise l'IA pour avoir un équivalent optimisé du C en Rust....de toute façon on peut imaginer que le futur de l'IA, on pourra générer tout un OS.... ça peut paraïtre surréaliste au moment où j'écris mais c'est très loin d'être de la science fiction aussi....et penser le contraire ça serait ne pas admettre et ne pas croire à l'évolution de l'IA (générative)
0  5