Ubuntu 25.10 soll GNU Core Utils in Rust ausliefern

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äßlich 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.

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.

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.

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.