Está disponível uma versão estável do conjunto de utilitários de sistema básico GNU Coreutils 9.0, que inclui programas como sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, entre outros. A mudança significativa do número da versão se deve a alterações no comportamento de algumas utilitários.
Mudanças principais:
- Nos utilitários cp e install, o modo de cópia por padrão é o copy-on-write (uso de ioctl ficlone para compartilhamento de dados entre vários arquivos em vez de criar um clone completo).
- Nos utilitários cp, install e mv, são utilizados os mecanismos fornecidos pelo sistema para acelerar as operações de cópia (uso da chamada de sistema copy_file_range para realizar cópias apenas do lado do kernel, sem transferir dados para a memória do processo no espaço do usuário).
- Nos utilitários cp, install e mv, é utilizada uma chamada lseek+SEEK_HOLE mais simples e portátil para determinar buracos em arquivos, em vez de ioctl+FS_IOC_FIEMAP.
- No utilitário wc, instruções AVX2 são utilizadas para acelerar a contagem de linhas. Com essa otimização, a velocidade do wc aumentou cinco vezes.
- No utilitário cksum, foi adicionada a opção "-a" (--algorithm) para selecionar o algoritmo de hash. Para acelerar o cálculo de checksums, o utilitário cksum utiliza instruções pclmul no modo "--algorithm=crc", permitindo acelerar os cálculos em até oito vezes. Em sistemas sem suporte a pclmul, o modo crc é acelerado em quatro vezes. Outros algoritmos de hash (sum, md5sum, b2sum, sha*sum, sm3, etc.) são implementados por meio de chamadas de funções libcrypto.
- Nos utilitários md5sum, cksum, sha*sum e b2sum, ao usar a flag "--check", é permitida a presença de sequências CRLF no final da linha com o checksum. No "cksum --check", a determinação automática do algoritmo de hash utilizado é garantida.
- No utilitário ls, foi adicionada a opção "--sort=width" para classificar pelo comprimento do nome do arquivo, assim como a opção "--zero" para terminar cada linha com um caractere nulo. O comportamento antigo foi restaurado, que mostra um diretório vazio em vez de um erro ao processar um diretório removido.
- No utilitário df, foi implementada a identificação de sistemas de arquivos de rede acfs, coda, fhgfs, gpfs, ibrix, ocfs2 e vxfs.
- Nos utilitários stat e tail, foi adicionada suporte para tipos de FS "devmem", "exfat", "secretmem", "vboxsf" e "zonefs". Para "vboxsf", a verificação de alterações em "tail -f" é feita com polling, enquanto para os outros é utilizado inotify.
Fonte: opennet.ru
