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 !

« Rust sauvera Linux de l'IA », affirme Greg Kroah-Hartman dans le cadre d'une critique de l'usage de l'intelligence artificielle pour trouver les bogues au sein du code du noyau écrit en langage C

Le , par Patrick Ruiz

5PARTAGES

17  1 
« Rust sauvera Linux de l’IA », affirme Greg Kroah-Hartman dans le cadre d’une critique de l’usage de l’intelligence artificielle pour trouver les bogues au sein du code du noyau écrit en langage C

Greg Kroah-Hartman, responsable de la maintenance du noyau stable de Linux, affirme que Rust peut aider Linux à faire face à un afflux de failles de sécurité détectées par l'IA (notamment Dirty Frag, Copy Fail et Fragnesia) en prévenant les erreurs courantes en C liées à la gestion de la mémoire, au verrouillage, à la gestion des erreurs et aux données non fiables dès la phase de compilation, plutôt que lors de la révision par les mainteneurs. Sa sortie est de nature à donner un coup de neuf au débat sur la comparaison entre les langages Rust et C en matière de programmation système.

Ce n'est « pas une solution miracle » et cela ne signifie pas qu'il faille réécrire l'intégralité du noyau, mais Greg Kroah-Hartman est d’avis que les nouveaux pilotes et sous-systèmes doivent s’appuyer sur Rust au fur et à mesure de l’évolution du noyau.

Kroah-Hartman illustre son positionnement à l'aide de véritables bogues en C présents dans le noyau, notamment un bogue Bluetooth vieux de 15 ans qui déréférençait un pointeur sans le vérifier et un bogue Xen d’oubli de déverrouillage dans une branche d'exception. « La majorité des bogues dans le noyau sont de ces petits détails insignifiants », explique-t-il. « Les conditions d'erreur ne sont pas vérifiées, les verrous ne sont pas oubliés, les mémoires non libérées fuient et les vulnérabilités s'accumulent au fil du temps. Elles provoquent le plantage du noyau. C'est ce à quoi nous sommes confrontés avec le C. C'est pourquoi nous ne l'aimons pas. »

Kroah-Hartman fait valoir que « la plus grande beauté de Rust » réside dans le fait de détecter ces erreurs lors de la compilation plutôt que lors de la révision. Par exemple, en matière de verrouillage, il a mis en avant les abstractions de verrouillage de Rust dans le noyau : « La seule façon d’accéder aux pointeurs internes des structures est d’acquérir ce verrou, puis de le libérer automatiquement. Le compilateur s’en charge, c’est sécurisé, le verrouillage s’effectue, tout va bien. Il est tout simplement impossible d’écrire du code pour accéder à ces valeurs sans acquérir le verrou. Le compilateur ne vous le permettra pas. »

Ces propriétés éliminent directement une grande partie des bogues qu’il constate : « Cela va nous éviter deux choses. Premièrement, 60 % des bogues du noyau disparaissent d’un coup. Kroah-Hartman est d’avis que même si Rust disparaissait demain, il a déjà contraint le noyau à nettoyer le code C et les interfaces.


Brian Kernighan pour sa part critique vivement les performances du langage Rust

« Pensez-vous que Rust ait un quelconque intérêt à remplacer C ? Ou s'agit-il simplement d'un énorme battage médiatique qui finira par s'essouffler ? », a demandé un membre du public. Dans un monde qui évolue depuis des années vers des langages plus sûrs pour la mémoire, la réponse d'un fervent défenseur du langage de programmation C depuis plus d'un demi-siècle promettait d'être tout simplement emblématique. Il s'est montré très très critique.

Brian Kernighan a trouvé son expérience avec Rust « pénible ». Selon lui, les mécanismes imposés par Rust pour garantir la sécurité mémoire sont trop lourds, surtout dans un programme où la gestion de la mémoire n’était pas un problème majeur. Il décrit son unique essai comme « une douleur », et juge l’écosystème du langage — avec ses crates, sa complexité et la lenteur de la compilation — comme « incompréhensiblement vaste et lent ».


« Ohhh, Rust », a déclaré Brian Kernighan, sous les rires du public. « Je n'ai écrit qu'un seul programme en Rust, vous devez donc prendre tout cela avec beaucoup de recul. Et j'ai trouvé cela pénible. Je n'arrivais tout simplement pas à comprendre les mécanismes nécessaires pour assurer la sécurité de la mémoire, dans un programme où la mémoire n'était même pas un problème ! ». Sa plus grande critique semble concerner ses performances de Rust.

« Et le compilateur était lent, le code qui en ressortait était lent... », a-t-il déclaré. « Quand j'ai essayé de comprendre ce qui se passait, le langage avait changé depuis la dernière fois que quelqu'un avait publié une description ! Il m'a donc fallu plusieurs jours pour écrire un programme qui, dans d'autres langages, aurait pris peut-être cinq minutes... »

Le 15 mai 2025, le compte Twitter officiel du projet FFmpeg a publié un message acerbe à l'encontre de Rust qui dit : « [Rust] est tellement bon que l'on peut être payé 20 000 $ pour le rendre aussi rapide que C ». Cette remarque visait l'initiative de Prossimo, qui a proposé une prime de 20 000 $ à quiconque parviendrait à rendre son décodeur AV1, rav1d, aussi rapide que dav1d, une implémentation en C largement reconnue pour sa rapidité.

Cette déclaration a ravivé le débat sur les compromis entre sécurité mémoire, performance et coût dans le développement de systèmes critiques. Il s'agit d'un débat de longue date dans la communauté des développeurs. Certains chérissent les performances brutes, tandis que d'autres préfèrent la sécurité.

Certains intervenants pensent que le choix de Rust est une erreur et que C++ moderne est une meilleure alternative

« Maintenant, "pourquoi pas Rust" ? Tout d'abord, Rust utilise une syntaxe différente (souvent, à mon avis, gratuitement), et non seulement tous les développeurs du noyau devraient se familiariser intimement avec la syntaxe afin d'obtenir le même type de "feeling" que nous avons pour le C, mais convertir du code C en Rust n'est pas quelque chose qui ne peut être fait par les développeurs du noyau qu'au coup par coup, alors qu'avec quelques nettoyages le code C existant peut être compilé en C++.

Cependant, je ne suis pas d'accord avec certaines des conclusions de David. en fait, je crois que David est inutilement pessimiste, du moins en ce qui concerne le C++ moderne.

Notez que personne de sain d'esprit ne s'attend à utiliser toutes les fonctionnalités de C++. Tout comme nous avons le "kernel C" (actuellement un sous-ensemble de C11 avec un avec un ensemble relativement large d'extensions spécifiques au compilateur), nous aurions le "noyau C++", que je suggère d'être un sous-ensemble strictement défini de de C++20, combiné à un ensemble similaire d'extensions de compilateur). Je me rends compte que que la prise en charge du C++20 par les compilateurs est encore très récente pour des raisons évidentes, de sorte qu'au moins une partie de ce qui précède est tournée vers l'avenir », souligne le développeur Linux – Peter anvin.

Jiri Slaby de SUSE Lans s'est prononcé en faveur de cette initiative C++ pour le noyau Linux. David Howells de Red Hat s'est également prononcé en faveur de cette approche.

Et vous ?

Le langage C a-t-il réellement besoin d'un remplaçant dans la filière de la programmation système ?
Partagez-vous les avis selon lesquels le choix de Rust comme langage de développement du noyau est une erreur ? Voyez-vous le C++ moderne comme meilleure solution aux questions d’évolution du noyau ?

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
Vous avez lu gratuitement 65 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

Avatar de fr1man
Expert confirmé https://www.developpez.com
Le 28/05/2026 à 13:32
@Artaeus
Parce que vous croyez que seuls les mauvais développeurs introduisent des bugs ?
C'est un peu simpliste comme raisonnement.
5  1 
Avatar de imperio
Membre chevronné https://www.developpez.com
Le 28/05/2026 à 11:46
Citation Envoyé par Artaeus Voir le message
Ce projet, c'est réinventer la roue (mais en version bien plus lente) ...

La manière dont cette priorité de "passer en Rust" est poussée m'interroge beaucoup sur des conflits d'intérêt et des non-dit en coulisse.
Faire des économies d'argent sur le long-terme en enlevant toute une catégorie de bugs et attirer des contributeurs plus jeunes sur le noyau pour assurer sa pérennité dans le temps.

C'est pas comme si Rust était testé dans le kernel depuis plusieurs années pour voir si ça valait le coup et leur convenait après tout... Et le plus beau : tous ces débats sont publics. Faut arrêter de chercher des complots à un moment...
3  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 28/05/2026 à 11:50
La priorité n'est pas de passer en Rust, Greg Kroah-Hartman est clair là dessus dans la conférence. Il dit que Rust est a préférer pour les nouveaux driver / sous-systèmes, mais il n'est pas question de demander aux mainteneurs de recoder ce qui existe déjà en Rust. Si un module est remplacé, comme l'Android Binder qu'il donne en exemple, c'est que c'est une volonté du mainteneur, en l’occurrence Google.
3  0 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 28/05/2026 à 14:01
Citation Envoyé par Artaeus Voir le message
Les bons dev, jeunes ou anciens, sécurisent leur code.
Maladroit! Vous êtes en train de sous-entendre que les concepteurs des applis qu'on utilise tout le temps et qui présentent régulièrement des bugs sont des grosses brêles...

Citation Envoyé par Artaeus Voir le message
Avec l'explosion des couts matériels, la priorité doit-être la rapidité (comme ça a toujours été le cas).
Ça tombe bien! La sémantique du langage Rust, et notamment la sémantique de prêt, associée aux capacités d’optimisation du compilateur de Rust permettent de très bonnes optimisation du code. Par exemple, la sémantique de prêt offre un contrôle de l'aliasing de la mémoire probablement plus précis qu'un mot clef comme 'restrict' en C. On pourrait aussi évoquer les facilités à paralléliser le code...
3  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 30/05/2026 à 15:04
Citation Envoyé par Bardaz Voir le message
Je ne sors pas ça du chapeau, faites une recherche, même rapide sur la partie financière de Rust et sur les protocoles de décisions des instances des différents langages. La plupart des personnes se concentrent sur la partie technique à juste titre c'est la première à interroger mais il ne faut aucunement s'arrêter là. Il faut avouer que c'est pas un aspect très apétant pour des devs mais faut bien s'y coller pour comprendre pourquoi les bigs techs et le gouvernement US soutient à fond.
Il faudrait que tu sois plus précis car ce que tu reproches au Rust, comparé au C et C++, n'est pas très clair .
Les protocoles de décision en ce qui concerne l'évolution de Rust sont connus et relativement ouverts. Il ne faut pas croire que c'est très différent coté C ou C++, les comités de normalisation du langage ont beau répondre à une norme ISO, ils ont tout autant leur problèmes de jeu de pouvoir.

Citation Envoyé par calvaire Voir le message
c'est juste que je vois passer beaucoup de news sur le net de certains qui veulent absolument tous recoder un truc (même quand ça marche très bien depuis des années) en rust.
Meme antropic fait sa pub en codant en rust un compilateur c. L’intérêt technique de ce truc et nul, ils ont choisit volontairement pour faire de la pub de coder en rust parmi les 10aines d'autres langages populaire qui existe.
Les tentatives de porter, sans de très bonnes raisons, un outil C qui marche bien en Rust ne sont pas légion. Si tu as l'impression qu'on en parle beaucoup, c'est la plupart du temps parce que les supporters du C et du C++ remontent en boucle les mêmes cas particuliers. Généralement les gens qui connaissent Rust sont les premiers à recommander de ne pas le faire, à moins que le besoin d'un réécriture se fasse vraiment sentir.

En ce qui concerne Anthropic, je suppose que tu parles de Bun, mais c'est une suite d'outils pour le langage TypeScript, écrite en Zig. Pas de rapport avec C. Je dirais même qu'une partie de la problématique est inversée, vue que Zig est un langage bien plus niche que le Rust.
Cependant, c'est vrai que cette migration n'était pas pas indispensable, surtout que ça a été fait de manière précipitée à coup d' IA générative quasiment pas supervisée, ce qui est critiqué en premier lieu par la communauté Rust.
2  0 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 02/06/2026 à 13:19
Citation Envoyé par Uther Voir le message
Les tentatives de porter, sans de très bonnes raisons, un outil C qui marche bien en Rust ne sont pas légion. Si tu as l'impression qu'on en parle beaucoup, c'est la plupart du temps parce que les supporters du C et du C++ remontent en boucle les mêmes cas particuliers. Généralement les gens qui connaissent Rust sont les premiers à recommander de ne pas le faire, à moins que le besoin d'un réécriture se fasse vraiment sentir.
Ces montages en boucles viennent aussi de certains préjugés. C'est à croire que certains pensent que les personnes qui programment en Rust ont découvert la programmation avec Rust et veulent refaire le monde en oubliant le passé... Et bien non, beaucoup d'entre nous ont un historique de programmation, et les bons réflexes qu'on avait en faisant du C ou du C++ à une certaine époque, puis en utilisant d'autres langages, n'ont pas disparu depuis qu'on fait du Rust.
2  0 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 29/05/2026 à 14:44
Citation Envoyé par Mingolito Voir le message
Il y a un conflit de génération, les anciens codeur C++ de l'équipe seront bientôt séniles ou morts, et les jeunes ne veulent pas coder en C++ c'est trop compliqué, mais en Rust peut être. Donc l'idée est de remplacer l'équipe C++ mourante par une équipe plus jeune, sur Rust.
Il faut quand même reconnaitre que le code Rust sera plus facile à lire et induira moins de risques de vulnérabilités que le C++. Google est déjà en train de faire le pas avec des résultats probants :

Google a adopté Rust pour des raisons de sécurité et a constaté une réduction de 1 000 fois des vulnérabilités liées à la sécurité de la mémoire

« Les équipes Rust chez Google sont deux fois plus productives que celles qui se servent de C++ »
Le langage développé par Google, c'est surtout Go. Mais il est vrai que Google met particulièrement en avant Rust, le langage qui a été créé par Mozilla notamment pour d'anciens projets expérimentaux comme servo.

Mais je me réfère plutôt à la liste des financeurs de la fondation Rust, pour mesurer l'adoption progressive du langage.


J'avais noté précédemment l'arrivée d'arm comme financeur Platinum du langage, mais je note aussi que Canonical, le commanditaire de l'OS Ubuntu, est désormais financeur Gold.

Et non, il n’y a pas de complot contre les langages C/C++ : il s’agit simplement d’une montée d’intérêt progressive, venant de différents acteurs indépendants, sans implication particulière au départ dans ce projet.

2  1 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 29/05/2026 à 16:03
Citation Envoyé par UneMouchePasse Voir le message
Chacun voit midi à sa porte, perso la secte C\C++ bloquée dans les années 2000 je la trouve encore bien présente. Enfin elle est bientôt à la retraite.
Je suis vieux et j'aime bien Rust! On n'est pas dans une guerre générationnelle, quand même!
1  0 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 01/06/2026 à 9:40
Citation Envoyé par calvaire Voir le message
Il y'a 10ans je disais la même chose avec la "secte" javascript, tous le monde voulaient tous recoder en javascript.
Je ne code pas en javascript/typescript, mais cela reste incontournable dans le developpement web, me semble-t-il.

Citation Envoyé par calvaire Voir le message
Tous ça sait d'ailleurs terminé à du web assembly.
Cela cible des choses différentes. C'est très bien pour faire des modules bas niveau ou pour compiler de l'existant, Rust, C/C++ ou Zig notamment.

Citation Envoyé par calvaire Voir le message
Perso je conseil plutôt de partir sur du des technos de niche à forte valeur : Scala, Clojure ou Zig
On est vraiment dans des technos de niche, là.
Et pour ce qui est de Scala, on est davantage dans l'effet de mode que JavaSctipt qui a une porté universelle dans le monde web. Heureusement qu'il lui reste une implémentation importante dans le domaine des grandes données et du distribué JVM.
J'aime bien ce langage ceci étant, et il a contribué à mon basculement dans le monde Rust (et oui...).
1  0 
Avatar de fdecode
Membre habitué https://www.developpez.com
Le 02/06/2026 à 10:17
Citation Envoyé par Uther Voir le message
Un intérêt de Rust est justement qu'il permet d’intégrer le paradigme fonctionnel bien mieux que C et C++ dans des domaines où la plupart des langage fonctionnels sont inenvisageables
Je ne me suis pas senti trop dépaysé en passant à Rust après quelques temps à travailler avec Scala (version 2).
Pour ce qui est du fonctionnel, j'avais justement apprécié les capacités de pattern matching de Rust, se basant essentiellement sur la structure de donnée, et donc favorisant une optimisation du code par le compilateur (sans surcharge d'abstraction à l'exception de certains tests conditionnels ou certaines gestions de l'énumération dans le matching).
A contrario, le pattern matching de Scala passe beaucoup par des unapply, et n'est pas aussi direct. Même les 'case class' de Scala restent des classes JVM, et cela est un peu plus lourd que les structures Rust qui sont directement matchables tout en étant très simples et proches du C.
Alors Scala est plus concis du point de vue de la programmation fonctionnelle, certes, mais je m'y retrouve bien en Rust.
Les deux langages proposent des mécanismes haut niveau, incluant:
- le fonctionnel,
- Des mécanismes de trait différents, mais sur lequel Rust fait reposer sa programmation par héritage (programmation orientée traits, à comportements orthogonaux aux données).
- Des langages fortement typés mais avec un mécanisme important d'inférence de type (Rust étant plus limité que Scala sur ce point mais avec plus de lisibilité; il faut très bien connaitre ses règles de sucre grammatical en Scala...),
- Un fort impact de la généricité par des variables de type et cette généricité est bien maîtrisée (rien à voir avec un template). Le conditionnement des types en Rust est incroyable, et je pense que ça va plus loin que Scala. Par contre, Scala permet des variables de type du second ordre... Même si les GAT (Generic Associated Types) de Rust offrent quelques possibilités.
- Des systèmes de macros agissant sur l'AST,
- Une programmation multithread/asynchrone facile (e.g. Scala: Future basé GC et les mécanismes de multithread de la JVM ; Akka/Pekko ; Flink, Spark, ... ; je ne connais pas ZIO /**/ Rust: noGC ; multithread ou async (concurrence) ; channels ; rayon ; tokio ; ractor ...).
Les deux langages sont élégants de mon point de vue, et la concision de Scala est imbattable. Et on n'oubliera pas le côté DSL-friendly de Scala grâce à ses sucreries grammaticales (à l'excès parfois).
Mais ce qui avait emporté mon choix, c'est que Rust m'a offert des fonctionnalités qui me paraissent proches de Scala tout en étant bas niveau et avec un travail direct en mémoire, grâce à la sémantique de prêt... Honnêtement, ça m'avait impressionné à l'époque.
1  0