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 !

Après 31 ans, un deuxième langage sera admis pour le développement du noyau Linux : c'est le Rust,
Considéré par plusieurs comme candidat idéal pour la mise au rebut du langage C

Le , par Patrick Ruiz

8PARTAGES

39  0 
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. C’est pour autant de raisons que 2022 pourrait être l’année du langage Rust au sein du noyau Linux. Rust for Linux est susceptible d’être prêt pour la version 6.1 du kernel Linux. C’est ce qui ressort d’une récente intervention de Linus Torvalds lors du dernier Open Source Summit.


Les notes de version de Linux 6.0 rc1 dressent un état des lieux des avancées en ce qui concerne le projet Rust for Linux : un groupe de travail y relatif est en place, un pilote préliminaire pour les supports de stockage NVMe développés avec ledit langage est disponible, ainsi qu’un pilote pour un serveur destiné au protocole de réseau 9P. L’équipe continue néanmoins à faire face des difficultés avec la compilation. En effet, elle se fait avec GCC pour le noyau tandis que Rust l’est encore avec LLVM. Un frontend Rust pour GCC est en cours de gestation mais l’initiative est encore au stade de l’enfance.

La prise en charge de Rust pour le développement du noyau Linux commence se poursuit et est vue comme une « une étape importante vers la capacité d'écrire les pilotes dans un langage plus sûr. » Rust de Mozilla Research est le type de langage de programmation auquel ceux qui écrivent du code pour des systèmes d’entrée/sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation, etc. portent un intérêt. D’avis d’observateurs avertis, c’est le futur de la programmation système en lieu et place du langage C. En effet, des experts sont d’avis qu’il offre de meilleures garanties de sécurisation des logiciels que le couple C/C++. Chez AWS on précise que choisir Rust pour ses projets de développement c’est ajouter l’efficacité énergétique et la performance d’exécution du C à l’atout sécurité.

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-le nous !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 17/09/2022 à 13:13
Citation Envoyé par chrtophe Voir le message
Si ces mauvais usages peuvent être "empêchés avec Rust pourquoi pas, mais pour participer au développent il faudra connaitre et le C et Rust.
Pas vraiment, le cœur du noyau reste en C, il n'est pas prévu que ça change. On pourra toujours le développer sans connaitre Rust. Le Rust gagne juste une API officielle pour permettre de faire des modules séparés (en gros les drivers).

Citation Envoyé par disedorgue Voir le message
Avons nous besoin du C pour compiler le compilateur Rust et celui-ci utilise-t-il toujours la lib C ?
Rust n'a pas besoin de la lib C en mode nostd (sans accès aux fonctionnalité de l'OS) qui est justement ce que l'on utilise quand on développe pour un noyau. Il en a juste besoin de la libc en mode standard car c'est la seule API stable pour accéder aux fonctionnalités de la grande majorité OS modernes.
Par contre le backend habituel de Rust repose sur LLVM qui est écrit en C++ pour bénéficier de ces grosses capacités d'optimisation. Il existe un backend alternatif en Rust mais il vise surtout la compilation rapide de code peu optimisé.
8  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 17/09/2022 à 6:53
Pourquoi le langage C pourrait encore avoir de longues années devant lui ?
Parce que même au cas ou plus aucun projet n'est démarré en C, on ne va recoder from scratch un projet conséquent, encore moins le noyau linux qui fait environ 28 millions de lignes.

Le C a-t-il vraiment besoin d’un remplaçant en matière de programmation système ?
difficile de répondre pour moi.

Le problème avec le C n’est-il pas plutôt le mauvais usage que certains développeurs en font ?
Si ces mauvais usages peuvent être "empêchés" avec Rust pourquoi pas, mais pour participer au développement il faudra connaitre et le C et Rust.
2  0 
Avatar de disedorgue
Expert éminent sénior https://www.developpez.com
Le 17/09/2022 à 12:44
Avons nous besoin du C pour compiler le compilateur Rust et celui-ci utilise-t-il toujours la lib C ?
1  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 23/09/2022 à 18:38
Parce que ça ne pas si très bien que ça.

Il est facile en C de créer une fuite mémoire ou un segfault en gérant mal des pointeurs par exemple. Si Rust évite cela nativement, c'est comme ça que j'ai compris le truc, ça a une utilité. Ca ne pas pas dire que le C sera ou doit être mis au rebus.
1  0 
Avatar de d_d_v
Membre confirmé https://www.developpez.com
Le 19/09/2022 à 10:59
Pourquoi ne pas faire évoluer le langage C, plutôt que d'utiliser un nouveau langage ? Il y a beaucoup de changements dans le C++, je ne vois pas pourquoi ce ne serait pas possible pour le C.
0  0 
Avatar de disedorgue
Expert éminent sénior https://www.developpez.com
Le 19/09/2022 à 11:09
Bah, à ma connaissance, ce n'est pas les développeurs Linux qui développent aussi le C ou Rust.
0  0 
Avatar de petitours
Membre expérimenté https://www.developpez.com
Le 23/09/2022 à 15:06
Pour ma part la grande question est "Pourquoi y aurait il besoin de mettre au rebus le C ?" pourquoi vouloir changer ce qui va très bien ?
0  1 
Avatar de OrthodoxWindows
Membre expérimenté https://www.developpez.com
Le 17/09/2022 à 14:38
Pourquoi le langage C pourrait encore avoir de longues années devant lui ?
Un langage est adapté pour son usage. Il ne me semble pas qe le C se soit retrouvé inadapté du jour au lendemain. Donc si le C est toujours adapté, le C est effectivement de très longues années devant lui.

Le C a-t-il vraiment besoin d’un remplaçant en matière de programmation système ?
Non. Mais peut-être d'un langage complémentaire.

Comme chrtophe, je ne connait pas assez bien le sujet pour répondre plus précisément. Mais pour suivre les discussions sur le sujet durant les dernières année, il me semble que si certains langages posent problème, c'est plutôt des langages de haut-niveau (l'inverse du C).
0  5