lançamento do pacote com a implementação de um conjunto padrão de utilitários UNIX, apresentados como um único arquivo executável e otimizados para um consumo mínimo de recursos do sistema, com um tamanho total inferior a 1 MB. A primeira versão da nova linha 1.32 é considerada instável, com a estabilização completa prevista para a versão 1.32.1, que deve ser lançada em aproximadamente 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 unificado, 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 da coleção de utilitários podem ser variados de acordo com as necessidades e capacidades da plataforma incorporada para a qual a compilação está sendo feita. O pacote é autossuficiente; com a compilação estática usando uclibc, para criar um sistema operacional sobre o núcleo Linux, é necessário apenas criar alguns arquivos de dispositivos no diretório /dev e preparar os arquivos de configuração. Em comparação com a versão anterior 1.31, o consumo de memória da compilação típica do BusyBox 1.32 aumentou em 3590 bytes (de 1011750 para 1015340 bytes).
BusyBox é uma ferramenta fundamental na luta contra a violação da GPL em firmwares. As organizações Software Freedom Conservancy (SFC) e Software Freedom Law Center (SFLC), em nome dos desenvolvedores do BusyBox, têm atuado tanto através de , quanto por meio de extrajudiciais, tendo impactado com sucesso empresas que não fornecem acesso ao código-fonte de softwares GPL. Ao mesmo tempo, o autor do BusyBox é fortemente essa proteção — considerando que isso quebra seu modelo de negócios.
As seguintes alterações são destacadas na versão BusyBox 1.32:
- Foi adicionada um novo comando para executar scripts a partir de um arquivo especificado Mimfile (semelhante a uma versão reduzida da ferramenta make);
- No utilitário find, foi adicionada a opção "-empty" para verificar arquivos vazios;
- No utilitário wget, expandido o limite de redirecionamentos e implementado o suporte para verificação de certificados TLS ao compilar com ENABLE_FEATURE_WGET_OPENSSL;
- No grep, foi adicionada o suporte correto para a lista de padrões (pattern_list) e a opção "-R" (processamento recursivo do conteúdo do diretório);
- Problemas que surgiam durante a compilação com Clang 9 foram resolvidos e os avisos do compilador eliminados;
- Uma grande quantidade de correções foi proposta para os shells ash e hush, visando melhorar a compatibilidade com outros shells. No ash e hush, foi adicionada a capacidade de autocompletar comandos internos com a tecla tabulação. No ash, novos comandos internos foram estabilizados.
- No utilitário fdisk, suporte para partições HFS e HFS+ foi adicionado;
- No init, foi melhorado o tratamento de condições de corrida ao receber sinais;
- No utilitário de monitoramento visual dos parâmetros do sistema Adicionado o formato de saída "%NT" (tempo formatado com zeros);
- No taskset, adicionada a capacidade de processar e exibir a lista de CPUs (opção "-c");
- No tar, alterado o comportamento da opção "-a", que agora, em vez de ativar a compressão "lzma", está relacionada à auto-detectação pela extensão do arquivo;
- No udhcpc6, adicionada a suporte para o modo "" para DHCPv6 (o servidor fornece apenas os parâmetros da rede, sem atribuição de endereço);
- No nslookup, garantida a manipulação de respostas sem registros RR e adicionada suporte a registros SRV;
- No brctl, adicionados novos comandos "showmacs" e "showstp";
- No dhcpc, adicionada a suporte ao parâmetro "relay server";
- No syslogd, adicionada configuração para exibir o tempo com precisão em milissegundos;
- No httpd, ao operar no modo NOMMU, permitida a definição de um diretório inicial diferente e garantido o funcionamento da opção ‘-h’ ao iniciar um processo em segundo plano;
- No xargs, corrigida a manipulação de argumentos entre aspas e garantido o comportamento correto da opção "-n";
- Corrigidas falhas nas utilitários grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi, route.
Além disso, no mês passado, lançamento , um análogo do BusyBox, desenvolvido por um antigo mantenedor do BusyBox e sob a licença BSD. O principal objetivo do Toybox é fornecer aos fabricantes a oportunidade de usar um conjunto minimalista de utilitários padrão sem abrir os códigos-fonte dos componentes modificados. Em termos de funcionalidades, o Toybox ainda da BusyBox, já implementadas 272 comandos básicos (204 totalmente e 68 parcialmente) de 343 planejados.
Entre as novidades do Toybox 0.8.3, pode-se destacar:
- Adicionados novos comandos rtcwake, blkdiscard, getopt e readelf;
- No "make root", possibilitada a criação de um ambiente de boot funcional apenas com o núcleo Linux e utilitários Toybox, que pode ser carregado usando um script init próprio;
- Adicionada a suporte inicial para módulos com implementações separadas de utilitários que não estão no conjunto principal do ToyBox;
- O interpretador de comandos toysh está 80% pronto (ainda falta suporte para funções, histórico, controle de terminal, jobs, $((math)), templates);
- Adicionada a suporte a opções adicionais em várias utilitários, incluindo patch, cal, cp, mv, lsattr, chattr, ls, id, netcat e setsid.
Fonte: opennet.ru
