Stabilní verze sady základních systémových utilit GNU Coreutils 9.0 je nyní k dispozici, zahrnuje programy jako sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls atd. Významná změna čísla verze je dána změnami v chování některých utilit.
Klíčové změny:
- Ve utilitách cp a install je při kopírování ve výchozím nastavení použit režim copy-on-write (využívající ioctl ficlone pro sdílení dat mezi více soubory namísto vytvoření úplného klonu).
- Ve utilitách cp, install a mv jsou využívány systémem poskytované mechanismy pro zrychlení operací kopírování (využívající systémový volání copy_file_range k provádění kopírování pouze na straně jádra bez předávání dat do paměti procesu v adresním prostoru uživatele).
- Ve utilitách cp, install a mv je pro určení prázdných míst v souborech použit jednodušší a přenosný volání lseek+SEEK_HOLE místo ioctl+FS_IOC_FIEMAP.
- Ve utilitě wc jsou pro zrychlení počítání řádků využívány instrukce AVX2. Při použití této optimalizace se rychlost wc zvýšila 5krát.
- Do utility cksum byla přidána volba „-a“ (—algorithm) pro výběr hashovacího algoritmu. Pro urychlení výpočtu kontrolních součtů v utilitě cksum jsou využívány instrukce pclmul při použití režimu „—algorithm=crc“, což umožnilo zrychlit výpočty až 8krát. Na systémech bez podpory pclmul je režim crc zrychlen 4krát. Ostatní hashovací algoritmy (sum, md5sum, b2sum, sha*sum, sm3 atd.) jsou implementovány voláním funkcí libcrypto.
- Ve utilitách md5sum, cksum, sha*sum a b2sum je povoleno mít sekvenci CRLF na konci řádku s kontrolním součtem při použití příznaku „—check“. V „cksum —check“ je zajištěno automatické rozpoznání použitých hashovacích algoritmů.
- Do utility ls byla přidána volba „—sort=width“ pro třídění podle délky názvu souboru, a také volba „—zero“ pro ukončení každého řádku nulovým symbolem. Bylo vráceno staré chování vedoucí k zobrazení prázdného adresáře místo chyby při zpracování odstraněného adresáře.
- V utilitě df bylo implementováno určování síťových souborových systémů acfs, coda, fhgfs, gpfs, ibrix, ocfs2 a vxfs.
- Do utilit stat a tail byla přidána podpora typů FS "devmem", "exfat", "secretmem", "vboxsf" a "zonefs". Pro "vboxsf" je pro sledování změn v "tail -f" využito polling, zatímco pro ostatní typy je použit inotify.
Zdroj: opennet.ru
