Доступна стабільна версія набору базових системних утиліт GNU Coreutils 9.0, до складу якого входять такі програми, як sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls і т.д. Значна зміна номера версії пояснюється наявністю змін у поведінці деяких утиліт.
Ключові зміни:
- В утилітах cp і install за умовчанням при копіюванні задіяно режим copy-on-write (використання ioctl ficlone для спільного використання даних у кількох файлах замість створення повного клону).
- В утилітах cp, install і mv задіяні механізми прискорення операцій копіювання, що надаються системою (використання системного виклику copy_file_range для виконання копіювання тільки на стороні ядра без передачі даних в пам'ять процесу в просторі користувача).
- В утилітах cp, install і mv для визначення порожнеч у файлах задіяний більш простий виклик lseek+SEEK_HOLE замість ioctl+FS_IOC_FIEMAP.
- В утиліті wc для прискорення підрахунку рядків задіяні інструкції AVX2. З використанням даної оптимізації швидкість wc зросла 5 раз.
- В утиліту cksum додано опцію "-a" (-algorithm) для вибору алгоритму хешування. Для прискорення обчислення контрольних сум в утиліті cksum задіяні інструкції pclmul під час використання режиму «algorithm=crc», що дозволили прискорити обчислення до 8 разів. На системах без підтримки pclmul режим crc прискорено вчетверо. Інші алгоритми хешування (sum, md4sum, b5sum, sha*sum, sm2 тощо) реалізовані шляхом виклику функцій libcrypto.
- В утилітах md5sum, cksum, sha*sum та b2sum при використанні прапора «-check» дозволено наявність послідовності CRLF в кінці рядка з контрольною сумою. У cksum-check забезпечено автоматичне визначення використаного алгоритму хешування.
- В утиліті ls додано опцію «—sort=width» для сортування за довжиною імені файлу, а також опцію «—zero» для завершення кожного рядка нульовим символом. Повернено стару поведінку, яка призводить до показу порожньої директорії замість помилки у разі обробки віддаленого каталогу.
- В утиліті df реалізовано визначення мережевих файлових систем acfs, coda, fhgfs, gpfs, ibrix, ocfs2 та vxfs.
- В утиліти stat і tail додана підтримка типів ФС "devmem", "exfat", "secretmem", "vboxsf" та "zonefs". Для "vboxsf" для стеження за змінами в "tail-f" задіяний полінг, а для інших - inotify.
Джерело: opennet.ru