Rust Coreutils 0.4 kiadás: Eltérések a Du Utility viselkedésében az Uutils és a GNU Coreutils programokban

Megjelent az uutils coreutils 0.4.0 (Rust Coreutils) projekt, a GNU Coreutils csomag Rust nyelven írt fejlesztése. A coreutils több mint 100 segédprogramot tartalmaz, többek között a sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln és ls segédprogramokat. A projekt célja egy többplatformos alternatíva létrehozása a Coreutils helyett, amely képes futni olyan platformokon, mint a Windows, Redox és fukszia.

A Rust Coreutils alapértelmezés szerint engedélyezve van a kiadásban. Ubuntu 25.10-es verzió, és az AerynOS (Serpent OS) és az Apertis (a Collabora fejlesztése) disztribúciókban használatos. A GNU Coreutils-szal ellentétben a Rust implementációja a megengedő MIT licenc alatt kerül terjesztésre a copyleft GPL helyett. Ugyanez a fejlesztőcsapat fejleszti az util-linux, diffutils, findutils és procps segédprogramcsomagok Rust-alapú megfelelőit, valamint a sed és login programokat is.

A Rust Coreutils új verziójában:

  • Javított kompatibilitás a GNU Coreutils benchmark csomaggal, amely 544 teszten teljesített, 12-vel többet, mint az előző verzió (532). Ötvenhat (68) teszt sikertelen volt, és 33 (33) tesztet kihagytak. Az állítólagos kompatibilitási arány 85.80% (korábban 83.91%).
  • Az adat segédprogram javította a GNU date kompatibilitását az időzónák kezelésekor (hozzáadott lehetőség rövidített időzónanevek megadására a --set kapcsolóban).
  • A factor segédprogram a num_prime csomagot használja az u64/u128 típusok faktorizációjának felgyorsítására.
  • A tsort segédprogramban a DFS bejárási algoritmus implementációját rekurzívról iteratív működési módszerre állították át a verem túlcsordulás elkerülése érdekében.
  • A cksum segédprogram mostantól támogatja az sha2 és sha3 hasheket. Hozzáadtunk benchmarkokat a cksum teljesítményének nyomon követéséhez. A hashsum funkció átkerült a cksumba.
  • Kijavítottunk egy verem túlcsordulást az mkdir segédprogramban, ami összeomlást okozhatott nagyszámú (200+) beágyazott könyvtár létrehozásakor.
  • Az stdbuf és az uptime segédprogramok mostantól támogatják az OpenBSD platformot.
  • Továbbfejlesztett fordítás és tesztelés a FreeBSD platformon.
  • Általános fejlesztéseket hajtottak végre a hordozhatóság javítása érdekében.
  • Bővített képességek, kijavított hibák és hiányzó opciók a base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime és uudoc segédprogramokhoz.

Ezenkívül megfigyelhető az eltérés a „du” segédprogram viselkedésében az uutils és a GNU Coreutils készletekhez képest, amely az átmenet után jelentkezett. Ubuntu 25.10 az uutils-on. A fejlesztők még nem döntöttek arról, hogy hibaként kezelik-e ezt az eltérést, mivel az uutils viselkedése logikus, és a GNU Coreutils tesztkészlet nem mutat problémákat. A GNU Coreutils-szal való inkompatibilitásokat azonban hibaként kell kezelni, és a Busybox viselkedése megegyezik a GNU Coreutils viselkedésével.

Eltérő viselkedés figyelhető meg, ha több könyvtárat adunk meg argumentumként a "du" segédprogramnak, olyan helyzetekben, amikor egyes könyvtárak más könyvtárak alkönyvtárai (például /var és /var/log). Az Uutils megjeleníti az egyes könyvtárak tényleges méretét, majd az összes megadott könyvtár teljes méretét az összesítő sorban. A GNU Coreutils az összesítő sorban megjeleníti a megadott könyvtárak tényleges lemezméretét, de egy külön listában megjeleníti az egyes könyvtárak méretét a beágyazott könyvtárak nélkül, ami miatt azok mérete kisebbnek tűnik a tényleges méretnél. Továbbá a GNU Coreutils és a Busybox által megjelenített értékek a könyvtárak megadásának sorrendjétől függően változnak.

Például a "/var/log" és "/var" könyvtárak méretének ellenőrzésekor, amelyek tényleges mérete 1540 és 35495 bájt, a GNU Coreutils a következőt írja ki: du -smc /var/log /var 1540 /var/log 33955 /var # kevesebb, mint a tényleges 35495 összesen du -smc /var /var/log 35495 /var # csak a /var-t mutatja, a /var/log-ot nem 35495 összesen

Utulisban: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # nagyobb, mint a tényleges, de megegyezik a /var és /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 összegével, de a /log összértéke nagyobb, mint a suvar

Busyboxban: du -smc /var/log /var 1540 /var/log 33955 /var # kevesebb a ténylegesnél 35495 összesen du -smc /var /var/log 35495 /var # csak a /var értéket mutatja, a /var/log 35495 total értéket nem

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster