Prise en charge de Rust pour le noyau Linux a fait face aux critiques de Torvalds

Linus Torvalds a examiné des correctifs permettant de créer des pilotes en langage Rust pour le noyau. Linuxet a formulé quelques commentaires critiques.

Les plus grandes plaintes concernaient la possibilité potentielle de panic() dans des situations d'erreur, par exemple dans une situation de mémoire faible, lorsque les opérations d'allocation dynamique de mémoire, y compris au sein du noyau, peuvent échouer. Torvalds a déclaré qu'une telle approche dans le noyau est fondamentalement inacceptable et que, si ce point n'est pas compris, il peut complètement NAKER tout code qui tente d'utiliser une telle approche. D'un autre côté, le développeur du correctif est d'accord avec ce problème et le considère comme résoluble.

Un autre problème résidait dans les tentatives d'utilisation de types à virgule flottante ou de types 128 bits, ce qui n'est pas acceptable pour des environnements tels que le noyau. LinuxCela s'est avéré être un problème plus grave, car la bibliothèque principale de Rust est actuellement indivisible et forme un bloc monolithique ; il est impossible de demander uniquement certaines fonctionnalités, ce qui empêche l'utilisation de certaines fonctions problématiques. La résolution de ce problème pourrait nécessiter des modifications du compilateur et des bibliothèques Rust, et l'équipe n'a actuellement aucune stratégie pour implémenter la modularité dans les bibliothèques du langage.

De plus, Torvalds a noté que l'exemple de pilote fourni était inutile et nous a conseillé d'utiliser comme exemple un pilote qui résout l'un des vrais problèmes.

Mise à jour : Google a annoncé sa participation à l’initiative visant à intégrer la prise en charge de Rust au noyau. Linux Google a exposé la faisabilité technique de la mise en œuvre de Rust pour résoudre les problèmes liés aux erreurs de gestion de la mémoire. Google estime que Rust est désormais prêt à rejoindre C comme langage de développement des composants du noyau. LinuxL'article fournit également des exemples d'utilisation du langage Rust pour le développement de pilotes de noyau, dans le contexte de leur utilisation sur la plateforme. Android (Rust est reconnu comme un langage de développement officiellement pris en charge) Android).

Il est à noter que Google a préparé un premier prototype d'un pilote écrit en Rust pour le mécanisme de communication interprocessus Binder, qui permettra une comparaison détaillée des performances et de la sécurité des implémentations de Binder en C et Rust. Dans sa forme actuelle, le travail n'est pas encore terminé, mais pour presque toutes les abstractions de base des fonctionnalités du noyau nécessaires au fonctionnement de Binder, des couches ont été préparées pour utiliser ces abstractions dans le code Rust.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster