A Rust-alapú uutils Coreutils 0.10 már 93,5%-ban kompatibilis a GNU-val

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A uutils projekt fejlesztői kiadták a Coreutils 0.10-et, amely az egyik eddigi legjelentősebb kompatibilitási fejlesztés a Rust-alapú parancssori eszközkészlethez. A cél továbbra is az, hogy a GNU Coreutils teljes értékű, közvetlenül helyettesíthető alternatívája legyen.

A projekt legfrissebb teszteredményei szerint a uutils Coreutils mostanra 690 GNU tesztből 645-öt teljesít, így a sikerességi arány a 0.9-es verzió 90,58 százalékáról 93,48 százalékra nőtt. A sikertelen tesztek száma közben 56-ról 29-re csökkent.

A mostani frissítés számos, széles körben használt segédprogram viselkedését módosítja, többek között a date, du, head, tail, install, ls, nproc, numfmt, od, pr, stat, sum és truncate esetében. Sok helyen javult a hibaüzenetek minősége is: a rendszer most következetesebben tünteti fel az érintett fájl nevét és az eredeti operációs rendszer hibát, ahelyett hogy egy általános leírást adna.

A 0.10-es verzióban a fejlesztők folytatták a time-of-check-to-time-of-use (TOCTOU) versenyhelyzetek felszámolását. A változtatások érintik például a touch, mkfifo, head, split és chcon segédprogramokat. A chmod és chown rekurzív műveletei ellenállóbbá váltak a szimbolikus linkek által okozott ciklusokkal és a --preserve-root megkerülésére tett kísérletekkel szemben.

A cp segédprogram már nem fog belépni egy célként megadott alkönyvtárba, ha azt szimbolikus link jelöli. Az mv további védelmi mechanizmusokat kapott a fájlrendszerek közötti műveletekhez és a biztonsági mentések során. Emellett a mkdir, mkfifo és mknod által létrehozott SELinux címkéket már a fájlrendszer-objektum létrehozásakor rendeli hozzá a rendszer, nem egy későbbi lépésben.

Egy másik javítási csomag olyan problémákat kezel, mint a /dev/full-hoz hasonló eszközökre íráskor fellépő kimeneti hibák, a szélsőséges argumentumok miatt bekövetkező egész túlcsordulások, a többbyte-os bemenetek érvénytelen karakterhatárai és a túlzott memóriafoglalás. Az expr elemzője mostantól iteratív megközelítést használ, így elkerüli a mélyen egymásba ágyazott kifejezések okozta verem-túlcsordulásokat.

A felhasználók számára elérhető új funkciók egyike az mv --exchange, amellyel két fájlrendszer-útvonal atomikusan felcserélhető. Az install segédprogram mostantól támogatja a --reflink kapcsolót, így copy-on-write klónok hozhatók létre az ezt támogató fájlrendszereken, és az install -C együtt használható a --preserve-timestamps opcióval.

A frissítés része az rm --one-file-system is, amely megakadályozza, hogy a rekurzív törlés átlépjen másik fájlrendszerre. Rövidítésként bekerült a -O opció a cut --output-delimiter helyett. A checksum segédprogramok pedig OpenSSL backend használatával érhetnek el jobb teljesítményt.

Számos ismert eszköznél javult a teljesítmény: a tee mostantól gyors, zero-copy módban is működhet, a cat áteresztőképességét optimalizálták, és a cp által készített, nem reflinkelt másolatoknak is gyorsabbnak kell lenniük. Az eszközök közötti másolások szintén kihasználják a továbbfejlesztett másolási útvonalat.

A többplatformos támogatás bővítése tovább folytatódik. A uutils Coreutils 0.10 kiadás már támogatja a wasm32-wasip2 célt, Windows alatt pedig a felhasználók egy használható timeout parancsot kapnak, valamint működő fájlkövetést a tail -f és tail -F kapcsolókkal. Windowsra bekerült a sparse másolatok támogatása is a cp parancsba, illetve javították a checksum számítást a CRLF sorelválasztók átalakításával kapcsolatban.

További részletekért nézd meg a changelogot.