Opinions de Greg Kroah-Hartman et de Kasey Cook sur la promotion de Rust dans le noyau Linux

Greg Kroah-Hartman, responsable du support de la branche stable du noyau Linux, a exprimé son soutien au développement de nouveaux composants du noyau en langage Rust. En tant que personne à travers laquelle transite depuis 15 ans toute l'information sur les bogues et les vulnérabilités du noyau Linux, il affirme que la majorité des bogues dans le noyau sont causés par des particularités négligées du langage C (corner case), qui sont complètement éliminées dans le code en Rust.

Avec Rust, il sera possible de laisser derrière soi des problèmes tels que l'accès à la mémoire après sa libération, le dépassement de tampon (partiellement), la libération incorrecte des ressources lors du traitement des erreurs et les vérifications de codes d'erreur oubliées, permettant ainsi aux mainteneurs de se concentrer sur de véritables bogues comme les conditions de concurrence et les problèmes de logique, au lieu de se disperser sur des détails lors des revues.

L'ancien code déjà existant en C ne disparaîtra pas, mais pour le nouveau code et les nouveaux pilotes, l'implémentation de Rust permettra d'améliorer considérablement la qualité. L'introduction de Rust offrira également la possibilité de structurer les interfaces de programmation internes du noyau de manière à pratiquement éliminer les erreurs d'utilisation de l'API interne — le noyau a accumulé trop d'API complexes et confuses, ce qui impose une lourde charge aux mainteneurs dans leur travail de vérification que ces API sont correctement utilisées. Au cours de l'évolution des wrappers Rust, les mainteneurs auront l'occasion de repenser et d'organiser l'API, ce qui sera bénéfique pour tous, y compris pour ceux qui utilisent le langage C.

Greg ne considère pas Rust comme une « balle d'argent » qui résoudra tous les problèmes du noyau, mais ce langage aidera certainement dans un grand nombre de situations. Le support de Rust répondra également à la demande des développeurs de pilotes, qui espèrent obtenir un outil leur permettant d'écrire du code pour leur matériel, en excluant de nombreux types d'erreurs. Concernant le mélange de plusieurs langages, Greg ne voit pas cela comme un grand problème, car, selon lui, par le passé, les développeurs du noyau ont réussi à relever des défis encore plus difficiles, et il n'y a pas de raison de renoncer à l'introduction dans le noyau de nouvelles idées innovantes qui aideront à assurer le succès du projet pour les 20 années à venir.

Kees Cook, ancien administrateur système principal de kernel.org et leader de l'Ubuntu Security Team, a également rejoint la discussion. Kees a précisé qu'il ne s'agit pas de réécrire le code existant dans le noyau, mais d'offrir la possibilité d'utiliser Rust pour créer de nouveaux pilotes et sous-systèmes. L'utilisation de Rust pour le nouveau code permettra non seulement de réduire le nombre d'erreurs liées à la gestion de la mémoire, mais aussi de raccourcir le temps de développement. La vitesse de développement augmente grâce à la réduction des efforts nécessaires à la débogage et à la présence dans le langage de garanties strictes permettant d'identifier les erreurs dès les premières étapes de l'écriture du code, avant même le début des tests du produit.

L'efficacité de la tactique d'utilisation de Rust pour améliorer la qualité du nouveau code a déjà été démontrée par Google sur la plateforme Android. Il a été montré que la principale source de problèmes de sécurité provient du nouveau code, et qu'il est essentiel de se concentrer sur l'amélioration de sa qualité. Pour le code ancien, on observe une dépendance exponentielle de la sécurité par rapport au temps (par exemple, un code vieux de 5 ans a en moyenne une densité de vulnérabilités 3,4 fois inférieure à celle du nouveau code).

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