Josh Triplett, qui travaille chez Intel et fait partie du comité supervisant le développement de Crates.io, s'exprimant lors de l'Open Source Technology Summit
Dans un groupe de travail en cours de création, les développeurs de Rust, en collaboration avec les ingénieurs d'Intel, prépareront des spécifications définissant les fonctionnalités à implémenter dans Rust pour la programmation système. La programmation système nécessite souvent des manipulations de bas niveau, telles que l'exécution d'instructions privilégiées du processeur et l'obtention d'informations détaillées sur l'état du processeur. Parmi les fonctionnalités similaires déjà développées pour Rust, on note la prise en charge des structures sans nom, des unions, des insertions en langage assembleur (la macro « asm ! ») et du format de nombres à virgule flottante BFLOAT16.
Josh estime que l'avenir de la programmation système appartient à Rust et que le langage C dans les réalités modernes revendique la place qu'occupait Assembly au cours des années passées. Rouiller
non seulement soulage les développeurs des problèmes inhérents au langage C qui surviennent en raison du travail de bas niveau avec la mémoire, mais offre également la possibilité de l'utiliser dans le développement de paradigmes de programmation modernes.
En cours
Josh a eu l'idée d'ajouter la possibilité de développer des pilotes dans le noyau Linux dans le langage Rust, ce qui permettrait de créer des pilotes plus sûrs et de meilleure qualité avec un minimum d'effort, sans problèmes tels que l'accès à la mémoire après la libération, null déréférencements de pointeurs et dépassements de tampon.
Greg Kroah-Hartman, responsable de la maintenance de la branche stable du noyau Linux, s'est dit prêt à ajouter au noyau un cadre de développement de pilotes en langage Rust s'il présente de réels avantages par rapport au C, par exemple, il fournira une sécurité liaisons sur l'API du noyau. De plus, Greg considère ce framework uniquement comme une option, non active par défaut, afin de ne pas inclure Rust comme dépendance de build sur le noyau.
Il s’est avéré que plusieurs équipes travaillent déjà dans ce sens. Par exemple, les développeurs de la société « Fish in a Barrel »
Parallèle
Toutes les fonctionnalités prévues n'ont pas encore été implémentées, mais le framework est déjà tout à fait adapté au travail et a été utilisé pour écrire un pilote fonctionnel pour le contrôleur Ethernet USB LAN9512 fourni dans la carte Raspberry Pi 3. Le pilote smsc95xx existant, écrit par Langage C. Il est à noter que la taille du module et la surcharge des composants d'exécution lors du développement d'un pilote dans Rust sont insignifiantes, ce qui permet d'utiliser le framework pour des appareils aux ressources limitées.
Source: opennet.ru