-
Résume les raisons d’utiliser Rust comme deuxième langage du noyau
-
L’objectif n’est pas de réécrire le cœur ou les principaux sous-systèmes du noyau, mais de permettre d’écrire en Rust les pilotes et autres modules « leaf » similaires
Utiliser Rust dans le noyau Linux permet de
-
réduire les risques de bugs de sûreté mémoire, de courses de données et de bugs logiques grâce aux propriétés du langage
-
donner davantage confiance aux mainteneurs pour refactoriser des modules et appliquer des patchs grâce à la sûreté de Rust
-
écrire plus facilement de nouveaux pilotes et modules grâce à des fonctionnalités modernes du langage et à une documentation détaillée
-
permettre à davantage de personnes de participer globalement au développement du noyau en utilisant un langage moderne
"Why Rust?"
- Dans le contexte du noyau Linux, Rust offre plusieurs avantages majeurs par rapport au C
→ (avantages du langage omis..)
"Why not?"
- Dans le contexte du noyau Linux, voici les inconvénients par rapport au C
→ beaucoup d’efforts ont été investis dans l’outillage basé sur le C, y compris les compiler plugins, Sanitizer, etc. Cela devrait s’améliorer avec le temps à mesure que l’usage de Rust augmentera
→ une seule implémentation basée sur LLVM. Des efforts sont en cours autour d’un frontend GCC, du backend ructc basé sur Cranelift, et de mrustc pour réduire la chaîne de bootstrapping
→ pas encore standardisé. Il n’est d’ailleurs pas certain que la standardisation soit vraiment utile au noyau, mais..
→ vitesse de compilation lente en raison des fonctionnalités complexes et des limitations actuelles du compilateur
→ pour l’instant, des fonctionnalités présentes dans les builds Nightly sont nécessaires. Il n’est pas possible d’utiliser une version stable. L’objectif est de supprimer cette contrainte dans l’année à venir
→ les bibliothèques standard Rust core et alloc sont actuellement plus volumineuses que nécessaire, car toutes leurs fonctionnalités ne sont pas utilisées
-
La plupart de ces inconvénients viennent du fait que Rust est encore un langage jeune et moins largement utilisé
-
Ils pensent que Rust deviendra une composante importante de la programmation système, comme le C l’a été au cours des dernières décennies
3 commentaires
https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
et si l’on lit le passage qui suit HOWEVER,
on a l’impression que son ajout effectif pourrait en réalité prendre pas mal de temps
Linus Torvalds a répondu à cette RFC : https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
Comme il dit que, dans l’ensemble, ça ne lui déplaît pas, on peut espérer que cela avance dans la bonne direction.
En cherchant, j’ai vu qu’il y avait vraiment eu beaucoup d’actualités liées à Rust sur GeekNews. À ce stade, on peut vraiment dire que c’est la grande tendance du moment.
https://news.hada.io/search?q=Rust
Rust, le langage de programmation [édition coréenne] https://fr.news.hada.io/topic?id=1152
Rust - un langage pour obtenir hautes performances et fiabilité : « Vous êtes à plaindre si vous ne connaissez pas la classe de Rust » https://fr.news.hada.io/topic?id=991
Je me dis qu’après avoir cohabité progressivement avec le C, il ne finira peut-être pas par le remplacer un jour... J’ai même l’impression que devenir indépendant de Mozilla a plutôt été un meilleur choix.