Rust for Linux était l'une des sessions que nous attendions le plus à la FOSDEM 2025. Elle s'est déroulée dans le plus grand amphithéâtre de l'Université libre de Bruxelles. Le projet Rust for Linux vise à ajouter la prise en charge du langage Rust au noyau Linux.
![](https://www.programmez.com/sites/default/files/styles/taille-maxi/public/fosdem4.jpg?itok=ttxk-xrU)
En réalité, plusieurs objectifs étaient listés et sont toujours les bases du projet :
- intégration complète du langage comme 2e langage de référence du noyau
- disponibilité par défaut de Rust et non comme ajout externe
- pas limité aux modules chargeables
- pas limité aux pilotes
L’un des principaux objectifs est d’améliorer la sécurité et la gestion de la mémoire, en combinant les paradigmes unsafe et safe memory. L’adoption de Rust permettrait de réduire les risques liés à la mémoire, les bugs, les data races dans le nouveau code, et d’avoir plus de confiance dans les patchs et contributions. Cela devrait aussi aboutir à des modules et pilotes plus simples à écrire (ce qui reste à prouver), et attirer de nouveaux contributeurs au noyau grâce à un langage plus moderne et une meilleure documentation.
L'intégration de Rust est un long voyage :
- La 1ere volonté d'intégration le langage apparaît en 2018, peu après la sortie de Rust 1.26.0.
- Le premier référentiel GitHub est en ligne en 2019.
- Les premières conférences sur le sujet se font en 2020.
- Les RFC (request for comments) sont organisés en 2021
- 1er Rust MC en 2022
- rust-for-linux.com est en ligne en 2023
- 2024 : collaboration étroite avec la communauté Rust, Rust CI est disponible, 1er support minimum du langage
La collaboration avec Rust a été un élément accélérateur en 2024. Cela a permis au projet de faire un point régulier du développement et surtout Rust for Linux a été un projet stratégique pour le 2e semestre 2024 incluant le langage, les librairies, le compilateur, la ligne de commande. Les deux communautés espèrent aussi éviter des changements au langage risquant de "casser" le fonctionnement du noyau. Il est acté que bindgen soit intégré à Linux, dans la Rust CI. Le support minimal de Rust a été officialisé dans Linux 6.11 avec une prise en charge de Rust 1.78.0. Reste à voir quand et comment la version du langage évoluera dans le noyau car Rust évolue très régulièrement.
De nombreuses distributions supportent Rust : Arch Linux, Debian, Fedora, Gentoo, openSUSE, Ubuntu 20.04 / 24.10.
Outre le langage, l'autre grand chantier de Rust for linux est la compilation du langage dans GGC. Le 1er commit du rustc_codegen_gcc remonte à l'automne 2020, les premières compilations partielles sont effectives 1 an. Automne 2023 : la compilation est réellement disponible. Quelques mois plus tôt, GCC 13.1 supporte de manière expérimentale Rust. GCC 14.1 stabilise les choses.
"Nous continuons à corriger les bugs dans notre codegen et dans notre système de typage, que nous découvrons au fil du temps. Nous nous sentons très proches de compiler la bibliothèque Rust `core`, et espérons pouvoir le faire avec la sortie de GCC 15.1 ce printemps. Cela nous permettra de commencer à expérimenter Rust-for-Linux, que nous aimerions pouvoir tester au cours de l'été 2025." (Arthur Cohen, gccrs).