Veröffentlichung von uutils 0.11, einer Variante der GNU Coreutils in Rust

Ausgabe der uutils coreutils 0.11.0 (Rust Coreutils) veröffentlicht, das ein Pendant zu dem GNU Coreutils-Paket darstellt, geschrieben in Rust. Die coreutils umfassen ĂŒber hundert Dienstprogramme, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Das Ziel des Projekts ist die Schaffung einer plattformĂŒbergreifenden alternativen Implementierung von Coreutils, die unter anderem auf Windows-, Redox- und Fuchsia-Plattformen funktioniert.

Rust Coreutils ist standardmĂ€ĂŸig in der Veröffentlichung von Ubuntu 25.10 und teilweise in Ubuntu 26.04 aktiv. Rust Coreutils wird auch in den Distributionen AerynOS (Serpent OS) und Apertis (entwickelt von Collabora) verwendet. Im Gegensatz zu GNU Coreutils wird die Rust-Implementierung unter der permissiven MIT-Lizenz verbreitet, anstelle der copyleft-lizenz GPL. ZusĂ€tzlich entwickelt dasselbe Entwicklerteam Rust-basierte Entsprechungen der Dienstprogrammsammlungen util-linux, diffutils, findutils, procps und acl sowie der Programme sed und login.

In der neuen Version von Rust Coreutils:

  • Der KompatibilitĂ€tsgrad mit dem Referenz-Testset von GNU Coreutils betrĂ€gt 95,33 % (frĂŒher 94,44 %). Insgesamt wurden 653 Tests erfolgreich bestanden, was 8 mehr sind als in der vorherigen Version (645). 22 Tests sind fehlgeschlagen (frĂŒher 29), und 15 Tests wurden ĂŒbersprungen (frĂŒher 15).
  • Ein neuer Diagnose-Engine wurde integriert, basierend auf der Bibliothek ariadne, die beim AusfĂŒhren von Dienstprogrammen im Terminal visuelle Fehlermeldungen mit den Argumenten der Befehlszeile, die das Problem verursacht haben, ausgibt. Die Fehlervisualisierung ist in den Dienstprogrammen chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df und du implementiert. Zur Deaktivierung der diagnostischen Berichte wurde die Umgebungsvariable UUTILS_DIAG vorgeschlagen.
  • Bei der Erstellung von Versionen wurden Optimierungen basierend auf den Profilierungsergebnissen des Codes (PGO - Profilguidierte Optimierung) aktiviert, die es ermöglichen, effizienteren Code basierend auf der Analyse des Programmverhaltens zu generieren. Laut Entwicklern betrug der Leistungszuwachs bei einigen Operationen bis zu 31 %.
  • Die Leistung der Dienstprogramme cp (+32,93 %), join (2,5-mal schneller als GNU durch Deaktivierung ĂŒberflĂŒssiger Lokalisierungsv Vergleiche), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt und sort wurden optimiert. Fehlerhafte Situationen wurden als solche betrachtet, wenn die AusfĂŒhrung von Operationen deutlich langsamer war als in GNU Coreutils.
  • Einzelne Abweichungen im Verhalten der Dienstprogramme pr, numfmt, join, id, mkdir, fold, sort, stat, od und date im Vergleich zu GNU Coreutils wurden behoben.
  • Spezifische fĂŒr GNU Coreutils Optionen wurden implementiert: „uname -A“, „uname —all-labeled“, „cut -F“, „cut —whitespace-delimited“, „pr —columns“, „pr —join-lines“, „pr -f“.
  • In den Dienstprogrammen mv, cp, rm, chmod und stdbuf wurde an der Verbesserung der Sicherheit gearbeitet, um Schwachstellen zu verhindern, die durch ein Rennen von Bedingungen entstehen, welche die Daten im Moment nach der ÜberprĂŒfung der Korrektheit der Informationen, aber vor der DurchfĂŒhrung der Operation mit ihnen Ă€ndern können, z.B. um eine Datei durch einen symbolischen Link zu ersetzen, genau in dem Moment zwischen dem Abschluss der ÜberprĂŒfung und dem Beginn der DurchfĂŒhrung der Operation. Im Kontext der Verwendung der Dienstprogramme cp, chmod und mv in Systemskripten, die mit Root-Rechten ausgefĂŒhrt werden, ermöglichen solche Schwachstellen das Kopieren oder Überschreiben beliebiger Dateien.
  • Es wurde an der Beseitigung von AbstĂŒrzen in den Dienstprogrammen split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac, who gearbeitet.
  • Es wurden Varianten der Dienstprogramme kill und uptime fĂŒr Windows implementiert.
  • Die Verwendung der Pakete byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (das kĂŒrzlich kompromittiert wurde), exacl und dns-lookup wurde zugunsten von Funktionen aus den Bibliotheken std, rustix und windows-sys eingestellt.
  • In die Dienstprogramme ls und comm wurde UnterstĂŒtzung fĂŒr die Locale-Eigenschaften "collation" integriert, die eine bedeutungsbasierte Zeichenvergleich ermöglichen (z.B. kann bei Vergleichen das Akzentzeichen ignoriert werden).
  • Die Handhabung von Mehrbytezeichen in den Dienstprogrammen nl und cut wurde verbessert.

ZusĂ€tzlich kann erwĂ€hnt werden, dass Canonical zwei experimentelle Container-Images fĂŒr die Entwicklung von Programmen in Rust veröffentlicht hat, die der Dev Container-Spezifikation entsprechen. Das erste Image enthĂ€lt Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (Interpreter zur Erkennung undefinierten Verhaltens), cargo-auditable (Audit von Builds), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh und curl. Das zweite Image enthĂ€lt außerdem Pakete fĂŒr die Ubuntu-Entwicklung: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster