Rust Coreutils 0.4 Veröffentlichung: Abweichungen im Verhalten des Du-Dienstprogramms in Uutils und GNU Coreutils

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

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster