Die stabile Version des GNU Coreutils-Pakets 9.0 ist verfügbar, das Programme wie sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls usw. enthält. Der signifikante Versionswechsel ist auf Änderungen im Verhalten einiger Dienstprogramme zurückzuführen.
Wichtige Änderungen:
- In den Dienstprogrammen cp und install wird standardmäßig der Copy-on-Write-Modus verwendet (Nutzung von ioctl ficlone für das Sharing von Daten zwischen mehreren Dateien anstelle der Erstellung eines vollständigen Klons).
- In den Dienstprogrammen cp, install und mv werden die vom System bereitgestellten Mechanismen zur Beschleunigung von Kopiervorgängen genutzt (einschließlich der Verwendung des Systemaufrufs copy_file_range, um das Kopieren nur auf der Kernel-Seite durchzuführen, ohne Daten in den Speicher des Benutzerprozesses zu übertragen).
- In den Dienstprogrammen cp, install und mv wird ein einfacherer und tragbarer Aufruf lseek+SEEK_HOLE zur Bestimmung von Lücken in den Dateien verwendet, anstelle von ioctl+FS_IOC_FIEMAP.
- Im Dienstprogramm wc werden zur Beschleunigung der Zeilenanzahlzählung AVX2-Instruktionen verwendet. Bei Verwendung dieser Optimierung hat sich die Geschwindigkeit von wc um das Fünffache erhöht.
- In das cksum-Dienstprogramm wurde die Option „-a“ (—algorithm) zur Auswahl des Hash-Algorithmus eingefügt. Zur Beschleunigung der Berechnung von Prüfziffern werden im cksum-Dienstprogramm pclmul-Anweisungen verwendet, wenn der Modus „—algorithm=crc“ aktiviert ist, was die Berechnung bis zu achtmal schneller macht. Auf Systemen ohne pclmul-Unterstützung wird der crc-Modus viermal beschleunigt. Andere Hash-Algorithmen (sum, md5sum, b2sum, sha*sum, sm3 usw.) werden durch Aufruf von Funktionen der libcrypto implementiert.
- In den Dienstprogrammen md5sum, cksum, sha*sum und b2sum wird bei Verwendung des Flags „—check“ eine CRLF-Sequenz am Ende der Prüfziffernzeile erlaubt. In „cksum —check“ erfolgt die automatische Erkennung des verwendeten Hash-Algorithmus.
- Im Dienstprogramm ls wurde die Option „—sort=width“ zum Sortieren nach Dateinamenlänge sowie die Option „—zero“ zum Beenden jeder Zeile mit einem Nullzeichen hinzugefügt. Das alte Verhalten wurde wiederhergestellt, sodass eine leere Directory anstelle eines Fehlers angezeigt wird, wenn ein entferntes Verzeichnis verarbeitet wird.
- Im Dienstprogramm df wurde die Erkennung von Netzdateisystemen wie acfs, coda, fhgfs, gpfs, ibrix, ocfs2 und vxfs implementiert.
- Die Utilities stat und tail unterstützen jetzt die Dateisystemtypen „devmem“, „exfat“, „secretmem“, „vboxsf“ und „zonefs“. Für „vboxsf“ wird beim Verfolgen von Änderungen in „tail -f“ Polling verwendet, während für die anderen inotify zum Einsatz kommt.
Quelle: opennet.ru
