Rust arrive dans le noyau Linux et ce que pense Linus Torvalds de C++
lun, 19/04/2021 - 11:51
La semaine dernière, nous vous rapportions la décision de Google d'adopter Rust pour améliorer la sécurité du noyau d'Android. Comme chacun sait, Android est construit à partir de Linux. Alors qu'en est-il de Rust dans le noyau Linux ?
L'idée d'utiliser Rust pour coder des parties du noyau Linux a été lancée en septembre 2020. Une proposition pour laquelle Linus Torvalds et d'autres mainteneurs principaux du noyau ont exprimé leur ouverture de principe.
La semaine dernière, Google a annoncé avoir rejoint l'organisation Rust pour Linux. Le billet d'annonce de Google, très intéressant, compare un exemple de pilote écrit en C et en Rust.
A la suite de l'annonce de Google, Linus Torvalds a donné une interview à ITWire au cours de laquelle il s'est exprimé sur l'arrivée de Rust dans le noyau Linux.
Pour l'instant les choses ne sont pas prêtes, a-t-il expliqué, mais elles avancent. Pour Linus Torvalds, le support de Rust pourrait arriver avec la branche Linux 5.14. Comme la 5.12 vient de sortie en Release Candidate et qu'il faut 8 autres versions hebdomadaires plus une période de 15 jours pour que sorte la version 5.12 finale, on peut estimer à 3 bons mois le temps qu'il faudra pour que Rust commence à apparaître dans le noyau.
Le noyau Linux est écrit en C, avec des petits de bouts de C++. Historiquement C est le langage de choix pour l'écriture des noyaux des systèmes d'exploitation, et il est aussi, jusqu'ici, le langage de choix de Linus Torvalds pour le noyau Linux. L'arrivée de Rust dans le noyau Linux et son approbation par Linus Torvalds est une sorte d'événement et témoigne de la qualité du langage.
Les langages alternatifs ne sont généralement pas les bienvenus aux yeux de Linus et il l'exprime dans le langage fleuri qui est souvent le sien. Au cours de l'interview mentionnée plus haut, un commentateur a suggéré d'utiliser C++ au lieu de Rust pour le noyau Linux.
Linus a gloussé, puis répondu :
LOL. C ++ ne résout _aucun_ des problèmes C, et ne fait qu'empirer les choses. C'est vraiment un langage de merde. Pour les personnes qui n'aiment pas le C, utilisez un langage qui vous offre réellement quelque chose qui en vaut la peine. Comme les langages avec sécurité de mémoire et qui peuvent éviter certains des dangers du C, ou les langages qui ont un support interne GC [garbage collection ou ramasse-miettes] et simplifient la gestion de la mémoire.
C ++ résout tous les mauvais problèmes, et quiconque dit 'réécrire le noyau en C ++' est trop ignorant pour savoir ça.
Linux a ensuite précisé sa pensée au sujet de C : quand on parle des dangers du C, on parle aussi d'une partie de ce qui rend le C si puissant et vous permet de mettre en œuvre efficacement toutes ces choses de bas niveau.
Puis il a précisé sa pensée en ce qui concerne les ramasse-miettes : Bien que je pense que GC [garbage collection - ramasse-miettes] est une chose merveilleuse pour la simplicité de programmation, ce n'est généralement pas nécessairement quelque chose que vous pouvez faire dans une programmation système de bas niveau. Donc je ne dis pas qu'un 'GC intégré' est bon pour le système d'exploitation noyaux, mais c'est une très bonne chose dans la plupart des autres situations.