Выпуск набора базовых системных утилит GNU Coreutils 9.0

Доступна стабильная версия набора базовых системных утилит 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 ускорен в 4 раза. Остальные алгоритмы хэширования (sum, md5sum, b2sum, sha*sum, sm3 и т.п.) реализованы путём вызова функций 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

Добавить комментарий