Išleistas „uutils coreutils 0.11.0“ (Rust Coreutils) projektas, GNU Coreutils paketo, parašyto Rust kalba, kūrinys. „coreutils“ apima daugiau nei 100 įrankių, įskaitant „sort“, „cat“, „chmod“, „chown“, „chroot“, „cp“, „date“, „dd“, „echo“, „hostname“, „id“, „ln“ ir „ls“. Projekto tikslas – sukurti kelių platformų „Coreutils“ alternatyvą, galinčią veikti tokiose platformose kaip Windows, Redoksas ir fuksija.
„Rust Coreutils“ leidime įjungtas pagal numatytuosius nustatymus Ubuntu 25.10 ir iš dalies Ubuntu Balandžio 26.04 d. „Rust Coreutils“ taip pat naudojama „AerynOS“ („Serpent OS“) ir „Apertis“ (sukurta „Collabora“) distribucijose. Skirtingai nuo „GNU Coreutils“, „Rust“ diegimas platinamas pagal leidžiamąją MIT licenciją, o ne pagal autorių teisių saugomą GPL licenciją. Be to, ta pati kūrėjų komanda kuria „Rust“ pagrindu sukurtus „util-linux“, „diffutils“, „findutils“, „procps“ ir „acl“ programų rinkinių, taip pat „sed“ ir „login“ programų atitikmenis.
Naujoje „Rust Coreutils“ versijoje:
- Suderinamumo su „GNU Coreutils“ etalonų rinkiniu rodiklis buvo 95.33 % (sumažėjo nuo 94.44 %). Sėkmingai atlikti 653 testai, 8 daugiau nei ankstesnėje versijoje (645). 22 testai nepavyko (sumažėjo nuo 29), o 15 testų buvo praleisti (sumažėjo nuo 15).
- Integruotas naujas diagnostikos modulis, pagrįstas „ariadne“ biblioteka. Jis rodo vaizdines klaidų ataskaitas, kai terminale paleidžiamos programos, paryškindamas komandinės eilutės argumentus, kurie sukėlė problemą. Klaidų vizualizavimas įjungtas šiose programose: 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 ir du. Diagnostikos ataskaitoms išjungti siūlomas aplinkos kintamasis UUTILS_DIAG.

- Profiliu pagrįstas optimizavimas (PGO) įjungiamas išleidžiamų versijų metu, generuojant optimalesnį kodą, pagrįstą programos vykdymo elgsenos analize. Kūrėjai apskaičiavo, kad kai kurių operacijų našumas padidėja iki 31 %.
- Našumo optimizavimas buvo įdiegtas cp (+32.93 %), join (2.5 karto greitesnis nei GNU, išjungus nereikalingus lokalių palyginimus), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt ir sort įrankių funkcijoms. Situacijos, kai operacijos buvo pastebimai lėtesnės nei GNU Coreutils, dabar laikomos klaidomis.
- Ištaisyti kai kurie neatitikimai su GNU Coreutils, susiję su pr, numfmt, join, id, mkdir, fold, sort, stat, od ir date paslaugų veikimu.
- Įdiegtos GNU Coreutils specifinės parinktys: „uname -A“, „uname --all-labeled“, „cut -F“, „cut --whitespace-delimited“, „pr --columns“, „pr --join-lines“, „pr -f“.
- Sustiprintos „mv“, „cp“, „rm“, „chmod“ ir „stdbuf“ paslaugų programos, siekiant išvengti pažeidžiamumų, kuriuos sukelia lenktynių sąlygos, kurios gali leisti modifikuoti duomenis patikrinus informaciją, bet prieš atliekant operaciją. Pavyzdžiui, failas gali būti pakeistas simboline nuoroda tarp patikrinimo užbaigimo ir operacijos pradžios. Naudojant „cp“, „chmod“ ir „mv“ paslaugų programas sistemos scenarijuose, vykdomuose su root teisėmis, tokios pažeidžiamos programos gali leisti nukopijuoti arba perrašyti savavališkus failus.
- Buvo atlikti darbai, siekiant pašalinti gedimus „split“, „yes“, „sort“, „stat“, „csplit“, „ls“, „od“, „nl“, „pr“, „csplit“, „dd“, „touch“, „tail“, „tac“ ir „who“ paslaugų programose.
- Įdiegti „kill“ ir „uptime“ paslaugų variantai, skirti Windows.
- Nebepalaikomi „byteorder“, „same-file“, „filetime“, „winapi-util“, „file_diff“, „mockstream“, „binary-heap-plus“, „compare“, „arrayref“ (neseniai pažeista), „exacl“ ir „dns-lookup“ paketai, juose naudojamos funkcijos iš „std“, „rustix“ ir „windows-sys“ bibliotekų.
- „ls“ ir „comm“ programos dabar palaiko lokalės savybę „collation“, kuri leidžia atlikti palyginimus atsižvelgiant į simbolių reikšmę (pavyzdžiui, diakritiniai ženklai palyginimo metu gali būti ignoruojami).
- Patobulintas daugiabaičių simbolių apdorojimas nl ir cut programose.
Be to, „Canonical“ išleido du eksperimentinius konteinerio atvaizdus, skirtus „Rust“ kūrimui, kurie atitinka „Dev Container“ specifikaciją. Pirmajame atvaizde yra „Rust 1.93“, „Cargo“, „rust-analyzer“, „Clippy“, „Rustfmt“, „Miri“ (interpreteris neapibrėžtam elgesiui aptikti), „cargo-auditable“ (versijos auditas), „GCC“, „Clang“, LLD, „pkg-config“, „Just“, „Git“, „Vim“, „Helix“, „Ripgrep“, „Hyperfine“, „Bacon“, „xh“ ir „curl“. Antrajame atvaizde taip pat yra kūrimo paketai. Ubuntu: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.
Šaltinis: opennet.ru

