Lançado toybox 0.7.6

toybox 0.7.6
toybox 0.7.6

Apesar que venho falando bastante sobre o toybox, para quem não sabe do que se trata toybox é um terminal de comandos desenvolvido especificamente para Linux e hoje está presente no android desde a versão MarshMallow.

Recentemente fiz um vídeo onde demos uma olhada no toybox onde explico como ele foi criado, como configurá-lo, compilá-lo e utilizá-lo.


Na sexta feira (24/02/2018) foi lançada a versão 0.7.6 deste terminal que simplesmente me encanta especificamente pelo seu tamanho (quase quatro vezes menor que o Bash), saída de comandos (bem mais clara que a do Bash) e sua licença que é de domínio publico.

Eu baixei e analisei esta nova versão e a primeira coisa que posso notar é que podemos fazer uma configuração padrão usando tanto o make defconfig mostrado no vídeo quanto o popular "./configure". Fiz o teste com as duas opções e funcionou tudo OK

Teste com o ./configure e funcionando bem
Teste com o ./configure e funcionando bem


Teste com o make defconfig e também funcionando bem.
Teste com o make defconfig e também funcionando bem.

Em questão de tamanho final pós-compilação, ambos possuem o mesmo tamanho (320KB). Mas quando de se trata de comandos, seria um sufoco analisar um a um para saber o que mudou olhando desta maneira:

Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de uma forma bem ilógica
Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de uma forma bem ilógica

Ok, então resolvi dar uma filtrada usando o comando wc (word counter) com a opção -w (filtrar por quantidade de palavras) e me deparei com isso. A unica mudança foi um comando:

Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de forma filtrada
Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de forma filtrada

Mas essa é a unica diferença? Um comando?
A verdade é que não. Dentre as mudanças estão correções nos comandos iconv, logger, setfattr e gzip/gunzip/zcat. Os comandos stty e fmt que estavam em Pendentes foram adicionados como funcionais.

O comando adicinado foi o crc32 que é utilizado para checksum de cada arquivo:

Comando crc32 no toybox 0.7.6
Comando crc32 no toybox 0.7.6
O comando cut recebeu uma reescrita completa tendo adicionado suporte a multiplos ranges, suporte a caracteres utf8/unicode, e novas opções -CDFO. utilize -C para medir colunas ao invés de caracteres (para o dobro de largura de chars), e "cut -DF 3-5" para selecionar palavras (assim como no "awk '{print $3 $4 $5}'").

Adicionaram as seguintes opções aos comando (correções também foram feitas ao comando top),:
  • top -m
  • iotop -H
  • iconv -c
  • Correções no ps -T 1234 para exibir threads pertencentes a qual PID,
Houveram melhorias também na identificação de arquivos executáveis (e acionaram sh/frv fdpic, bpf e novos identificares microbalze). O blkid agora exibe somente LABEL= quando não está em branco.

A equipe do android adicionou df -i, uptime -p, time -v, and xxd -i -ri, corrigiram id -G para somente a saída do grupo de IDs, corrigiram a combinação xargs -0 -n, adicionaram find -exec + obey ARG_MAX (como no xargs), fizeram killall matar scripts, corrigiram um off no pidof que poderia causar um falso positivo em nomes com 15 caracteres, adicionaram testes ao gzip/gunzip/zcat tests, e o comando file a identificar mais arquivos (ogg, TrueType font, LLVM bitcode, PEM certs, e executáveis PE). O getprop/setprop do android agora permite ro.

Houveram muitas outras melhorias nos comandos, mas aqui estão algumas. Baixem o toybox (seja em forma binária ou de código fonte) e bora testar e ajudar a comunidade ;)

Fiquem também com a história do toybox:


Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (31) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (33) comp (1) compressores (7) container (8) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (2) desenvolvimento (97) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (91) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (13) DragonflyBSD (22) driver (1) dropbear (3) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (21) Funtoo Linux (13) games (94) garbage collector (1) gerenciadores de pacotes (4) glaucus (6) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (12) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (38) kde (1) kernel (140) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (172) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (6) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (7) OpenShift (1) oracle (1) os vários sabores de Linux (44) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (2) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (67) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (13) segurança digital (24) servidor web (2) servidores (3) shell (9) shell script (8) sistema operacional (25) skarnet (2) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (8) terminal (89) terminal de comandos (19) toca do tux (1) toybox (27) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (3) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (16) zsh (3)