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 !

Linus Torvalds annonce la disponibilité de Linux 6.1 : après 31 ans, un deuxième langage est admis pour le développement du noyau, c'est le Rust
Considéré comme candidat à la mise au rebut du C

Le , par Patrick Ruiz

13PARTAGES

9  2 
Linus Torvalds a annoncé la disponibilité de la version 6.1 du noyau Linux. À partir de cette mouture, un deuxième langage fait son entrée pour le développement du noyau ; c’est le langage Rust. Les débats en lien avec cette mesure tournent au tour de la possibilité d’une mise au rebut du C au profit du langage Rust compte tenu des avantages qu’il introduit.

En effet, Comme l'a déclaré Wedson Almeida Filho, de l'équipe Android de Google, « Nous pensons que Rust est désormais prêt à rejoindre le C en tant que langage pratique pour l'implémentation du noyau. Il peut nous aider à réduire le nombre de bogues potentiels et de failles de sécurité dans le code privilégié tout en jouant agréablement avec le noyau central et en préservant ses caractéristiques de performance. »

Plus précisément, comme Alex Gaynor et Geoffrey Thomas l'ont expliqué lors du Linux Security Summit 2019, près des deux tiers des failles de sécurité du noyau Linux proviennent de problèmes de sécurité de la mémoire. Et d'où viennent-ils ? Des faiblesses inhérentes au langage C et C++. Rust, en revanche, esquive ces problèmes en utilisant des interfaces de programmation d'applications (API) bien plus sûres. Rust est tout simplement plus sûr que C.

Récemment, l'Agence nationale de sécurité américaine (NSA), qui est chargée de sécuriser le code et de le casser, a suggéré que l'une des meilleures choses à faire pour la sécurité d’un programme est d'utiliser Rust plutôt que C. Bien sûr, il existe d'autres langages de ce type, tels que Swift, Go ou C#, mais ils ne se prêtent pas au type de programmation de bas niveau nécessaire à un système d'exploitation.


Dans la pratique, Google, par exemple, utilise désormais largement Rust dans Android. « L'objectif n'est pas de convertir le C/C++ existant en Rust, mais plutôt de transférer le développement de nouveaux codes vers des langages à mémoire sécurisée au fil du temps », indique le géant technologique.

Résultat : « la quantité de nouveau code non sécurisé par la mémoire entrant dans Android a diminué, le nombre de vulnérabilités de sécurité de la mémoire a également diminué. De 2019 à 2022, il est passé de 76 % à 35 % du total des vulnérabilités d'Android. 2022 est la première année où les vulnérabilités de sécurité de la mémoire ne représentent pas une majorité des vulnérabilités d'Android », ajoute-t-il.

Petite précision néanmoins : pour le moment, le Rust gagne juste une API officielle pour permettre de développer des modules séparés ou pilotes pour Linux. C’est dire que l’ouverture du noyau Linux à ce langage poursuit son bout de chemin avec la conséquence que la mise au rebut du langage C n’est pas prévue pour demain. Néanmoins, c’est un changement qui tire sa source de la disponibilité et des compétences des tiers qui participent au développement du noyau.

En effet, Les principaux mainteneurs du noyau Linux sont des habitués du langage C dont l’âge commence par le chiffre 5. Certains se rapprochent même de la soixantaine. Une nouvelle génération de mainteneurs dont la tranche d’âge se situe dans la trentaine gravit les échelons et donc la difficulté de trouver des mainteneurs pour le noyau Linux risque d’aller croissant si son développement se poursuit en langage C.

Source : lkml

Et vous ?

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 ?
Voyez-vous des firmes comme Intel faire migrer des projets comme l’UEFI vers le Rust ? Doivent-elles plutôt envisager de passer au Rust pour leurs futurs projets ?

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 destroyedlolo
Membre actif https://www.developpez.com
Le 16/12/2022 à 15:10
"des mainteneurs pour le noyau Linux risque d’aller croissant si son développement se poursuit en langage C."

Ben voyons
C'est juste le langage le plus utilisé dans les OS (au sens large, démons, DE, ...) inclus, l'embarqué et une bonne partie des applications les plus utilisées.

Alors s'il est difficile de trouver de bons programmeurs C(++), le C a encore de beaux jours devant lui.
"Bon" pas dans le sens "connaisseur du C", mais bon dans le sens "qui maitrise l'algorithmie, ne font pas du code crade, respectent les ressources" : Les enseignements basés autour de langages plus permissifs tel que Python ou Java font que le code qu'ils pondent est au mieux "passable" dès que le langage ne corrige pas toutes leurs lacunes.
3  1 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 18/12/2022 à 10:36
c'est arrivé récemment, donc très peu. tout le code C ne va pas être réécrit en Rust, mais au fur et à mesure du temps ça va augmenter.
2  0 
Avatar de d_d_v
Membre éprouvé https://www.developpez.com
Le 14/12/2023 à 14:15
Citation Envoyé par 23JFK Voir le message
J'ai plutôt l'impression que les dev C n'ont pas envie de réecrire du code qui fonctionne à peu près alors que les dev Rust sont eux très motivés pour réinventer la roue en mieux.
En mieux...ou pas !
2  0 
Avatar de 23JFK
Membre expert https://www.developpez.com
Le 12/12/2022 à 19:21
J'ai plutôt l'impression que les dev C n'ont pas envie de réecrire du code qui fonctionne à peu près alors que les dev Rust sont eux très motivés pour réinventer la roue en mieux.
1  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 12/12/2022 à 22:04
Citation Envoyé par 23JFK Voir le message
J'ai plutôt l'impression que les dev C n'ont pas envie de réecrire du code qui fonctionne à peu près alors que les dev Rust sont eux très motivés pour réinventer la roue en mieux.
L'intégration RUST avec Cargo est beaucoup plus pratique que le C. Réécrire des bibliothèque permet aussi de se faire la main sur le langage.

Je ne suis pas spécialement pour une réécriture de toutes les bibliothèques mais certaines gagneraient en lisibilité, performance et/ou fiabilité.
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 18/12/2022 à 10:38
Presque rien en fait. Les noyau 6.1 (et suivants) ont juste mis a disposition une API Rust pour permettre de commencer le développement de drivers en Rust qui interagissent de manière propre avec le cœur du noyau en restera en C.
Quand des drivers écrits en Rust auront atteint un niveau de qualité suffisamment avancé pour être intégré au projet, ils pourraient le rejoindre, mais ça ne sera probablement pas le cas avant un moment.
1  0 
Avatar de fdecode
Membre régulier https://www.developpez.com
Le 13/12/2023 à 10:28
Je me permets de poster un complément important à ce vieux message que je ne peux plus éditer:
Citation Envoyé par fdecode Voir le message
Les références et références mutables de rust sont des pointeurs (des pointeurs bas-niveau, pas des pointeurs "intelligents" dont l'usage est controlé par la sémantique du langage.
Mais en Rust il est tout à fait possible de travailler sur les pointeurs de manière non-contrôlée, tout simplement en utilisant le mode unsafe { ... }.
C'est découragé, c'est vrai, mais vous pouvez même faire de l'arithmétique de pointeurs en vue d'un adressage non contrôlé de la mémoire.
Même la sacrosainte interdiction de dupliquer les références mutables peut être contournée, comme le montre l'exemple suivant:
Si cette interdiction est sacrosainte, c'est que c'est un comportement indéfini (UB), et il ne faut surtout pas utiliser ce contournement.
Dans cet exemple précis, le compilateur peut faire de l'optimisation de code en utilisant l'information de mutabilité de la référence, ce qui peut induire des résultats imprédictibles si on a transgressé les règles de mutabilité.
Ces optimisations peuvent être comparées à ce que permet le mot clef `restrict` en C.
1  0 
Avatar de frederion
Candidat au Club https://www.developpez.com
Le 18/12/2022 à 10:20
Si j'ai bien compris le nouveau noyau 6.2 est écrit en partie en Rust, mais de combien % ?

Ok j'ai trouvé ma réponse sur GitHub: 0%

Analyse GitHub:
0  0 
Avatar de N_BaH
Modérateur https://www.developpez.com
Le 15/12/2022 à 21:07
levez les yeux.
un démiurge autocrate(etc...) pose les mains sur les accoudoirs de son trône pour se lever...
0  6