Lançamento de um conjunto minimalista de utilitários de sistema BusyBox 1.35

O lançamento do pacote BusyBox 1.35 é apresentado com a implementação de um conjunto de utilitários padrão UNIX, projetados como um único arquivo executável e otimizados para consumo mínimo de recursos do sistema com tamanho definido inferior a 1 MB. A primeira versão da nova ramificação 1.35 está posicionada como instável, a estabilização completa será fornecida na versão 1.35.1, esperada em cerca de um mês. O código do projeto é distribuído sob a licença GPLv2.

A natureza modular do BusyBox permite criar um único arquivo executável contendo um conjunto arbitrário de utilitários implementados no pacote (cada utilitário está disponível na forma de um link simbólico para este arquivo). O tamanho, composição e funcionalidade do conjunto de utilitários podem variar dependendo das necessidades e capacidades da plataforma embarcada para a qual a montagem está sendo realizada. O pacote é independente; quando construído estaticamente com uclibc, para criar um sistema funcional sobre o kernel Linux, você só precisa criar vários arquivos de dispositivo no diretório /dev e preparar arquivos de configuração. Comparado com a versão anterior 1.34, o consumo de RAM do conjunto típico do BusyBox 1.35 aumentou em 1726 bytes (de 1042344 para 1044070 bytes).

BusyBox é a principal ferramenta no combate às violações da GPL no firmware. O Software Freedom Conservancy (SFC) e o Software Freedom Law Center (SFLC), em nome dos desenvolvedores do BusyBox, influenciaram repetidamente com sucesso empresas que não fornecem acesso ao código-fonte dos programas GPL, tanto através dos tribunais quanto através de fora de - acordos judiciais. Ao mesmo tempo, o autor do BusyBox se opõe veementemente a tal proteção - acreditando que isso arruína seu negócio.

As seguintes alterações são destacadas no BusyBox 1.35:

  • O utilitário find implementa a opção "-samefile name" para verificar se um arquivo está usando o mesmo inode do arquivo com o nome especificado. Código unificado para comparação de tempo e adicionadas opções "-amin", "-atime", "-cmin" e "-ctime" para verificar tempo de acesso e criação de arquivos.
  • O utilitário mktemp adicionou uma opção "--tmpdir" para especificar o diretório base relativo ao qual os caminhos associados aos arquivos temporários são calculados.
  • As opções “-ignore-devno” foram adicionadas ao utilitário cpio para ignorar o número real do dispositivo (0 é sempre escrito) e “-renumber-inodes” para renumerar o inode antes de armazená-lo no arquivo.
  • No utilitário awk, a expressão “printf %%” foi ajustada.
  • Adicionadas cerca de uma dúzia de alterações à biblioteca libbb. Compatibilidade aprimorada do realpath com sua contraparte do conjunto coreutils.
  • Um grande número de correções foram propostas para os shells de comando ash e hush, com o objetivo de melhorar a compatibilidade com outros shells. Ash adicionou suporte para armadilhas ERR do tipo bash, set -E e $FUNCNAME, e recuperação mais rápida de strings usando a expressão "${s:}". Em silêncio, a execução de operações "${x//\*/|}" foi acelerada.
  • O utilitário basename implementa as opções "-a" para passar vários nomes em uma chamada e "-s SUFFIX" para remover caracteres "SUFFIX" finais.
  • Adicionada opção "-f" (forçar) ao utilitário blkdiscard.
  • httpd parou de enviar cabeçalhos Last-Modified/ETag/Content-Length para páginas com erros.
  • httpd e telnetd fornecem a capacidade de alterar a porta de rede padrão.
  • Corrigida uma vulnerabilidade no tar que fazia com que toda a memória disponível fosse consumida ao processar arquivos com nomes de arquivo muito longos.
  • A implementação de P256 e x25519 foi retrabalhada no código TLS.
  • O utilitário wget implementa a opção "--post-file" para enviar arquivos e permite personalizar o conteúdo do cabeçalho Content-Type para as opções "--post-data" e "--post-file".
  • O utilitário de tempo limite agora suporta a opção "-k KILL_SECS" para enviar um sinal SIGKILL se o comando não for concluído dentro dos segundos KILL_SECS adicionais.
  • O suporte para configuração do parâmetro netns para dispositivos foi adicionado ao utilitário ip.
  • O utilitário cal implementa a opção “-m” para exibir o mês especificado.
  • Os utilitários de data e toque permitem especificar um deslocamento de fuso horário nas datas.
  • No editor vi, foi adicionado suporte para o arquivo ~/.exrc e a manipulação de “-c” e EXINIT foi alterada.
  • No utilitário ed, o resultado da execução de comandos de leitura/gravação é colocado em conformidade com a especificação POSIX-1.2008. Adicionado suporte para a opção "-p".
  • Adicionada opção "-n N" ao utilitário cmp para limitar a comparação a N bytes.

Além disso, há poucos dias foi lançado o Toybox 0.8.6, um análogo do BusyBox, desenvolvido por um ex-mantenedor do BusyBox e distribuído sob a licença 0BSD. O principal objetivo do Toybox é fornecer aos fabricantes a capacidade de usar um conjunto minimalista de utilitários padrão sem abrir o código-fonte dos componentes modificados. Em termos de capacidades, o Toybox ainda está atrás do BusyBox, mas 296 comandos básicos já foram implementados (217 completamente e 83 parcialmente) dos 374 planejados.

Entre as novidades do Toybox 0.8.6 podemos destacar o aprimoramento dos scripts para criação de imagens do sistema, a adição dos comandos sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace e hexdump. Opções implementadas “date -s”, “pmap -p”, “tail -F -s”, “kill -0″, reboot/halt/poweroff -d”, “tail –bytes –lines”, “i2cdetect -q” , "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep-L".

Fonte: opennet.ru

Adicionar um comentário