10 points par xguru 2021-04-16 | 3 commentaires | Partager sur WhatsApp
  • 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

 
octopuset 2021-04-17

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

 
xguru 2021-04-16

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.

 
ffdd270 2021-04-18

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.