Plume assassine

Le noyau Linux contient du code Rust depuis bientôt trois ans. De petits ajouts, qui ont surtout consisté pendant un temps à permettre à du code Rust d’être ajouté, notamment dans les pilotes. Mais la progression du langage dans le noyau reste complexe.
C’est ce qu’a tenté de faire Hector Martin. Si le nom vous parle, c’est peut-être parce qu’il est le fondateur et développeur principal de la distribution Asahi Linux, spécialisée dans le support matériel des Mac équipés d’une puce Apple Silicon. Un travail qui l’a mené d’ailleurs à la faille « M1RACLES » dans les puces M1. Ou peut-être parce qu’il fut un redoutable hacker, spécialisé dans les consoles de jeu, tout particulièrement les PlayStation et la Wii.
Garde-barrières
Le développeur a toutefois un problème : il promeut activement l’usage de Rust dans le noyau Linux et le processus de révision de ce dernier est bien trop lent selon lui. Le mois dernier, il a souhaité pousser un patch qui aurait permis aux pilotes de périphériques écrits en Rust de faire appel à la fonction DMA (Direct Memory Access) du noyau. Refus catégorique de Christoph Hellwig, mainteneur principal du noyau.
Ces tensions entre promoteurs du Rust et mainteneurs habitués au C n’est pas nouvelle. Elles avaient notamment provoqué des départs dans l’équipe de Rust for Linux. Il y a quelques jours, The Register signalait la tension montante entre Hector Martin et Christoph Hellwig, le premier poussant l’équipe de Rust for Linux à ignorer les remarques du second et d’envoyer quand même leurs propositions de modifications. Tout du moins tant que Linus Torvalds n’intervenait en personne.
« Le problème vient peut-être de vous »
Et Linus Torvalds est intervenu. Répondant directement à Hector Martin qui expliquait combien ces tensions le fatiguaient, le père du noyau Linux s’est montré franc dès la première ligne : « Et si vous acceptiez le fait que le problème vient peut-être de vous ? ». Il continue : « Vous pensez que vous savez mieux [que les autres]. Mais le processus actuel fonctionne. Il a des problèmes, mais les problèmes font partie de la vie. La perfection n’existe pas ».
Dans la suite du message, il accuse Hector Martin de « brigadage » sur les réseaux sociaux et Reddit, le développeur ayant essayé d’alerter de la situation. « Parce que si nous avons des problèmes dans le modèle de développement du noyau, alors les médias sociaux ne sont certainement pas la solution. De la même manière qu’ils n’étaient pas la solution à la politique », a ajouté Linus Torvalds.
Torvalds n’est pas contre le Rust
Au sein du noyau Linux, la priorité reste le code en C. Le mélange de deux langages est considéré comme risqué. Christoph Hellwig l’a même comparé à un « cancer », ce qui faisait dire à Hector Martin que le propos violait probablement les règles de bonne conduite. L’expression rappelle également les propos que Steve Ballmer, ancien CEO de Microsoft, avait tenu au sujet de Linux lui-même.
Linus Torvalds, de son côté, n’a rien contre le Rust en tant que tel. Sa position est connue depuis septembre dernier, lors de la version européenne de l’Open Source Summit. « Certaines discussions deviennent désagréables. Je ne sais pas vraiment pourquoi Rust est un domaine si controversé. Cela me rappelle ma jeunesse. Les gens se disputaient entre vi et EMACS. Pour une raison ou pour une autre, toute la discussion sur Rust contre C a pris des accents presque religieux dans certains domaines », avait-il alors indiqué.
Il s’était montré philosophe : « Rust est très différent, et beaucoup de gens sont habitués au modèle C. Ils n’aiment pas les différences, mais ce n’est pas grave ». Il avait toutefois plaidé pour qu’on laisse sa chance au langage : « Cela ne fait que deux ans que nous travaillons avec Rust, il est donc bien trop tôt pour dire que Rust est un échec ».