
Az uutils nyílt forráskódú projekt továbbra is dolgozik a széles körben használt GNU Coreutils segédprogramok Rust programozási nyelven belüli újbóli megvalósításán a jobb biztonság érdekében. A "coreutils" egy olyan csomag vagy gyűjtemény a UNIX és UNIX-szerű operációs rendszerekhez (például Linux) tervezett alapvető parancsokból álló programokat tartalmaz. Ezek a parancsok a rendszer alapvető működését segítik elő, és számos fontos funkciót biztosítanak a felhasználók és a rendszergazdák számára. A Rust Coreutils a hagyományos GNU Coreutils parancssori eszközök Rust nyelvű újraírása, amely célja a nagyobb teljesítmény (performance), biztonság és modern Linux disztribúciókhoz való könnyebb alkalmazkodás. Az eszközcsomag tartalmazza a legismertebb parancsokat, mint például cp, stty vagy base64, de Rust nyelvi implementációval, ami gyorsabb és stabilabb működést eredményezhet. A Rust Coreutils 0.2.2 frissítése újabb teljesítményjavulást hoz a Linux rendszerek parancssoros eszközeiben. Különösen a base64 parancs futtatása vált gyorsabbá, így már a GNU Coreutils verzióját is felülmúlja, miközben a stabilitás és platform-kompatibilitás is tovább erősödött.
A 0.2.2-es verzió újdonságai
A Rust Coreutils 0.2.2 kiadása főként infrastruktúra-frissítéseket és hibajavításokat tartalmaz, amelyek célja a megbízhatóbb terjesztés és telepítés különböző platformokon. A legfontosabb újdonságok a következők:
- Gyorsabb base64 parancs: A Rust Coreutils 0.2.2 egyik legizgalmasabb újítása a base64 parancs teljesítményének javítása. Ehhez a fejlesztők a base64-simd Rust csomagot használták, amely a modern CPU-k SIMD (Single Instruction, Multiple Data) képességeit kihasználva jelentősen csökkenti a futási időt.
- Egy benchmark szerint az előző verzió 5,998 másodperc alatt futott le, míg az új 3,146 másodperc alatt. Ez gyakorlatilag a felére csökkenti a futási időt, és így a GNU Coreutils base64 parancsát is felülmúlja, amely 4,901 másodpercet vett igénybe.
- Hibajavítások: Több kisebb, de fontos javítás is bekerült. Például elkerülhetővé vált a stty parancs összeomlása, valamint a cp parancs hibája, amikor a jelenlegi könyvtárat próbálta egy meglévő könyvtárba másolni.
- Frissített Rust függőségek: A kiadás részeként több Rust könyvtár is frissítésre került, így a csomag hosszú távon is stabilabb és karbantarthatóbb.
Technikai részletek a base64 gyorsításról
A base64-simd Rust crate támogatja a következő architektúrákat és utasításkészleteket: SSE4.1, AVX2, AVX-512, ARM NEON, AArch64 NEON és WASM SIMD128. Ez lehetővé teszi, hogy a base64 parancs különböző hardvereken optimálisan kihasználja a párhuzamos feldolgozást, így a nagyobb fájlok és adathalmazok dekódolása és kódolása gyorsabbá válik. A Rust Coreutils fejlesztői a pull request szerint jelentős teljesítményjavulást értek el a base64 parancs esetében. Egy mintateszt alapján az előző kiadás 5,998 másodpercet vett igénybe, míg az új 0.2.2-es verzió mindössze 3,146 másodperc alatt végezte el ugyanazt a feladatot. Ez gyakorlatilag a felére csökkenti a futási időt, ami önmagában is kiemelkedő eredmény.
Program | Átlagos idő (s) | Szórás (σ) | Felhasználói idő (User) | Rendszer idő (System) | Minimum idő (s) | Maximum idő (s) | Futások száma | Sebesség /usr/bin/base64-hoz képest |
---|---|---|---|---|---|---|---|---|
/usr/bin/base64 /tmp/oneline_4G.txt | 4,901 | 0,054 | 3,904 | 0,996 | 4,824 | 4,971 | 10 | 1× |
./target/release/coreutils base64 /tmp/oneline_4G.txt | 3,146 | 0,037 | 1,208 | 1,937 | 3,096 | 3,196 | 10 | 1.56× (leggyorsabb) |
./target/release/coreutils.prev base64 /tmp/oneline_4G.txt | 5,998 | 0,055 | 4,077 | 1,918 | 5,882 | 6,082 | 10 | 0.52× (leglassabb) |
Még izgalmasabb, hogy az új Rust Coreutils verzió már a GNU Coreutils base64 parancsát is felülmúlja, amely átlagosan 4,901 másodperc alatt futott le. Így a Rust Coreutils 0.2.2 egyértelmű teljesítményelőnyt biztosít a hagyományos GNU Coreutils verzióval szemben.
A 0.2-es verzió újdonságai
A Rust Coreutils 0.2 verzió az első olyan kiadás, amely teljes körű nemzetköziesítést (internationalization) és lokalizációt (localization) kínál, valamint sokkal fejlettebb Unicode-kezelést valósít meg. Az újdonságok között szerepel az is, hogy a rendszer immár képes a nem UTF-8 kódolású elérési utak (non-UTF8 path support) kezelésére, ami nagy előrelépést jelent a különféle fájlrendszereket és környezeteket használó felhasználók számára.
A fejlesztők külön kiemelték a teljesítményjavulásokat, amelyeket a kiadás bejelentése is „masszívnak” nevezett. A leglátványosabb előrelépés a tr parancs esetében figyelhető meg: míg korábban a GNU Coreutils megfelelőjéhez képest közel tízszer lassabb volt, a 0.2-es kiadásban már 1,58-szor gyorsabb, ami körülbelül tizenötszörös teljesítménynövekedést jelent. Hasonlóan impozáns javulásokat értek el a sort, a cat és más alapvető eszközök esetében is, így a Rust-alapú megvalósítás már nem csupán a modern nyelvi környezet előnyeit hozza el, hanem komoly sebességbeli fölényt is.
A projekt tesztelési lefedettsége szintén nőtt: a Rust Coreutils mostanra 538 sikeres tesztet teljesít, ami 16-tal több, mint az előző kiadásban. Mindez azt jelzi, hogy a fejlesztők nemcsak a teljesítményre, hanem a stabilitásra és a kompatibilitásra is nagy hangsúlyt fektetnek.
A Rust Coreutils így egyre inkább bebizonyítja, hogy életképes alternatívája lehet a hagyományos GNU Coreutils csomagnak, különösen olyan környezetekben, ahol a modern programozási nyelv nyújtotta biztonság, a gyorsaság és a korszerű nemzetközi támogatás kiemelt szerepet kap.
Miért érdemes frissíteni?
A Rust Coreutils 0.2.2 a teljesítmény mellett a megbízhatóságot is növeli, és a modern Linux disztribúciókon garantáltan zökkenőmentes futást biztosít. A base64 parancs jelentős gyorsulása különösen hasznos lehet adatfeldolgozó szkriptekben és DevOps környezetekben, ahol minden másodperc számít. A frissített függőségek és hibajavítások pedig tovább erősítik a stabilitást. Letöltések és további részletek az uutils 0.2.2 kiadásáról ehhez a Rust-alapú Coreutils megoldáshoz a GitHub-on.
Mi az a coreutils és az uutils
Az "uutils" egy olyan projekt, ami a "coreutils" nevű szoftvercsomagot célozza meg a Linux rendszereken. Ezek a parancsok alapvetően elengedhetetlenek a fájlkezeléshez, rendszeradminisztrációhoz és általános szöveges műveletek végrehajtásához a UNIX rendszereken. A "coreutils" alapvető parancsokat tartalmaz, mint például a ls, cp, mv, rm, mkdir és még sok más, amelyek elengedhetetlenek a fájlkezeléshez és a rendszer működtetéséhez. Az "uutils" viszont ezeket a parancsokat modernizálni, optimalizálni és új funkciókkal kiegészíteni próbálja, hogy hatékonyabb legyen és több lehetőséget nyújtson a felhasználóknak. Ez egy nyílt forráskódú projekt, amely több fejlesztő közreműködésével folyamatosan fejlődik.
A Rust nyelv használata elsősorban a memóriabiztonsági előnyök miatt népszerű. A uutils fejlesztői szerint a közösség egyre inkább támogatja ezeket az újraírásokat, és úgy vélik, hogy ezzel megkönnyíthetik az új generáció belépését a fejlesztői világba, mivel a C nyelvű fejlesztők egyre ritkábbak lesznek.
A projekt részletei, valamint a FOSDEM 2025 prezentáció anyagai a hivatalos forrásokban érhetők el.
