Megjelent az uutils coreutils 0.9.0 (Rust Coreutils) projekt, amely a Rust nyelven írt GNU Coreutils csomag analógját fejleszti. A coreutils több mint 100 utility-t tartalmaz, beleértve a sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln és ls parancsokat. A projekt célja egy platformok közötti alternatív Coreutils megvalósítás létrehozása, amely többek között Windows, Redox és Fuchsia platformokon is működik.
Rust Coreutils
alapértelmezetten elérhető az Ubuntu 25.10 kiadásban és részben az Ubuntu 26.04-ben. A Rust Coreutils az AerynOS (Serpent OS) és az Apertis (a Collabora által fejlesztett) disztribúciókban is használatos. A GNU Coreutils-al ellentétben a Rust-ra írt megvalósítás MIT engedéllyel kerül forgalmazásra, nem pedig GPL copyleft engedéllyel. Ezen kívül ugyanaz a fejlesztőcsapat dolgozik a Rust nyelven írt util-linux, diffutils, findutils, procps és acl utility-k, valamint a sed és login programok analógjain.
Az új Rust Coreutils verzióban:
- A GNU Coreutils referencia tesztcsomaggal való kompatibilitás szintje 90.58% (volt 94.74%). 625 teszt sikeresen teljesült, ami 5-tel kevesebb, mint az előző verzióban (630). 56 teszt megbukott (volt 21), egy teszt hibaüzenetet eredményezett, 8 tesztet kihagytak (volt 14). A kompatibilitási szint csökkenése a tesztcsomag frissítésének következménye az GNU Coreutils 9.11 kiadáshoz, amelyhez 25 új teszt került hozzáadásra.
- 44 sebezhetőséget javítottak, amelyeket a Zellic által végzett audit során észleltek. A legtöbb sebezhetőséget a GNU coreutils-szal való összehangolás hiánya vagy versenyhelyzetek okozzák, amelyek lehetővé teszik az adatok megváltoztatását a hitelesítés ellenőrzése után, de a művelet végrehajtása előtt, például amikor a fájlt egy szimbolikus hivatkozásra cserélik a vizsgálat befejezése és a művelet elkezdése között. A cp, chmod és mv utility-k root jogokkal futó rendszerparancsfájlokban előforduló ilyen sebezhetőségek lehetővé teszik tetszőleges fájlok másolását vagy felülírását. A versenyhelyzetek miatt a projektben a uucore::safe_copy modult alkalmazzák a sebezhetőségek ellen. A sebezhetőségekről részletes tájékoztatás található egy külön hírben.
- A utility-k átkonvertálása a rustix crate csomagra a nix crate csomag helyett folytatódik. Az id, tr, timeout, sort, wc, tail, cp, who és factor utility-k át lettek alakítva rustix-ra.
Kód tisztítás történt az unsafe műveletek eltávolítása érdekében különböző utility-kben. - A cat, wc, head, tail, yes, cp, tee és unexpand segédprogramok beépített bemeneti/kimeneti kezelőket használnak a splice(), tee() és pipe() rendszerhívások alapján, ami felgyorsította a működést a felesleges adatok másolásának kiküszöbölésével a pufferek között.
- Javították a GNU Coreutils numfmt, date, tr, cksum, factor, head, stat és sort segédprogramok kompatibilitását.
- A ln, dd, mktemp és tty segédprogramokba beépítették a WebAssembly formátumú összeépítést és a WASI (WebAssembly System Interface) interfész használatát.
- Bővítették a funkciókat, megoldották a problémákat, és hozzáadták a hiányzó opciókat a 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.
Forrás: opennet.ru
