GNU Coreutils: Es gibt einen Zwischenstand zur Neu-Implementierung in Rust
Die GNU Coreutils sind eine Sammlung wichtiger Kommandozeilenprogramme, die jedes Betriebssystem braucht. Die Rust-Version nimmt weiter Fahrt auf.

Auf der FOSDEM23 hat der Hauptentwickler der uutils, Sylvestre Ledru, einen Vortrag über das Projekt gehalten und dabei auch gezeigt, wie es so ist, "alte Dinge mit modernen Tools" zu erledigen. Im uutils-Projekt geht es darum, alte Programme von Rust plattformunabhängig neu zu implementieren.
Wenn es um grundlegendsten Programme auf der Kommandozeile geht, dann sind die kleinen, aber wichtigen Programme der Coreutils gemeint. Sie sind so grundlegend, dass sie von den meisten Nutzern kaum noch als Programme wahrgenommen werden, man spricht von ihnen gern als Befehlen. Dieser Eindruck wird noch dadurch verstärkt, dass sie kurze, einprägsame Namen tragen: echo, dir, cp, mv, link, cat oder kill. Fast alle Linux-Distributionen basieren auf deren GNU-Implementierung.
Die Implementierung der GNU Coreutils ist über 50 Jahre alt
Die erste Version der Coreutils wurde von Ken Thompson implementiert und 1970 veröffentlicht. Neugierige können sich die rekonstruierten Sourcen auf hier anschauen. Etwas leichter verdaulich dürfte die neuere Version von 1971 sein, bei der schon viel in C geschrieben ist.
Heute gibt es verschiedene Implementierungen der kleinen Programme. Es gibt die bereits erwähnten GNU Coreutils, eine Implementierung für BSD, Busybox, Toybox (für Android) und auch eine in V lang.
Die Implementierung in Rust als uutils wurde schon 2013 gestartet, schlief dann aber fast gänzlich ein. Bis April 2020, als Sylvestre Ledru zu Beginn der Covid-Pandemie eine sinnvolle Beschäftigung suchte, das Projekt fand und als gute Idee interpretierte, um Rust zu lernen. Inzwischen sind die uutils "für die meisten Linux-Distributionen packaged".
Fertig ist man aber noch nicht
Für die Coreutils gibt es eine Testsuite. Der aktuelle Stand, wie die uutils bei der GNU-Coreutils-Testsuite abschneiden, wird täglich in die Dokumentation des Projekts generiert - und da ist noch einiges rot (error) und gelb (fail). Bestanden werden zur Zeit knapp 400 der 624 Tests insgesamt. Allerdings stellt bei einigen dieser Tests auch schon eine abweichende Formatierung der Ausgabe einen Fail dar. Die GNU Coreutils selbst schaffen auch nicht alle Tests, sondern aktuell 546 der 624 Tests. Die Entwicklung geht weiter.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Da du selbst keine Studien zu kennen scheinst, ist dein Posting sinnfrei und...
Rust ist keine OOP Sprache. Es gibt Structs und Traits (Interfaces). Du kannst Traits für...
Kommentieren