Izdanje uutils 0.11, verzije GNU Coreutils napisane na jeziku Rust

Objavljeno je izdanje projekta uutils coreutils 0.11.0 (Rust Coreutils), koji razvija alternativu paketu GNU Coreutils, napisanom na jeziku Rust. U sastavu coreutils nalazi se više od stotinu alata, uključujući sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Cilj projekta je izraditi multiplatformsku alternativnu implementaciju Coreutils, koja, između ostalog, može raditi na platformama Windows, Redox i Fuchsia.

Rust Coreutils je prema zadanim postavkama uključen u izdanje Ubuntu 25.10 i djelomično u Ubuntu 26.04. Rust Coreutils se također koristi u distribucijama AerynOS (Serpent OS) i Apertis (koji razvija tvrtka Collabora). Za razliku od GNU Coreutils, implementacija na Rustu distribuira se pod permisivnom MIT licencom, umjesto copyleft GPL licence. Dodatno, ista ekipa programera razvija napisanom na Rustu analogne skupine alata util-linux, diffutils, findutils, procps i acl, kao i programe sed i login.

U novoj verziji Rust Coreutils:

  • Razina kompatibilnosti s referentnim setom testova GNU Coreutils iznosi 95.33% (bilo 94.44%). Uspješno je izvršeno 653 testa, što je 8 više nego u prethodnoj verziji (645). 22 testa su bila neuspješna (bilo 29), a 15 testova je propušteno (bilo 15).
  • Integriran je novi motor za dijagnosticiranje problema, temeljen na biblioteci ariadne, koji pri pokretanju alata u terminalu ispisuje vizualna izvješća o greškama s označavanjem argumenata s naredbenog retka koji su uzrokovali problem. Vizualizacija grešaka uključena je u alate 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 i du. Za isključivanje dijagnostičkih izvještaja predložena je varijabla okruženja UUTILS_DIAG.
  • Pri izradi izdanja aktivirane su optimizacije temeljene na rezultatima profiliranja koda (PGO – Profile-guided optimization), što omogućuje generiranje optimiziranijeg koda temeljenog na analizi specifičnosti izvođenja programa. Prema procjenama programera, povećanje performansi pri izvođenju nekih operacija iznosilo je do 31%.
  • Provedena je optimizacija performansi alata cp (+32.93%), join (2.5 puta brži od GNU-a zbog isključivanja suvišnih usporedbi lokaliteta), od, ptx (+4%), nl, tail, expand, unexpand, numfmt i sort. Kao greške počele su se smatrati situacije s izvršavanjem operacija koje su znatno sporije nego u GNU Coreutils.
  • Ispravljena su pojedinačna odstupanja od ponašanja GNU Coreutils za alate pr, numfmt, join, id, mkdir, fold, sort, stat, od i date.
  • Implementirane su opcije specifične za GNU Coreutils: «uname -A», «uname —all-labeled», «cut -F», «cut —whitespace-delimited», «pr —columns», «pr —join-lines», «pr -f».
  • Provode se mjere jačanja sigurnosti u alatima mv, cp, rm, chmod, stdbuf kako bi se spriječile ranjivosti uzrokovane uvjetima trke koji omogućuju promjene podataka nakon provjere valjanosti, ali prije izvršenja operacija, npr. zamjena datoteke simboličkom vezom između završetka provjere i početka izvršenja operacije. U kontekstu korištenja alata cp, chmod i mv u sistemskim skriptama pokrenutim s root prava, ovakve ranjivosti omogućuju kopiranje ili prepisivanje proizvoljnih datoteka.
  • Poduzete su mjere za uklanjanje iznenadnog prekida rada u alatima split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac, who.
  • Implementirane su verzije alata kill i uptime za Windows.
  • Prekinuta je upotreba paketa byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (nedavno je bio kompromitiran), exacl i dns-lookup u korist funkcija iz biblioteka std, rustix i windows-sys.
  • U alate ls i comm dodana je podrška za svojstva lokaliteta «collation», koja omogućuju usklađivanje uzimajući u obzir značenje znakova (npr. prilikom usporedbe može se zanemariti naglasak).
  • Poboljšano je rukovanje višebajtnih znakova u alatima nl i cut.

Dodatno se može istaknuti objavljivanje dva eksperimentalna kontejnerska imaga od strane Canonicala za razvoj aplikacija na jeziku Rust, sukladno specifikaciji Dev Container. Prvi image uključuje Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (interpreter za pronalaženje neodređenog ponašanja), cargo-auditable (audit gradnji), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh i curl. Drugi image osim toga sadrži pakete za razvoj za Ubuntu: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster