Utgivningen av projektet uutils coreutils 0.9.0 (Rust Coreutils) har offentliggjorts. Detta projekt utvecklar en alternativ implementation av GNU Coreutils, skriven i Rust. Coreutils innehÄller över hundra verktyg, inklusive sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln och ls. MÄlet med projektet Àr att skapa en plattformsoberoende alternativ implementation av Coreutils, bland annat för att fungera pÄ Windows, Redox och Fuchsia.
Rust Coreutils
anvÀnds som standard i versionen av Ubuntu 25.10 och delvis i Ubuntu 26.04. Rust Coreutils tillÀmpas Àven i distributionerna AerynOS (Serpent OS) och Apertis (som utvecklas av Collabora). Till skillnad frÄn GNU Coreutils distribueras Rust-implementationen under den permissiva MIT-licensen, istÀllet för copyleft-licensen GPL. Dessutom utvecklar samma team av utvecklare Rust-baserade alternativ till util-linux, diffutils, findutils, procps och acl, samt programmen sed och login.
I den nya versionen av Rust Coreutils:
- KompatibilitetsnivÄn med den referenskompilationen av GNU Coreutils var 90.58% (tidigare 94.74%). 625 tester genomfördes framgÄngsrikt, vilket Àr 5 fÀrre Àn i den föregÄende versionen (630). 56 tester misslyckades (tidigare 21), ett test resulterade i ett fel och 8 tester hoppades över (tidigare 14). Minskat kompatibilitetsnivÄ beror pÄ att testsviten har uppdaterats till versionen av GNU Coreutils 9.11, som inkluderar 25 nya tester.
- 44 sÄrbarheter har ÄtgÀrdats, upptÀckta genom en granskning utförd av företaget Zellic. De flesta sÄrbarheterna orsakades av avvikelser i beteendet i förhÄllande till GNU Coreutils eller race conditions, vilket tillÄter Àndring av data i perioden efter att integriteten har verifierats men före operationen utförs, till exempel att ersÀtta en fil med en symbolisk lÀnk under tiden mellan att kontrollen Àr klar och operationens pÄbörjande. I kontexten av att anvÀnda verktygen cp, chmod och mv i systemskript som körs med root-rÀttigheter, kan sÄdana sÄrbarheter tillÄta kopiering eller överskrivning av godtyckliga filer. För att skydda mot sÄrbarheter orsakade av race conditions har modulen uucore::safe_copy implementerats i projektet. Information om sÄrbarheterna publicerades i en separat nyhet.
- ĂversĂ€ttningen av verktygen till crate-paketet rustix fortsĂ€tter, istĂ€llet för crate-paketet nix. Verktygen id, tr, timeout, sort, wc, tail, cp, who och factor har översatts till rustix.
Koden har rensats frÄn osÀkra operationer i olika verktyg. - I verktygen cat, wc, head, tail, yes, cp, tee och unexpand anvÀnds in- och utdatahanterare baserade pÄ systemanropen splice(), tee() och pipe(), vilket har ökat prestandan genom att undvika onödig kopiering av data mellan buffertar.
- Kompatibiliteten med GNU Coreutils har förbÀttrats för verktygen numfmt, date, tr, cksum, factor, head, stat och sort.
- Verktygen ln, dd, mktemp och tty har fÄtt stöd för paketformatet WebAssembly och anvÀndning av WASI-grÀnssnittet (WebAssembly System Interface).
- Funktionerna har utökats, problem har ÄtgÀrdats och saknade alternativ har lagts till för verktygen 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.
KĂ€lla: opennet.ru
