Ubuntu amène Rust au cœur de Linux avec ses coreutils

Ubuntu a terminé ce qu'il avait annoncé il y a dix-sept mois. La version 26.10, en développement en septembre 2026, achève la migration des utilitaires GNU vers leur réimplémentation dans Rust, donc chacun ls soit cat Ce que vous écrivez exécute désormais un binaire Rust au lieu de C, comme annoncé par OMG Ubuntu le 13 septembre.

La nouvelle est la clôture d'un cycle qui a commencé en avril 2025, lorsque l'équipe des Fondations a proposé dans Ubuntu Discourse de migrer vers rust-coreutils dans le cycle 25.10, avec un retour possible en cas de problème. Un an plus tard, en avril 2026, l'équipe a signalé que la promotion du package sur Ubuntu Main nécessitait un examen approfondi de la sécurité et que plusieurs commandes sensibles avaient été retenues jusqu'à ce qu'elles soient adoptées.

Parmi les personnes arrêtées figuraient cp et mv copier et déplacer, ainsi que rm à supprimer. Ils touchent vraiment vos fichiers et toute régression fait mal. La version 26.04 LTS est arrivée en avril 2026 avec uutils 0.8.0 comme espace utilisateur par défaut dans environ quatre-vingts utilitaires. Les trois conflits se sont poursuivis en C en attendant le feu vert. Avec le 26.10, cette approbation est déjà arrivée et la transition est terminée.

Le calendrier, vu dans la perspective de septembre 2026, montre une migration du livre. Proposé au printemps 2025, déploiement partiel dans le LTS en 2026 et fermeture totale à l'automne. Dix-sept mois de travail pour changer des outils que presque personne ne regarde mais que tout le monde utilise.

Que sont les coreutils ?

Les coreutils GNU sont la boîte à outils de base de tout Linux. Les répertorier, copier, déplacer, ordonner, compter et concaténer les parcourent, et ils sont écrits en C depuis des décennies dans le cadre du projet GNU. Les coreutils uutils sont sa réimplémentation dans Rust, multiplateforme et open source, qui recherche la compatibilité avec les originaux sans hériter de leurs risques de mémoire.

Rust fournit ce que C ne peut pas promettre. Son système de propriété et d'emprunt évite des familles entières d'erreurs au moment de la compilation, comme les accès hors limites ou les courses de données, qui en C n'apparaissent qu'au moment de l'exécution du programme, parfois des années plus tard et entre les mains d'un attaquant. Ce n'est pas que le code Rust soit parfait. Il transforme ce qui serait des vulnérabilités du C en erreurs de compilation.

La version 0.9.0 d'uutils, de mai 2026, a été marquée par un audit de sécurité externe qui a renforcé l'accès à TOCTOU. Cet acronyme désigne une course classique entre la vérification d'un fichier et son utilisation, car un attaquant peut le modifier dans l'intervalle entre les deux opérations. Le fait que le projet donne exactement la priorité à ce flanc en dit long sur sa maturité. On ne discute plus de compatibilité des options, on discute de sécurité de carrière.

Trois signes indépendants confirment que uutils a cessé d'être une expérience et est devenu une infrastructure qu'une distribution sérieuse peut distribuer par défaut à des millions de machines sans s'excuser plus tard sous forme de correctifs urgents.

  • Audit de sécurité externe avec renforcement TOCTOU en version 0.9.0.
  • Examen d'entrée sur Ubuntu Main avec ses exigences d'empaquetage et de maintenance.
  • Trois versions enchaînant la migration sans que le plan ne soit revenu sur aucune d'entre elles.

Pourquoi Canonical s’implique-t-il dans un tel travail ?

La réponse courte est que la mémoire non sécurisée coûte cher. Microsoft estime qu'environ 70 % de ses CVE annuels proviennent de failles de mémoire en C et C++, et Google et Chromium publient des chiffres jumeaux dans leurs propres rapports. Pour une distribution qui vise à être installée sur des serveurs, des cloud et des ordinateurs de bureau dans le monde entier, réduire cette empreinte grâce à un langage sécurisé en mémoire est un investissement défensif. La discussion AskUbuntu de mars 2026 le résume sans détour. La raison est la sécurité, le reste sont des effets secondaires.

Il existe également une raison stratégique moins visible. Celui qui contrôle la base du système contrôle son taux d'évolution, et la dépendance éternelle à l'égard de GNU limite les évolutions de Canonical en termes de performances et de portabilité. Rust attire également une nouvelle génération de contributeurs qui n’apprennent plus le C comme langue maternelle. Adopter uutils, c'est aussi parier sur qui maintiendra Ubuntu dans dix ans.

Comme LWN l’a raconté en mars 2025, ce plan n’a jamais été un acte de foi. Chaque paquet distribué par Ubuntu par défaut doit être déplacé vers Main et passer un examen de sécurité approfondi, et la migration a laissé la porte ouverte à la restauration. Ce filet de sécurité explicite est rare dans des migrations de cette ampleur. Lorsque vous appuyez sur les commandes de suppression, il vaut mieux être en retard que de rompre tôt.

Qu'est-ce qui change pour vous dans la pratique ?

Au quotidien, presque rien n’est visible, et c’est la meilleure des nouvelles. Les options et les formats de sortie restent compatibles, vos scripts continuent de fonctionner et les performances sont équivalentes ou meilleures dans la plupart des utilitaires. Si vous gérez des serveurs ou auditez des réseaux avec des outils de cybersécurité sous Linux, vos pipelines sort, uniq, cut et wc Ils se comportent de la même manière.

Là où vous pouvez remarquer quelque chose, c'est dans les messages d'erreur et les cas limites obscurs. Certains scripts plus anciens qui dépendaient d'un comportement non défini de la version GNU pouvaient se plaindre, et certains indicateurs exotiques mettaient du temps à atteindre uutils. La recommandation pratique s’inscrit dans trois contrôles.

  • Exécutez vos scripts critiques le 26.04 avant de passer à la version 26.10 et comparez les sorties.
  • Vérifiez les messages d'erreur si vous analysez la sortie de cp soit mv en automatisation.
  • Conservez le package GNU à portée de main au cas où vous auriez besoin de restaurer une machine spécifique.

Si quelque chose échoue, le retour en arrière existe et est documenté à partir de la proposition originale. Vous pouvez réinstaller les coreutils GNU et les empêcher de se mettre à jour, au prix de rester en dehors du chemin principal d'Ubuntu. Pour un serveur en production soumis à des audits stricts, cette prudence temporelle est logique. Pour le reste, suivre le courant est raisonnable.

Le mouvement s’inscrit également dans une tendance qui va au-delà d’Ubuntu. Le noyau Linux, qui a fêté ses 35 ans en 2026, accepte de plus en plus Rust dans ses sous-systèmes, le CERN a migré des milliers d'ordinateurs vers Debian à la recherche de bases solides et même la compilation du noyau est déjà accélérée grâce à l'IA. Le cœur du système d’exploitation est réécrit dans des langages sécurisés, pièce par pièce.

Comment puis-je vérifier quels coreutils j’exécute ?

Il n'est pas nécessaire de se fier au calendrier de sortie. Chaque utilitaire indique son origine dans la première ligne de sa version, donc deux commandes suffisent pour savoir si votre machine parle déjà Rust ou utilise toujours le C classique.

ls --version | head -1
cp --version | head -1

Si la réponse mentionne uutils, vous exécutez Rust. S'il mentionne GNU coreutils, vous êtes toujours sur C. Dans Ubuntu 26.04, vous verrez le premier dans presque tout sauf cp, mv et rmqui attendent à 26h10 avec le reste de la migration déjà fermé. Dans la LTS précédente, vous verrez GNU partout, car le changement a commencé avec ce cycle.

Pour savoir de quel paquet provient chaque binaire, demandez au gestionnaire avec dpkg -S $(which ls)qui répond rust-coreutils soit coreutils selon les cas. Sur les conteneurs, WSL et VPS avec un minimum d'images, la réponse peut varier d'un ordinateur de bureau, car chaque image fige sa propre base de données. Vérifiez chaque environnement séparément avant de supposer quoi que ce soit et enregistrez le résultat dans vos notes d'administration, car dans un an, personne ne se souviendra de l'exécution de chaque machine.

Que se passe-t-il si j'utilise une autre distribution ou un autre programme en C ?

Si vous utilisez une autre distribution autre qu'Ubuntu, pour l'instant rien ne change, même si le précédent pèse. Quand la distribution la plus populaire montre que la migration est viable, les autres l’étudient avec des yeux différents. Les mainteneurs d'uutils travaillent précisément pour que n'importe quelle distribution puisse franchir le pas, et l'audit de 2026 leur a donné des arguments.

Pour ceux qui programment en C, le message n’est pas d’abandonner votre langage. Le fait est que les infrastructures critiques migrent là où elles le peuvent vers les garanties de compilation, et que le nouveau C coexiste avec une révision et des désinfectants de plus en plus stricts. Apprendre à lire Rust, même si vous ne l'écrivez pas, commence à être aussi utile que lire un strace. Les notebooks Jupyter avec Python sur Ubuntu et Fedora continueront à fonctionner de la même manière, car rien ne dépasse les coreutils.

Le système d'exploitation est réécrit sans que vous vous en rendiez compte

La meilleure migration est celle qui ne se remarque pas, et Ubuntu l'a exécutée avec la patience d'un chirurgien. Dix-sept mois, deux releases et un audit plus tard, le cœur de votre terminal bat à Rust. Lorsque dans quelques années quelqu'un demandera quand Linux sera devenu sécurisé en mémoire, la réponse commencera ici, à l'automne 2026, lorsque ls Il a cessé d'être C sans que personne n'ait à modifier un seul script.

Il reste à voir si Debian et Fedora emboîtent le pas, mais la question n'est plus de savoir si Rust peut gérer le système de base. C'est qui sera le prochain à l'admettre dans ses notes de version.

Voir l’article original en espagnol

Audible
🎧 Découvrez le plaisir de l’écoute avec Audible d’Amazon ! Cliquez maintenant et obtenez votre premier livre audio GRATUIT. Ne manquez pas cette chance de transformer vos trajets en aventures épiques ! 📚