Objavljen je izdanak projekta uutils coreutils 0.4.0 (Rust Coreutils), koji razvija analog paketa GNU Coreutils, napisan na jeziku Rust. U coreutils je uključeno 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 izrada višekratne alternativne implementacije Coreutils, koja može raditi na platformama Windows, Redox i Fuchsia.
Rust Coreutils je zadan po zadanom u izdanju Ubuntu 25.10 i koristi se u distribucijama AerynOS (Serpent OS) i Apertis (razvija ga tvrtka Collabora). Za razliku od GNU Coreutils, implementacija na Rustu distribuira se pod permisivnom licenci MIT, umjesto copyleft licence GPL. Nadalje, isti tim programera razvija analogne alate napisanih na Rustu za pakete util-linux, diffutils, findutils i procps, kao i programe sed i login.
U novoj verziji Rust Coreutils:
- Poboljšana je kompatibilnost s referentnim testnim skupom GNU Coreutils, pri čemu je uspješno izvedeno 544 testa, što je 12 više nego u prethodnoj verziji (532). 56 (68) testova je neuspješno završeno, a 33 (33) testova je propušteno. Izjavljen je nivo kompatibilnosti od 85.80% (bilo 83.91%).
- U alatu data poboljšana je kompatibilnost s GNU date pri obradi vremenskih zona (dodana je mogućnost navođenja skraćenih naziva vremenskih zona u opciji —set).
- U alatu factor korišten je paket num_prime za ubrzanje faktoriranja tipova u64/u128.
- U alatu tsort implementacija DFS algoritma prebačena je s rekurzivnog na iterativni metod rada kako bi se spriječilo preopterećenje stoga.
- U alatu cksum implementirana je podrška za hash funkcije sha2 i sha3. Dodani su testovi za praćenje promjene performansi cksum. Funkcionalnost hashsum je prenesena u cksum.
- U alatu mkdir uklonjeno je preopterećenje stoga koje je dovodilo do nenadnog gašenja pri stvaranju velikog (200+) broja unutarnjih direktorija.
- U alatima stdbuf i uptime implementirana je podrška za platformu OpenBSD.
- Poboljšana je izrada i testiranje na platformi FreeBSD.
- Unesene su zajedničke poboljšanja radi povećanja prenosivosti.
- Proširene su mogućnosti, otklonjene su poteškoće i dodane su nedostajuće opcije za alate base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
Dodatno se može primijetiti razlika u ponašanju alata „du“ između uutils-a i GNU Coreutils-a, koja se pojavila nakon prijelaza Ubuntu 25.10 na uutils. Programeri još nisu odlučili tumačiti li ovu razliku kao grešku, budući da ponašanje uutils-a ima svoju logiku, a testni skup GNU Coreutils-a ne pokazuje probleme, ali s druge strane, neusklađenosti s GNU Coreutils-om predviđeno je da se tretiraju kao greške, a ponašanje Busybox-a odgovara GNU Coreutils-u.
Različito ponašanje se primjećuje kada se kao argumenti alatu „du“ navedu nekoliko direktorija u situaciji kada su neki od tih direktorija poddirektoriji drugih direktorija (na primjer, /var i /var/log). Uutils pokazuje stvarnu veličinu svakog pojedinog direktorija, dok u završnoj liniji prikazuje zbrojnu veličinu svih navedenih direktorija. GNU Coreutils prikazuje u završnoj liniji stvarnu veličinu koju navedeni direktoriji zauzimaju na disku, ali u razdvojenoj listi prikazuje veličine svakog direktorija umanjene za ugniježdene direktorije, zbog čega njihova veličina ispada manja od stvarne. Osim toga, vrijednosti koje prikazuju GNU Coreutils i Busybox variraju ovisno o redoslijedu navođenja direktorija.
Na primjer, prilikom provjere veličine direktorija „/var/log“ i „/var“, čija je stvarna veličina 1540 i 35495 bajtova, u GNU Coreutils će biti prikazano: du -smc /var/log /var 1540 /var/log 33955 /var # manje od stvarne 35495 ukupno du -smc /var /var/log 35495 /var # prikazan je samo /var i nije prikazan /var/log 35495 ukupno
U uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 ukupno # više od stvarne, ali odgovara zbroju /var i /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 ukupno # više od stvarne, ali odgovara zbroju /var i /var/log
U Busybox-u: du -smc /var/log /var 1540 /var/log 33955 /var # manje od stvarne 35495 ukupno du -smc /var /var/log 35495 /var # prikazan je samo /var i nije prikazan /var/log 35495 ukupno
Izvor: opennet.ru
