Le support de Rust pour le noyau Linux a été critiqué par Torvalds

Linus Torvalds a examiné les correctifs pour la mise en œuvre de la possibilité de créer des pilotes en Rust pour le noyau Linux et a exprimé certaines critiques.

Les principales préoccupations portaient sur la possibilité potentielle de provoquer un panic() dans des situations d'erreur, par exemple lors d'un manque de mémoire, lorsque les opérations de mémoire dynamique, y compris à l'intérieur du noyau, peuvent échouer. Torvalds a déclaré qu'une telle approche dans le noyau est fondamentalement inacceptable et qu'en cas de malentendu sur ce point, il peut complètement rejeter (totally NAKed) tout code qui tentera d'utiliser une telle approche. D'autre part, le développeur des correctifs a reconnu ce problème et estime qu'il est résolvable.

Un autre problème est survenu avec les tentatives d'utilisation de calculs à virgule flottante ou de types de 128 bits, ce qui n'est pas acceptable dans des environnements tels que le noyau Linux. Cela s'est révélé être un problème plus sérieux, car la bibliothèque de base (core) de Rust est indivisible et se présente sous la forme d'un gros blob - il n'y a pas de moyen de demander uniquement certaines des fonctionnalités, empêchant ainsi l'utilisation d'une fonctionnalité problématique. La résolution de ce problème pourrait nécessiter des modifications dans le compilateur Rust et la bibliothèque, sachant qu'à l'heure actuelle, l'équipe n'a pas encore de stratégie pour réaliser la modularité des bibliothèques du langage.

De plus, Torvalds a noté que l'exemple de pilote fourni est inutile et a conseillé d'inclure comme exemple un pilote résolvant l'une des tâches réelles.

Complément : L'entreprise Google a annoncé sa participation à l'initiative visant à promouvoir la prise en charge de Rust dans le noyau Linux et a exposé les aspects techniques de la pertinence de l'intégration de Rust pour lutter contre les problèmes causés par des erreurs de gestion de la mémoire. Google estime que Rust est déjà prêt à rejoindre le C en tant que langage pour le développement de composants du noyau Linux. L'article présente également des exemples d'utilisation de Rust pour le développement de pilotes de noyau, dans le contexte de son utilisation sur la plateforme Android (Rust est reconnu comme un langage officiellement pris en charge pour le développement Android).

Il est noté que Google a préparé un prototype initial d'un pilote écrit en Rust pour le mécanisme de communication inter-processus Binder, ce qui permettra une comparaison détaillée des performances et de la sécurité des implémentations de Binder en C et en Rust. Dans son état actuel, le travail n'est pas encore achevé, mais des couches ont déjà été préparées pour presque toutes les abstractions de base des fonctionnalités du noyau nécessaires au fonctionnement de Binder, permettant d'utiliser ces abstractions dans du code Rust.

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