lançamento do pacote com a implementação de um conjunto de utilitários padrão do UNIX, formatados como um único arquivo executável e otimizados para consumir minimamente os recursos do sistema, com um tamanho total inferior a 1 MB. A primeira versão do novo ramo 1.31 é classificada como instável, a estabilização completa será garantida na versão 1.31.1, que é esperada em aproximadamente um mês. O código do projeto é distribuído sob a licença GPLv2.
A natureza modular do BusyBox permite a formação de um único arquivo executável, contendo um conjunto arbitrário de utilitários implementados no pacote (cada utilitário está disponível como um link simbólico para esse arquivo). O tamanho, a composição e a funcionalidade da coleção de utilitários podem ser variados conforme as necessidades e possibilidades da plataforma embutida para a qual a montagem é realizada. O pacote é autossuficiente, ao ser compilado estaticamente com uclibc, para criar um sistema funcional em cima do núcleo Linux, é necessário apenas criar alguns arquivos de dispositivo no diretório /dev e preparar arquivos de configuração. Em comparação com a versão anterior 1.30, o consumo de memória RAM da montagem padrão do BusyBox 1.31 diminuiu em 86 bytes (de 1008478 para 1008392 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.31:
- Novos comandos adicionados: ts (implementação do cliente e servidor para o protocolo TSP (Protocolo de Carimbo de Tempo)) e i2ctransfer (criação e envio de mensagens I2C);
- Apoio para opções DHCP foi adicionada ao udhcp (informações sobre fuso horário) e 101 (nome do fuso horário no banco de dados TZ) para IPv6;
- O udhcpd agora suporta vinculações estáticas de nomes de hosts a clientes;
- Nos shells ash e hush foram implementados literais numéricos «BASE#nnnn». A implementação do comando ulimit foi adaptada para compatibilidade com bash, incluindo as opções «-i RLIMIT_SIGPENDING» e «-q RLIMIT_MSGQUEUE». Suporte adicionado para «wait -n». Variáveis compatíveis com bash EPOCH foram adicionadas;
- No shell hush, foi implementada a variável «$-«, que lista as opções do shell ativadas por padrão;
- No bc, o código para passar valores por referência foi transferido do upstream, suporte para funções void foi adicionado e há capacidade para trabalhar com valores de ibase até 36;
- No brctl, todos os comandos foram convertidos para funcionar com o pseudo-FS /sys;
- O código das utilitários fsync e sync foi unificado;
- A implementação do httpd foi aprimorada. O processamento de cabeçalhos HTTP e a operação em modo proxy foram melhorados. SVG e JavaScript foram adicionados à lista de tipos MIME;
- No losetup, a opção «-c» (verificação forçada do tamanho do arquivo associado ao dispositivo de loop) foi adicionada, assim como uma opção para escanear partições. Suporte para trabalhar com /dev/loop-control foi fornecido em mount e losetup;
- Em ntpd, o valor de SLEW_THRESHOLD foi aumentado de 0.125 para 0.5;
- No sysctl, suporte para atribuição de valores vazios foi adicionado;
- No watch, suporte para valores fracionários na opção «-n SEC» foi adicionado;
- Foi adicionada a capacidade de iniciar o mdev como um processo em segundo plano;
- No utilitário wget, foi implementada a flag «-o» para especificar o arquivo para registro de log. Notificações sobre o início e término do download foram adicionadas;
- No telnetd, suporte para o comando AYT IAC foi adicionado;
- No vi, foi adicionada o comando ‘dG' (remoção do conteúdo da linha atual até o final do arquivo);
- No comando dd, foi adicionada a opção ‘oflag=append’;
- No utilitário top, foi adicionada a flag ‘-H’ para habilitar o modo de escaneamento de threads individuais.
Além disso, há duas semanas 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 do BusyBox, mas já implementou 188 comandos básicos de 220 planejados.
Entre as novidades do Toybox 0.8.1, pode-se destacar:
- Foi alcançado um nível de funcionalidade suficiente para compilar o Android em um ambiente baseado nas utilitários Toybox.
- Novas equipes mcookie e devmem foram incluídas, e os comandos tar, gunzip e zcat reescritos foram transferidos da ramificação de teste.
- Uma nova implementação do vi foi proposta para testes.
- O comando find agora suporta as opções "-wholename/-iwholename",
"-printf" e "-context"; - No grep, foi adicionada a opção "—exclude-dir";
- O echo agora possui suporte para a opção "-E".
- O mount agora suporta "UUID".
- O comando date agora considera o fuso horário definido na variável de ambiente TZ.
- O sed agora suporta intervalos relativos (+N).
- Melhorada a legibilidade da saída do ps, top e iotop.
Fonte: opennet.ru
