Avalikustatud on projekti uutils coreutils 0.9.0 (Rust Coreutils) väljaanne, mis arendab GNU Coreutils paketi analooge, mis on kirjutatud Rust keeles. Coreutils hõlmab enam kui sada utiliiti, sealhulgas sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ja ls. Projekti eesmärk on luua platvormidevaheline alternatiivne teostus Coreutilsist, mis suudab töötada ka Windowsi, Redoxi ja Fuchsia platvormidel.
Rust Coreutils
on vaikimisi kasutusel Ubuntu 25.10 versioonis ja osaliselt Ubuntu 26.04 versioonis. Rust Coreutilsi kasutatakse ka AerynOS (Serpent OS) ja Apertis jaotustes (mille arendab ettevõte Collabora). Erinevalt GNU Coreutilsist on Rusti teostus litsentseeritud MIT lubadega, mitte GPLi autoriõiguse litsentsiga. Samuti arendab sama arendajate meeskond Rustis kirjutatud analooge util-linux, diffutils, findutils, procps ja acl utiliidist ning programmide sed ja login.
Uues Rust Coreutils versioonis:
- GNU Coreutilsi testide kompleksi ühilduvuse tase on 90,58% (eelmine oli 94,74%). Edukalt sooritati 625 testi, mis on 5 vähem kui eelmisel versioonil (630). 56 testi ebaõnnestus (eelmine oli 21), üks test tõi esile vea ja 8 testi jäeti vahele (eelmine oli 14). Ühilduvuse taseme langust seletatakse testikomplekti uuendamisega GNU Coreutils 9.11 väljaandesse, kuhu on lisatud 25 uut testi.
- Zellici poolt läbiviidud auditiga tuvastati 44 haavatavust. Enamik haavatavusi on tingitud käitumise erinevusest GNU coreutils'iga või võistlusseisundist, mis võimaldab andmeid muuta vahetult pärast teabe kontrollimist, kuid enne nende operatsiooni sooritamist, näiteks asendada fail sümboolse lingiga kontrollimise lõppemise ja operatsiooni alustamise vahel. Root-õigustega süsteemiskriptides cp, chmod ja mv kasutamise kontekstis võimaldavad sellised haavatavused kopeerida või üle kirjutada suvalisi faile. Haavatavuste kaitsmiseks on projektis kasutusele võetud moodul uucore::safe_copy. Haavatavustest on teave avaldatud eraldi uudises.
- Keeratakse edasi utiliitide tõlget rusti crate-paketi rustix asemel nix crate-paketti. Rustix-i on tõlgitud järgmised utiliidid: id, tr, timeout, sort, wc, tail, cp, who ja factor.
Koodist on eemaldatud unsafe-operatsioone erinevates utiliitides. - Cat, wc, head, tail, yes, cp, tee ja unexpand utiliitides on kasutatud sisend-/väljund töötlejat, mis põhinevad süsteemikõnedel splice(), tee() ja pipe(), mis võimaldasid kiirendada tööd, välistades andmete liigse kopeerimise pubufferite vahel.
- Parandatud ühilduvus GNU Coreutils utiliitidega numfmt, date, tr, cksum, factor, head, stat ja sort.
- Utiliitides ln, dd, mktemp ja tty on lisatud WebAssembly formaadi toetamine ja WASI (WebAssembly System Interface) kasutamine.
- Kohandatud funktsioone, kõrvaldatud probleemid ja lisatud puuduvaid valikuid utiliitidele cat, chroot, cksum, cp, date, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.
cp, kuupäev, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.
Allikas: opennet.ru
