En évoquant les langages de programmation, Mark Russinovich avait déclaré en septembre dernier qu'il faut cesser de lancer de nouveaux projets en C et C++, et avoir recours Rust dans les cas où un langage ne disposant pas d'un ramasse-miettes est nécessaire.
Le ramasse-miettes (ou garbage collector) assure la gestion automatique de la mémoire et permet une libération de la mémoire qui n'est plus utilisée. C et C++ sont des langages sans ramasse-miettes, au même titre que Rust. Java et Python sont par contre des langages avec ramasse-miettes.
Mark Russinovich est le directeur technique de Microsoft Azure. Il a également un passif comme expert du noyau - ou kernel - Windows. Sa déclaration prend une autre envergure désormais, sachant que Microsoft a officialisé Rust dans le noyau Windows.
Le noyau Windows avec Rust
Repérée par The Register, l'annonce a été faite dans le cadre de la conférence BlueHat IL 2023 de Tel Aviv sur la cybersécurité. " Le démarrage de Windows avec Rust dans le noyau se fera probablement dans les semaines ou les mois à venir, ce qui est vraiment génial. "
Vice-président Enterpise et OS Security chez Microsoft, David Weston souligne que le noyau Windows est " l'un des produits d'ingénierie les plus complexes de la planète. " L'objectif est d'améliorer la sécurité et Rust (conçu par Mozilla Research) se prête à un tel objectif, notamment pour la sécurité en lien avec la gestion de la mémoire. Les bugs de sécurité de la mémoire en C et C++ sont souvent pointés du doigt.
Quelque 36 000 lignes de code sont dorénavant dans le noyau Windows et en rapport avec Win32 GDI (interface de périphérique graphique). Un appel système en Rust est également dans le kernel. " Windows (dernière build) démarre avec la version Rust, passe tous les tests GDI, mais le portage Rust est actuellement désactivé derrière un drapeau de fonctionnalité. "
Pas l'ensemble du noyau en Rust
David Weston tempère : " La réécriture de Windows en Rust n'est probablement pas près d'arriver. " À noter que c'est depuis Linux 6.1 fin 2022 que le support pour Rust a été officiellement ajouté pour le développement de ce noyau.