Ilmus väljaanne projekti uutils coreutils 0.4.0 (Rust Coreutils), mis arendab välja GNU Coreutils paketi analooge, kirjutatud Rustis. Coreutils sisaldab enam kui sada utiliiti, sealhulgas sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ja ls. Projekti eesmärk on luua ristplatvormiline alternatiivne rakendus Coreutils'ile, sealhulgas töö, mis suudab töötada Windowsi, Redoxi ja Fuchsia platvormidel.
Rust Coreutils on vaikimisi kaasatud Ubuntu 25.10 väljaandesse ja seda kasutatakse AerynOS (Serpent OS) ja Apertis (Collabora arenduses) jaotustes. Erinevalt GNU Coreutilsist levitatakse Rusti versiooni lubadega MIT, mitte kopileftri litsentsiga GPL. Samuti arendab sama arendajate meeskond Rusti keeles kirjutatud util-linux, diffutils, findutils ja procps utiliitide komplektide alternatiive, samuti programmide sed ja login.
Uues Rust Coreutils versioonis:
- Parandatud ühilduvust GNU Coreutils'i viidetestiga, mille käigus läbiti 544 testi, mis on 12 rohkem kui eelmisel versioonil (532). 56 (68) testi ebaõnnestus ja 33 (33) testi vahele jäeti. Ühilduvuse tase on deklareeritud 85.80% (oli 83.91%).
- Data utiliidis on parandatud ühilduvust GNU date'iga ajaloo viiside töötlemisel (lisatud võimalus määrata lühendatud ajavööndite nimesid suvandiga —set).
- Factor utiliidis on kasutatud paketti num_prime 64/128-bitiste arvude faktoriseerimise kiirendamiseks.
- Tsort utiliidi DFS läbimise algoritmi rakendus on muudetud rekurssiivsetelt itereerivatele meetoditele, et vältida virna ülevoolu.
- cksumi utiliid on nüüd toetatud sha2 ja sha3 ülesannete kokkuvõtted. Cksumi jõudluse muutuste jälgimiseks on lisatud testid. Hashsum funktsioon on kantud cksumi alla.
- mkdir utiliid on parandatud, et vältida virnastuse ülekoormust, mis põhjustas kriitilist lõpetamist paljude (üle 200) sisemist kaustade loomisel.
- stdbuf ja uptime utiliid toetavad nüüd OpenBSD platvormi.
- FreeBSD platvormil on paranenud koostamine ja testimine.
- Tehtud on üldised parandused ülekantavuse suurendamiseks.
- base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime ja uudoc utiliitide võimalusi on laiendatud, probleeme on lahendatud ja puuduvad valikud on lisatud.
Lisaks võib märkida, et du utiliidi käitumises on erinevused uutils ja GNU Coreutils komplektides, mis ilmusid pärast Ubuntu 25.10 üleminekut uutils. Arendajad pole veel otsustanud, kuidas sellele erinevusele läheneda, kuna ühelt poolt on uutils käitumises loogika ning GNU Coreutils testimisel ei ilmnenud probleeme, kuid teisalt tuleb GNU Coreutils'iga tõlgendamatust käitumisest käsitleda kui viga, ja Busybox käitumine vastab GNU Coreutils'ile.
Erinev käitumine ilmneb, kui "du" utiliidile antakse mitmeid katalooge, millest mõned on teiste kataloogide alamkataloogid (nt /var ja /var/log). Uutils näitab iga eraldi katalooge tegelikku suurust ning lõpprea summas kõigi näidatud kataloogide suurust. GNU Coreutils kuvab lõppreal tegeliku suuruse, mille näidatud kataloogid ketas võtavad, kuid eraldi loendis näitab see iga katalooge suuruseid, vähendades alamkataloogide suurusi, mistõttu nende suurus on väiksem kui tegelik. Lisaks muutuvad GNU Coreutils ja Busybox esitavad väärtused sõltuvalt kataloogide järjestusest.
Näiteks, kui kontrollida kataloogide "/var/log" ja "/var" suurust, mille tegelikud suurused on vastavalt 1540 ja 35495 baiti, kuvab GNU Coreutils: du -smc /var/log /var 1540 /var/log 33955 /var # väiksem tegelikest 35495 total du -smc /var /var/log 35495 /var # näidatud ainult /var ja /var/log ei kuvata 35495 total
uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # rohkem kui tegelik, kuid vastab /var ja /var/log summa kokku du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # rohkem kui tegelik, kuid vastab /var ja /var/log summa
Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # vähem kui tegelik 35495 total du -smc /var /var/log 35495 /var # näidatud ainult /var, /var/log ei näidatud 35495 total
Allikas: opennet.ru
