La version stable du jeu d'utilitaires système de base GNU Coreutils 9.0 est disponible, comprenant des programmes tels que sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc. Le changement significatif de numéro de version est dû à des modifications dans le comportement de certains utilitaires.
Principaux changements :
- Dans les utilitaires cp et install, le mode copy-on-write est activé par défaut lors de la copie (utilisation de ioctl ficlone pour le partage de données entre plusieurs fichiers au lieu de créer un clone complet).
- Dans les utilitaires cp, install et mv, des mécanismes fournis par le système pour accélérer les opérations de copie sont utilisés (utilisation de l'appel système copy_file_range pour effectuer la copie uniquement côté noyau sans transférer de données dans la mémoire du processus dans l'espace utilisateur).
- Dans les utilitaires cp, install et mv, un appel plus simple et portable lseek+SEEK_HOLE est utilisé pour déterminer les trous dans les fichiers au lieu de ioctl+FS_IOC_FIEMAP.
- L'utilitaire wc utilise des instructions AVX2 pour accélérer le comptage des lignes. Avec cette optimisation, la vitesse de wc a été multipliée par 5.
- Une option «-a» (—algorithm) a été ajoutée à l'utilitaire cksum pour sélectionner l'algorithme de hachage. Des instructions pclmul sont utilisées dans l'utilitaire cksum pour accélérer le calcul des sommes de contrôle, permettant d'accélérer les calculs jusqu'à 8 fois en mode «—algorithm=crc». Sur les systèmes sans prise en charge de pclmul, le mode crc est accéléré de 4 fois. Les autres algorithmes de hachage (sum, md5sum, b2sum, sha*sum, sm3, etc.) sont implémentés en appelant des fonctions libcrypto.
- Dans les utilitaires md5sum, cksum, sha*sum et b2sum, le drapeau «—check» permet la présence d'une séquence CRLF à la fin de la ligne avec la somme de contrôle. Dans «cksum —check», l'algorithme de hachage utilisé est automatiquement détecté.
- L'utilitaire ls a ajouté l'option «—sort=width» pour trier par longueur de nom de fichier, ainsi que l'option «—zero» pour terminer chaque ligne par un caractère nul. Le comportement ancien a été rétabli, ce qui amène à afficher un répertoire vide plutôt qu'une erreur lors du traitement d'un répertoire supprimé.
- L'utilitaire df a implémenté la détection des systèmes de fichiers réseau acfs, coda, fhgfs, gpfs, ibrix, ocfs2 et vxfs.
- Les utilitaires stat et tail prennent désormais en charge les types de FS «devmem», «exfat», «secretmem», «vboxsf» et «zonefs». Pour «vboxsf», un polling est utilisé dans «tail -f» pour surveiller les modifications, tandis que pour les autres, inotify est utilisé.
Source : opennet.ru
