Wydanie zestawu podstawowych narzędzi systemowych GNU Coreutils 9.0

Dostępna jest stabilna wersja zestawu podstawowych narzędzi systemowych GNU Coreutils 9.0, która obejmuje programy takie jak sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls itp. Znacząca zmiana numeru wersji wynika ze zmian w zachowaniu niektórych narzędzi.

Kluczowe zmiany:

  • Narzędzia cp i install podczas kopiowania domyślnie przełączają się na tryb kopiowania przy zapisie (używając ioctl ficlone do udostępniania danych w wielu plikach zamiast tworzenia pełnego klonu).
  • Narzędzia cp, install i mv wykorzystują mechanizmy dostarczone przez system w celu przyspieszenia operacji kopiowania (używając wywołania systemowego copy_file_range do wykonywania kopiowania wyłącznie po stronie jądra, bez przesyłania danych do pamięci procesowej w przestrzeni użytkownika).
  • Narzędzia cp, install i mv używają prostszego i bardziej przenośnego wywołania lseek+SEEK_HOLE zamiast ioctl+FS_IOC_FIEMAP do wykrywania pustych przestrzeni w plikach.
  • Narzędzie wc wykorzystuje instrukcje AVX2, aby przyspieszyć obliczanie liczby linii. Podczas korzystania z tej optymalizacji prędkość toalety wzrosła 5-krotnie.
  • Do narzędzia cksum dodano opcję „-a” (--algorithm), umożliwiającą wybranie algorytmu mieszającego. Aby przyspieszyć obliczanie sum kontrolnych w narzędziu cksum, podczas korzystania z trybu „--algorithm=crc” używane są instrukcje pclmul, które przyspieszają obliczenia nawet 8 razy. W systemach bez obsługi pclmul tryb crc jest 4 razy szybszy. Pozostałe algorytmy mieszające (sum, md5sum, b2sum, sha*sum, sm3, itp.) są implementowane poprzez wywoływanie funkcji libcrypto.
  • W narzędziach md5sum, cksum, sha*sum i b2sum użycie flagi „--check” pozwala na obecność sekwencji CRLF na końcu linii sumy kontrolnej. „cksum --check” zapewnia automatyczne wykrywanie użytego algorytmu mieszającego.
  • Narzędzie ls dodało opcję „--sort=width” do sortowania według długości nazwy pliku, a także opcję „--zero” do kończenia każdej linii znakiem zerowym. Zwrócono stare zachowanie, powodując wyświetlenie pustego katalogu zamiast błędu podczas przetwarzania katalogu zdalnego.
  • Narzędzie df implementuje wykrywanie sieciowych systemów plików acfs, coda, fhgfs, gpfs, ibrix, ocfs2 i vxfs.
  • Do narzędzi stat i tail dodano obsługę typów systemów plików „devmem”, „exfat”, „secretmem”, „vboxsf” i „zonefs”. W przypadku „vboxsf” do śledzenia zmian w „tail -f” służy odpytywanie, a w pozostałych przypadkach służy inotify.

Źródło: opennet.ru

Dodaj komentarz