Unix-Befehle nativ unter Windows: Microsoft veröffentlicht eigene Coreutils

vor 11 Stunden 1

Mit den Coreutils for Windows bringt Microsoft eine eigene Sammlung klassischer Unix-Kommandozeilenwerkzeuge nativ für Windows. Das Paket stellt bekannte Befehle wie cat, grep, find oder xargs unter ihren gewohnten Namen bereit. Entwickler sollen damit dieselben Kommandos, Optionen und Shell-Pipelines auf Windows, Linux, macOS, im Windows Subsystem for Linux (WSL) und in Containern nutzen können. Die Software liegt als Vorschauversion vor und lässt sich per WinGet installieren.

Die Coreutils gehören seit Jahrzehnten zum Standardrepertoire von Linux-Administratoren und Entwicklern. Wer diese Werkzeuge bisher unter Windows mit weitgehend identischem Verhalten nutzen wollte, griff meist zu WSL, Git Bash oder Cygwin. Mit seinen neuen Coreutils integriert Microsoft die Werkzeuge nun direkt ins Betriebssystem und senkt damit die Hürden zwischen den Umgebungen.

Technisch handelt es sich nicht um eine Portierung der GNU Coreutils. Das Projekt baut auf uutils/coreutils auf, einer plattformübergreifenden Neuimplementierung der GNU-Werkzeuge in Rust. Microsoft pflegt dafür einen eigenen Windows-Build, der neben den Coreutils auch die Findutils und ein GNU-kompatibles grep enthält. Bestehende Skripte sollen so ohne Anpassungen zwischen den Plattformen wandern können.

Dass die Wahl auf das Rust-Projekt fiel, ist kein Zufall: Die Sprache spielt seit einigen Jahren eine wachsende Rolle in den Sicherheits- und Infrastrukturprojekten von Microsoft. Das Unternehmen bezeichnet speichersichere Sprachen explizit als Zukunft sicherer Softwareentwicklung und nutzt Rust inzwischen auch bei Windows-Komponenten und der Treiberentwicklung.

Microsoft liefert das Paket als sogenanntes Multi-Call-Binary aus. Die Funktionen zahlreicher Einzelwerkzeuge stecken dabei in einer einzigen Binärdatei, die je nach Aufrufnamen ein anderes Programm ausführt – etwa cat.exe, grep.exe oder find.exe. Das Konzept stammt aus der Unix-Welt und kommt unter anderem auch bei BusyBox zum Einsatz.

Für Entwickler heißt das konkret: Typische Linux-Pipelines laufen künftig direkt unter Windows, zum Beispiel:

cat access.log | grep 500 | sort | uniq

Ebenso sollen Aufrufe wie

find . -name "*.log"

oder

grep "ERROR" logfile.txt

dasselbe Verhalten zeigen wie unter Linux.

Trotz der Unix-Ausrichtung nimmt Microsoft Rücksicht auf bestehende Windows-Umgebungen. Das Paket enthält Ports der klassischen DOS-Kommandos sort und find, damit ältere CMD-Skripte mit ihrer typischen /switch-Syntax weiterhin laufen. Gerade bei find schwelt seit Jahrzehnten ein Namenskonflikt: Die Unix-Variante durchsucht Verzeichnisbäume, das DOS-Kommando dagegen sucht Zeichenketten in Dateien.

Nicht alle Programme aus dem uutils-Projekt schaffen es in den Windows-Build. Microsoft lässt mehrere Werkzeuge bewusst weg, weil sie auf POSIX-spezifischen Konzepten beruhen, unter Windows wenig Nutzen bringen oder bestehende Skripte stören könnten. Dazu zählen unter anderem chmod, chown, chroot, stty, uname und sync. Auch das häufig genutzte dd fehlt vorerst.

Darüber hinaus weist Microsoft auf Konflikte mit eingebauten Befehlen von CMD und PowerShell hin. Als Mindestvoraussetzung nennt das Unternehmen PowerShell 7.4. Die Coreutils für Windows erscheinen als Open-Source-Software, Details finden sich auf der GitHub-Projektseite.

(fo)

Gesamten Artikel lesen