Das Projekt uutils coreutils 0.4.0 (Rust Coreutils), eine in Rust geschriebene Weiterentwicklung des GNU Coreutils-Pakets, wurde veröffentlicht. coreutils umfasst ĂŒber 100 Hilfsprogramme, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Ziel des Projekts ist die Entwicklung einer plattformĂŒbergreifenden Alternative zu Coreutils, die auf verschiedenen Plattformen lauffĂ€hig ist. Windows, Redox und Fuchsia.
Rust Coreutils sind in der Release-Version standardmĂ€Ăig aktiviert. Ubuntu 25.10 und wird in den Distributionen AerynOS (Serpent OS) und Apertis (entwickelt von Collabora) verwendet. Im Gegensatz zu GNU Coreutils wird die Rust-Implementierung unter der freizĂŒgigen MIT-Lizenz anstatt der Copyleft-Lizenz GPL vertrieben. Dasselbe Entwicklerteam entwickelt auĂerdem Rust-basierte Entsprechungen der Utility-Suites util-linux, diffutils, findutils und procps sowie der Programme sed und login.
In der neuen Version von Rust Coreutils:
- Die KompatibilitĂ€t mit der GNU Coreutils Benchmark-Suite wurde verbessert. Die Version bestand 544 Tests, 12 mehr als die VorgĂ€ngerversion (532). 56 Tests schlugen fehl, und 33 Tests wurden ĂŒbersprungen. Die angegebene KompatibilitĂ€tsrate betrĂ€gt 85.80 % (vorher 83.91 %).
- Das Daten-Utility bietet eine verbesserte KompatibilitĂ€t mit GNU date bei der Verarbeitung von Zeitzonen (die Möglichkeit, abgekĂŒrzte Zeitzonennamen in der Option --set anzugeben, wurde hinzugefĂŒgt).
- Das Dienstprogramm factor verwendet das Paket num_prime, um die Faktorisierung von u64/u128-Typen zu beschleunigen.
- Im Dienstprogramm tsort wurde die Implementierung des DFS-Traversierungsalgorithmus von einer rekursiven auf eine iterative Methode umgestellt, um einen Stack-Ăberlauf zu verhindern.
- Das Dienstprogramm cksum unterstĂŒtzt nun SHA2- und SHA3-Hashes. Benchmarks wurden hinzugefĂŒgt, um die Leistung von cksum zu ĂŒberwachen. Die Hashsum-FunktionalitĂ€t wurde in cksum integriert.
- Es wurde ein Stack-Overflow im mkdir-Dienstprogramm behoben, der beim Erstellen einer groĂen Anzahl (200+) verschachtelter Verzeichnisse zu einem Absturz fĂŒhren konnte.
- Die Dienstprogramme stdbuf und uptime unterstĂŒtzen nun die OpenBSD-Plattform.
- Verbesserte Build- und Testmöglichkeiten auf der FreeBSD-Plattform.
- Es wurden allgemeine Verbesserungen vorgenommen, um die PortabilitÀt zu erhöhen.
- Erweiterte Funktionen, behobene Probleme und hinzugefĂŒgte fehlende Optionen fĂŒr die Dienstprogramme base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
Zudem ist die Diskrepanz im Verhalten des Dienstprogramms âduâ aus den uutils- und GNU Coreutils-Bibliotheken festzustellen, die nach dem Ăbergang auftrat. Ubuntu 25.10 zu uutils. Die Entwickler haben noch nicht entschieden, ob diese Diskrepanz als Fehler behandelt werden soll, da sich uutils logisch verhĂ€lt und die Testsuite von GNU Coreutils keine Probleme aufdeckt. InkompatibilitĂ€ten mit GNU Coreutils sollen jedoch als Fehler behandelt werden, und das Verhalten von Busybox entspricht dem von GNU Coreutils.
Beim Angeben mehrerer Verzeichnisse als Argumente an das Dienstprogramm âduâ zeigt sich ein anderes Verhalten, insbesondere wenn einige der Verzeichnisse Unterverzeichnisse anderer Verzeichnisse sind (z. B. /var und /var/log). Uutils zeigt die tatsĂ€chliche GröĂe jedes einzelnen Verzeichnisses an und gibt anschlieĂend die GesamtgröĂe aller angegebenen Verzeichnisse in der Zusammenfassungszeile aus. GNU Coreutils zeigt zwar die tatsĂ€chliche FestplattengröĂe der angegebenen Verzeichnisse in der Zusammenfassungszeile an, listet diese jedoch in einer separaten Liste auf. Dabei werden die GröĂen der einzelnen Verzeichnisse abzĂŒglich aller darin enthaltenen Unterverzeichnisse angezeigt, wodurch die tatsĂ€chliche GröĂe kleiner erscheint. DarĂŒber hinaus variieren die von GNU Coreutils und Busybox angezeigten Werte je nach Reihenfolge der angegebenen Verzeichnisse.
Wenn man beispielsweise die GröĂe der Verzeichnisse â/var/logâ und â/varâ ĂŒberprĂŒft, deren tatsĂ€chliche GröĂe 1540 bzw. 35495 Byte betrĂ€gt, gibt GNU Coreutils Folgendes aus: `du -smc /var/log /var 1540 /var/log 33955 /var # weniger als die tatsĂ€chliche GesamtgröĂe von 35495` und `du -smc /var /var/log 35495 /var # zeigt nur /var an und nicht /var/log 35495 GesamtgröĂe`
In uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # gröĂer als tatsĂ€chlich, entspricht aber der Summe von /var und /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # gröĂer als tatsĂ€chlich, entspricht aber der Summe von /var und /var/log
In Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # weniger als tatsÀchlich 35495 insgesamt du -smc /var /var/log 35495 /var # zeigt nur /var und nicht /var/log 35495 insgesamt
Source: opennet.ru
