Canonical plant, einige GNU-Systemtools künftig in der Programmiersprache Rust auszuliefern. Den Anfang sollen mit Ubuntu 25.10 die GNU Core Utils machen. Das Paket, das um 1970 in der Sprache C entwickelt wurde, stellt einen grundlegenden Satz von Befehlszeilenprogrammen bereit, die für die Interaktion mit und die Verwaltung von Unix-ähnlichen Betriebssystemen unerlässlich sind. Sie bieten grundlegende Datei-, Shell- und Textmanipulationsfunktionen und werden mit fast allen Linux-Distributionen ausgeliefert. Ausnahmen sind etwa Alpine Linux, das das reduzierte Paket Busybox als ausreichend ansieht und Chimera Linux, das anstatt auf GNU-Tools lieber auf Tools aus FreeBSD setzt.
Essenzielles Paket
Zu den über Hundert Kommandozeilen-Tools im Paket coreutils zählen Befehle wie ls, cp, dd, df, mv und rm. Eine komplette Liste ist im Debian Wiki zu finden.
Verantwortlich für die nicht gerade triviale Migration bei Ubuntu ist Julian Andres Klode, der unter anderem Maintainer von APT ist. Vor wenigen Tagen hat Klode die geplante Migration auf Ubuntu Discourse detailliert beschrieben.
Der Paketname ändert sich dabei nicht sehr einprägsam von coreutils zu coreutils-from-uutils. Eine Rückkehr zu coreutils ist möglich, falls nötig. Der Paketname dafür lautet dann coreutils-from-gnu. Coreutils ist ein essenzielles Paket, was die Migration erschwert, da bestimmte Anforderungen erfüllt sein müssen.
Motivation für eine Migration
Die wichtigste Motivation für den Wechsel auf Rust-Coreutils ist die deutlich höhere Sicherheit. Rust bietet eine moderne Speicherverwaltung, die viele typische Fehlerquellen wie Pufferüberläufe und Use-after-free-Probleme, die bei C-basierten Programmen häufig auftreten, von vornherein verhindert. Dadurch sinkt die Anfälligkeit der Systemtools für Angriffe. Ein weiterer Vorteil ist die besser wartbare Codebasis bei vollständiger Kompatibilität zu den GNU-Tools.
Test bereits jetzt möglich
Wer experimentierfreudig ist, kann mit Ubuntu verschiedene Tools-Pakete bereits jetzt in Rust testen. Dafür hat John Seager, Vizepräsident Engineering bei Canonical, das Tool oxidizr geschrieben, das Coreutils, Findutils, Diffutils und Sudo in Rust-Versionen bereitstellt und den Wechsel mit den GNU-Pendants ermöglicht. Eine Anleitung gibt es ebenfalls auf Discourse.

Ah ja, dieses uutils … Ich hörte schon davon. Aber mal eine Nachfrage: Wenn es nicht Ubuntu wäre, würde ich das nicht fragen, aber kommt das dann als Snap Package?
Das ist doch jetzt kein reines Ubuntu-Projekt, oder? Imho arbeiten doch schon andere lange ebenfalls an einer Umstellung auf Rust. Ist Ubuntu somit dann die erste Distri, die einen kompletten Umstieg vollzieht?
Musste kurz suchen, aber hab z.B. folgenden Beitrag aus der ix von heise gefunden:
https://www.heise.de/select/ix/2024/8/2416410383632505306
Es geht bei Ubuntu mehr um die nicht ganz triviale Implementierung als um das Coden der Tools in Rust. Bei Debian ist das als Projekt des Google Summer of Code 2025 angemeldet.
Danke für den Link.
Wenn ich das Interview richtig interpretiere dann ist ein Sicherheitsgewinn kaum zu erwarten. Im Vordergrund der Rust Implementierung dürfte eher folgendes stehen:
Was ich nicht verstehe ist dieser eine Punkt den Daniel Hofstetter bei den Vorteil aufführt:
“Sie ist wirklich plattformübergreifend. Wir unterstützen Linux, macOS, Windows, Android und FreeBSD. Wir wissen, dass unsere Implementierung auch auf anderen Betriebssystemen gut funktioniert. Sie ist auch architekturübergreifend: Sie läuft dort, wo der Rust-Compiler läuft.”
Der C-Compiler dürfte doch auch überall laufen. Inwieweit macht sich das wirklich bei “wirklich plattformübergreifend” denn bemerkbar.
bin gespannt wie lange es dauert bis Waldorf und Statler erklären, dass das sowieso alles unnötiger Firlefanz ist. Funktioniert ja. Und von Canonical ist alles des Teufels… 😉 Grüsse aus der Show
Naja, zum Glück kann man als mündiger Linuxer Ubuntu durchaus divers betrachten. Im hier zur Debatte stehenden Fall produzieren sie mal keine Einbahnstraße, sodass auch Debian und andere Distributionen davon profitieren könnten, so sie denn wollen.
Bin ich voll bei dir.
Genau das ist in meinen Augen der goldene Weg. Offen sein für neues und es dennoch kritisch bzw. sachlich kritisch betrachten. Nur so ist ein Wachstum möglich der nicht außer Kontrolle gerät.
Denn Stillstand ist der Tot. Nur weil etwas funktioniert, ist es nicht gleich gut. Und nur weil etwas neu ist, ist es nicht gleich sicher usw. 🙂
Ich persönlich bin ein Fan davon die Tools neu in Rust zu implementieren. Mein Gedanken dabei sind “Keine Abhängigkeit mehr von nur einem Dev, moderne Codebasis, schneller…” usw. wir haben zu oft in der Vergangenheit gesehen, dass nur ein Dev für den Zusammenbruch ganzer Konstrukte sorgen kann weil es EIGENTLICH ein Hobby-Projekt war 😀
Gab ja immer mal ansätze kleinerer Natur. exa/eza für ls zb. oder bat für cat. Nutze ich beides sehr gerne. Ein konsistentes Paket bevorzuge ich da aber sehr 😀
Ich halte mal spontan dagegen mit dem Argument:
“Trau keinem der nicht berentet ist” 😉