WD développe un pilote NVMe en langage Rust. Expérimentations avec Rust sous FreeBSD.

Lors de la conférence Linux Plumbers 2022 qui se déroule en ce moment, un ingénieur de l'entreprise Western Digital a présenté un exposé sur le développement d'un pilote expérimental pour les disques SSD utilisant l'interface NVM-Express (NVMe), écrit en Rust et fonctionnant au niveau du noyau Linux. Bien que le projet soit encore à un stade précoce de développement, les tests effectués ont montré que la performance du pilote NVMe en Rust correspond à celle du pilote NVMe existant dans le noyau, écrit en C.

WD développe un pilote NVMe en langage Rust. Expérimentations avec Rust sous FreeBSD.
WD développe un pilote NVMe en langage Rust. Expérimentations avec Rust sous FreeBSD.

Dans l'exposé, il est indiqué que le pilote NVMe actuel en C satisfait pleinement les développeurs, mais que la sous-systÚme NVMe est un bon terrain d'essai pour étudier la faisabilité du développement de pilotes en Rust, car il est assez simple, largement utilisé, exige des performances élevées, dispose d'une implémentation de référence éprouvée pour la comparaison et prend en charge diverses interfaces (dev, pci, dma, blk-mq, gendisk, sysfs).

Il est notĂ© que le pilote PCI NVMe en Rust fournit dĂ©jĂ  la fonctionnalitĂ© nĂ©cessaire au fonctionnement, mais n'est pas encore prĂȘt pour une utilisation gĂ©nĂ©ralisĂ©e car il nĂ©cessite des amĂ©liorations. Parmi les projets futurs, il est prĂ©vu d'Ă©liminer les blocs unsafe du code, de prendre en charge les opĂ©rations de suppression de pĂ©riphĂ©rique et de dĂ©chargement du pilote, de soutenir l'interface sysfs, de mettre en Ɠuvre une initialisation diffĂ©rĂ©e, de crĂ©er un pilote pour blk-mq et d'expĂ©rimenter l'utilisation d'un modĂšle de programmation asynchrone pour queue_rq.

Lire la vidéo

De plus, on peut noter les expĂ©riences menĂ©es par la sociĂ©tĂ© NCC Group concernant le dĂ©veloppement de pilotes en Rust pour le noyau FreeBSD. À titre d'exemple, un simple pilote echo est examinĂ© en dĂ©tail, retournant les donnĂ©es Ă©crites dans le fichier /dev/rustmodule. Lors de la prochaine Ă©tape des expĂ©riences, NCC Group envisage de retravailler en Rust les composants de base du noyau pour amĂ©liorer la sĂ©curitĂ© des opĂ©rations rĂ©seau et de fichiers.

Cependant, bien que la possibilitĂ© de crĂ©er des modules simples en Rust ait Ă©tĂ© dĂ©montrĂ©e, une intĂ©gration plus profonde de Rust dans le noyau FreeBSD nĂ©cessitera un travail supplĂ©mentaire. Par exemple, il est mentionnĂ© qu'il est nĂ©cessaire de crĂ©er un ensemble de couches d'abstraction au-dessus des sous-systĂšmes et des structures du noyau, similaires aux extensions prĂ©parĂ©es par le projet Rust for Linux. À l'avenir, des expĂ©riences similaires sont prĂ©vues avec le noyau Illumos et des abstractions communes en Rust seront mises en Ă©vidence, pouvant ĂȘtre utilisĂ©es dans les pilotes Ă©crits en Rust pour Linux, BSD et Illumos.

Selon des données fournies par Microsoft et Google, environ 70 % des vulnérabilités dans leurs produits logiciels sont causées par une gestion de la mémoire non sécurisée. On suppose que l'utilisation du langage Rust permettra de réduire le risque d'apparition de vulnérabilités dues à une gestion de la mémoire non sécurisée, et d'éliminer des erreurs telles que l'accÚs à une zone mémoire aprÚs libération et le dépassement de tampon.

La sécurité de la mémoire est assurée dans Rust au moment de la compilation par la vérification des références, le suivi de la propriété des objets et la prise en compte de la durée de vie des objets (portée), ainsi que par l'évaluation de l'accÚs à la mémoire lors de l'exécution du code. Rust fournit également des moyens de protection contre les débordements d'entiers, exige l'initialisation obligatoire des variables avant leur utilisation, gÚre mieux les erreurs dans la bibliothÚque standard, applique le concept de références et de variables immuables par défaut, et propose une forte typage statique pour minimiser les erreurs logiques.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster