Publicēta uutils coreutils 0.4.0 (Rust Coreutils) izlaidums, kas attīsta GNU Coreutils analogu, kas uzrakstīts Rust valodā. Coreutils ietver vairāk nekā simts utilītu, tostarp sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln un ls. Projekta mērķis ir radīt multiplatformu alternatīvu Coreutils īstenojumu, kas spēj darboties arī Windows, Redox un Fuchsia platformās.
Rust Coreutils ir noklusējuma sistēmas daļa Ubuntu 25.10 izlaidumā un tiek izmantota AerynOS (Serpent OS) un Apertis (kas tiek attīstīts Collabora) izplatījumos. Atšķirībā no GNU Coreutils, Rust versija tiek izplatīta ar MIT permisīvo licenci, nevis GPL kopilefšanas licenci. Papildus šī paša izstrādātāju komanda attīsta Rust rakstītus analogus util-linux, diffutils, findutils un procps komplektiem, kā arī programmām sed un login.
Jaunajā Rust Coreutils versijā:
- Uzlabota saderība ar GNU Coreutils etalona testu komplektu, kurā veiksmīgi izpildīti 544 testi, kas ir par 12 vairāk nekā iepriekšējā versijā (532). 56 (68) testi neizdevās, bet 33 (33) testi tika izlaisti. Saderības līmenis ir 85.80% (iepriekšējo 83.91%).
- Utilitātei data uzlabota saderība ar GNU date, apstrādājot laika zonas (pievienota iespēja norādīt saīsinātas laika zonu nosaukumus opcijā —set).
- Utilitātē factor izmantots num_prime pakotne, lai paātrinātu u64/u128 faktorizāciju.
- Utilitātē tsort DFS algoritma īstenojums pārveidots no rekursīvas uz iteratīvu metodi, lai novērstu steka pārslogošanu.
- Utilitātē cksum ieviesta sha2 un sha3 atbalsta pievienošana. Pievienoti testi cksum veiktspējas izmaiņu izsekošanai. Funkcionalitāte hashsum pārcelta uz cksum.
- Utilitātē mkdir novērsta steka pārslogošana, kas izraisīja avārijas noslēgšanos, veidojot lielu (200+) iekšējo katalogu skaitu.
- Utilitātēs stdbuf un uptime ieviests atbalsts OpenBSD platformai.
- Uzlabota kompilācija un testēšana FreeBSD platformā.
- Veikti vispārēji uzlabojumi, lai palielinātu pārnesamību.
- Paplašinātas iespējas, novērstas problēmas un pievienotas trūkstošās opcijas utilītēm base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
Papildus jāatzīmē, ka ir novērojama atšķirība utilītas «du» uzvedībā starp uutils un GNU Coreutils, kas uzradās pēc Ubuntu 25.10 pārejas uz uutils. Izstrādātāji vēl nav izlēmuši, vai šo atšķirību uzskatīt par kļūdu, jo no vienas puses uutils uzvedībai ir loģika, un GNU Coreutils testēšanas komplekts neatklāj problēmas, bet no otras puses, nesaderību ar GNU Coreutils ieteicams apstrādāt kā kļūdas, un Busybox uzvedība atbilst GNU Coreutils.
Atšķirīga uzvedība tiek novērota, norādot utilītas «du» argumentu skaitā vairākus katalogus situācijā, kad daži no katalogiem ir citu katalogu apakškatalogi (piemēram, /var un /var/log). Uutils parāda katra atsevišķā katalogu faktisko izmēru, bet gala rindā izvada visu norādīto katalogu kopējo izmēru. GNU Coreutils izvada gala rindā faktisko izmēru, ko norādītie katalogi ieņem diskā, bet atsevišķajā sarakstā rādīt katalogu izmērus, izņemot iekļautos katalogus, tādēļ to izmērs izrādās mazāks par faktisko. Turklāt vērtības, ko izvada GNU Coreutils un Busybox, mainās atkarībā no katalogu norādīšanas secības.
Piemēram, pārbaudot katalogu «/var/log» un «/var» izmēru, kuru faktiskais izmērs ir attiecīgi 1540 un 35495 baiti, GNU Coreutils izvadīs: du -smc /var/log /var 1540 /var/log 33955 /var # mazāk par faktisko 35495 total du -smc /var /var/log 35495 /var # parādīts tikai /var un nav parādīts /var/log 35495 total
Uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # vairāk par faktisko, bet atbilst summām /var un /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # vairāk par faktisko, bet atbilst summām /var un /var/log
Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # mazāk par faktisko 35495 total du -smc /var /var/log 35495 /var # parādīts tikai /var un nav parādīts /var/log 35495 total
Avots: opennet.lv
