A stable version of the GNU Coreutils basic system utility suite 9.0 is available, which includes programs such as sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc. The significant change in the version number is due to changes in the behavior of some utilities.
Key changes:
- In the cp and install utilities, the copy-on-write mode is enabled by default when copying (using ioctl ficlone for shared data in multiple files instead of creating a full clone).
- The cp, install, and mv utilities make use of system-provided mechanisms to accelerate copy operations (using the copy_file_range system call to perform the copying solely on the kernel side without transferring data to the user-space process's memory).
- In the cp, install, and mv utilities, a simpler and more portable lseek+SEEK_HOLE call is used to determine gaps in files instead of ioctl+FS_IOC_FIEMAP.
- In the wc utility, AVX2 instructions are used to speed up the counting of lines. With this optimization, the speed of wc has increased fivefold.
- The cksum utility has been enhanced with the option “-a” (—algorithm) for selecting the hash algorithm. To speed up checksum calculations, pclmul instructions are utilized in the cksum utility when using the “—algorithm=crc” mode, allowing calculations to be accelerated up to 8 times. On systems without pclmul support, the crc mode is sped up by 4 times. Other hash algorithms (sum, md5sum, b2sum, sha*sum, sm3, etc.) are implemented by calling libcrypto functions.
- In the md5sum, cksum, sha*sum, and b2sum utilities, the “—check” flag allows for a CRLF sequence at the end of the checksum line. In “cksum —check,” automatic detection of the used hash algorithm is provided.
- In the ls utility, the “—sort=width” option has been added for sorting by file name length, as well as the “—zero” option to terminate each line with a null character. The old behavior has been restored, leading to the display of an empty directory instead of an error when processing a deleted directory.
- In the df utility, network file systems such as acfs, coda, fhgfs, gpfs, ibrix, ocfs2, and vxfs have been implemented.
- Support for FS types “devmem,” “exfat,” “secretmem,” “vboxsf,” and “zonefs” has been added to the stat and tail utilities. For “vboxsf,” polling is used to monitor changes in “tail -f,” while inotify is used for others.
Source: opennet.ru
