Le noyau Linux n’est pas un endroit où travailler si vous n’êtes pas prêt à des débats, disons, animés. Toutefois, un développeur clé du projet visant à étendre la place de Rust au sein de ce noyau principalement basé sur C estime que le “non-sens non technique” est devenu trop envahissant, au point de décider de se retirer.
Wedson Almeida Filho, un leader du projet Rust pour Linux, a écrit à la liste de diffusion du noyau Linux la semaine dernière pour se retirer en tant que mainteneur du projet. “Après presque 4 ans, je manque de l’énergie et de l’enthousiasme que j’avais pour répondre à certains de ces non-sens non techniques. Il vaut donc mieux laisser cela à ceux qui ont encore cette motivation,” a écrit Filho. En remerciant ses coéquipiers, il a noté qu’il croyait que l’avenir des noyaux réside dans les langages sûrs pour la mémoire, comme Rust. “Je ne suis pas un visionnaire, mais si Linux ne s’approprie pas cela, j’ai peur qu’un autre noyau fasse à Linux ce qu’il a fait à Unix,” a-t-il ajouté.
Filho a également laissé une “exemple pour le contexte,” en partageant un lien vers un moment lors d’une conférence Linux où une voix hors champ, identifiée par Filho dans une interview avec un média, s’interrompt avec emphase : “Voilà le problème : vous ne pouvez pas nous forcer tous à apprendre Rust.” Dans le contexte de la demande de Filho que le système de fichiers de Linux mette en œuvre des liaisons Rust, cette voix affirme qu’il sait qu’il doit corriger tout le code C pour tout changement qu’il souhaite apporter, mais qu’il ne peut ou ne veut pas corriger les liaisons Rust qui pourraient être affectées.
“Ils veulent juste garder leur code C”
Asahi Lina, développeuse sur le projet Asahi Linux, a posté sur Mastodon la semaine dernière : “Je comprends parfaitement les frustrations de Wedson.” Elle a noté qu’un “sous-ensemble de développeurs C du noyau semble déterminé à rendre la vie des mainteneurs de Rust aussi difficile que possible,” et a détaillé les problèmes de sécurité de la mémoire qu’ils ont rencontrés en écrivant des abstractions du planificateur Direct Rendering Manager (DRM). Lina a essayé de pousser de petites corrections qui rendraient le code C “plus robuste et les exigences de durée de vie sensées”, mais a été bloquée par le mainteneur. Les bogues dans ce code C du planificateur DRM sont la seule cause des pannes du noyau dans le pilote GPU d’Apple de Lina, a-t-elle écrit — “Parce que je l’ai écrit en Rust.”
“Mais j’ai l’impression que certains mainteneurs du noyau Linux ne se soucient plus de la qualité du code futur, ni de la stabilité ou de la sécurité,” a écrit Lina. “Ils veulent juste garder leur code C et souhaiteraient que nous, les gens de Rust, disparaissions. Et c’est vraiment triste… et cela n’aide pas à améliorer Linux.”
Drew DeVault, fondateur de SourceHut, a écrit sur les tentatives de Rust de trouver sa place dans le noyau. En théorie, le noyau devrait accueillir les contributions enthousiastes des nouveaux venus motivés. “Dans la pratique, la communauté Linux est le Far West, et obtenir un consensus sur des changements radicaux est infâme. C’est de loin le changement le plus vaste jamais proposé au projet,” explique DeVault. “Chaque sous-système est un fief privé, soumis à l’humeur de chacun des plus de 1 700 mainteneurs de Linux, presque tous ayant un intérêt dans ce domaine. C’est comme rassembler des chats : introduire Rust efficacement est une partie codage et quatre-vingt-dix-neuf parties travail politique – et il y a beaucoup de travail de codage.”
Plutôt que de tester leur patience avec la politique du noyau, DeVault suggère aux développeurs Rust de construire un noyau compatible Linux à partir de zéro. “Se libérer des batailles politiques [de la liste de diffusion du noyau Linux] serait probablement un grand avantage pour les ambitions d’intégrer Rust dans l’espace du noyau,” écrit DeVault.
Torvalds comprend pourquoi l’adoption de Rust est lente
Vous vous demandez peut-être ce que pense le mainteneur principal Linus Torvalds de tout cela. Il a adopté une approche d'”attente et de surveillance” en 2021, espérant que Rust se ferait d’abord connaître dans des pilotes de périphériques relativement isolés. Lors d’une apparition à la fin du mois dernier, Torvalds a… essentiellement acquiescé aux plaintes des développeurs favorables à Rust, bien que d’un point de vue plus éloigné.
“Je m’attendais à ce que les mises à jour [de Rust] aillent plus vite, mais une partie du problème est que les anciens développeurs du noyau sont habitués au C et ne connaissent pas Rust,” a déclaré Torvalds. “Ils ne sont pas vraiment enthousiastes à l’idée d’apprendre un nouveau langage qui est, à certains égards, très différent. Il y a donc eu quelques résistances à Rust.” Cependant, Torvalds a ajouté qu'”une autre raison a été que l’infrastructure Rust elle-même n’a pas été super stable.”
Le noyau Linux est un projet à enjeux élevés dans lequel des centaines ou des milliers de développeurs ont un intérêt ; les conflits sont peut-être inévitables. Le temps nous dira combien de temps le C restera la principale façon de coder et de penser pour une base de code aussi vaste, mais toujours en mouvement.
En tant que journaliste pour LesNews, je trouve cette situation fascinante. C’est un enjeu crucial pour l’avenir de Linux et de nombreux développeurs doivent être concernés par l’évolution du langage et des pratiques à l’intérieur de ce vaste écosystème. J’espère que des solutions constructives pourront rapidement émerger pour faciliter l’intégration de Rust et améliorer encore davantage la qualité du code.