Le projet Coreutils de Microsoft apporte les commandes Linux sous Windows

Le projet Coreutils de Microsoft apporte les commandes Linux sous Windows

Lors de sa conférence Build 2026, Microsoft a annoncé la sortie de Coreutils pour Windows. Cet outil intègre de nombreux utilitaires de ligne de commande courants de Linux sur le système Windows en tant qu’applications natives.

Ce projet repose sur le projet open source uutils. Il s’agit d’une réécriture multiplateforme des utilitaires de base de GNU, programmée en Rust. L’objectif est de faciliter la transition des développeurs entre Linux, macOS, Windows et le Windows Subsystem for Linux (WSL), sans qu’ils aient à modifier leurs méthodes de travail.

Microsoft a expliqué que les développeurs passent souvent d’un environnement à un autre, mais que les commandes familières ne fonctionnent pas de manière uniforme. Cela les force à trouver des solutions de contournement, ce qui entraîne une perte de vitesse et des changements de contexte. Pour résoudre ce problème, l’entreprise a construit Coreutils pour Windows à partir du projet open source uutils.

L’ambition affichée est que les commandes et outils existants fonctionnent sur toutes les plateformes. Ainsi, les scripts écrits pour Linux pourront être utilisés sur Windows sans modification ni outils supplémentaires.

Le projet Coreutils pour Windows est également publié sur GitHub sous la forme d’un package géré par Microsoft. Il combine uutils/coreutils, findutils et une implémentation de grep compatible GNU dans un seul fichier binaire.

Des utilitaires Linux exécutés nativement sur Windows

Coreutils pour Windows inclut de nombreuses commandes fréquemment utilisées sous Linux, comme cat, cp, find, grep, hostname, ls, mv, pwd, rm, sleep, tee et uptime.

Les développeurs peuvent installer ces utilitaires via WinGet avec la commande suivante : winget install Microsoft.Coreutils

Au lieu de créer un exécutable distinct pour chaque programme, Microsoft a conçu un unique fichier binaire nommé coreutils.exe qui contient toutes les fonctionnalités de chaque utilitaire.

Après l’installation, le programme de configuration crée des liens physiques NTFS pour chaque commande prise en charge, par exemple ls.exe, cp.exe, cat.exe et rm.exe. Tous ces liens pointent vers l’exécutable c:Program Filescoreutilscoreutils.exe.

Lorsqu’un utilisateur lance l’une de ces commandes, Windows charge le fichier coreutils.exe. Ce dernier détermine quel utilitaire exécuter en fonction du nom de la commande qui a été lancée. Cette méthode permet à Microsoft de maintenir un seul fichier exécutable tout en proposant des commandes individuelles qui rappellent l’environnement Linux.

Coreutils utilise des liens physiques NTFS pour associer les commandes au fichier binaire

Coreutils utilise des liens physiques NTFS pour associer les commandes au fichier binaire

De nombreux noms de commandes Linux entrent en conflit avec les commandes existantes de l’invite de commandes et de PowerShell. Microsoft a donc partagé un tableau de compatibilité qui montre le comportement de chaque utilitaire dans les différents shells Windows.

Le package inclut des commandes comme ls, cat, cp, mv, rm, pwd, sleep et tee. Cependant, la version de Coreutils qui est exécutée dépend du shell utilisé, de l’ordre des répertoires dans le chemin système PATH et de la table d’alias de PowerShell.

D’autres commandes, dont dir, more, paste et whoami, ne sont pas fournies parce qu’elles sont déjà présentes dans Windows.

Microsoft n’a pas non plus publié plusieurs utilitaires Unix populaires qui dépendent de fonctionnalités POSIX, comme chmod, chown, chroot, nohup, tty et who. Ces fonctionnalités ne sont pas disponibles sur Windows.

L’entreprise précise que les commandes ‘kill’ ou ‘timeout’ ne sont pas disponibles non plus, car Windows ne prend pas en charge les signaux POSIX, même si cela pourrait être possible à l’avenir.

Microsoft met également en garde contre des différences potentielles entre les fonctionnalités sous Linux et le comportement des commandes sous Windows. Ces différences proviennent des écarts dans la gestion des sauts de ligne, des permissions des fichiers et du support de POSIX.

L’annonce de Coreutils pour Windows s’inscrit dans la stratégie de Microsoft pour faire de Windows une plateforme accueillante pour les développeurs.

Pendant la conférence Build 2026, la firme a également présenté les conteneurs WSL. Cette fonctionnalité offrira un moyen intégré de créer, d’exécuter et d’interagir avec des conteneurs Linux sur Windows en utilisant des outils en ligne de commande et des API natifs.