Mostrando postagens com marcador muito além do GNU. Mostrar todas as postagens
Mostrando postagens com marcador muito além do GNU. Mostrar todas as postagens

Lançado zsh 5.9

zsh 5.9 released

Lançado zsh 5.9


 Foi lançado no dia 14 de Maio a versão 5.9 o terminal de comandos Zsh. Essa nova versão traz 17 novos recursos sendo algumas delas voltadas a definição de funções (que recebeu uma nova opção -T para habilitar tracing, executa funções anónimas); zstyle; elementos de região, XTRACE (desabilitado por padrão); os comandos export e readonly agora ignoram a função -p em certas ocasiões e muito mais. Além de novos recursos, o Zsh 5.9 recebeu também mudanças (21 no total) e correções de bugs.

Lançado toybox 0.8.7

toybox command line terminal

Lançado toybox 0.8.7

 No dia 6 de Maio foi lançada a versão 0.8.7 do toybox; o terminal de comandos padrão do Android. O toybox é utilizando também em vários outros projetos como o sbase, no POSIX-2008/SUSv4, no Linux Standard Base, no buildroot, na klibc (que já teve vídeo no canal), no Nash do Fedora, no Beatiebox do FreeBSD, no BsdBox, e vários outros projetos.

NOVOS COMANDOS

 O toybox 0.8.7 recebeu novos comandos: uclampset, gpiodetect, gpioinfo, gpioiget, gpiofind, gpioset e uma versão simplificada do httpd (inicialmente para realizar testes com o comando wget) porém, o comando catv foi removido já que todos utilizam o comando cat com a opção -v (honestamente eu nem tinha reparado nesse comando no toybox).

catv
o comando catv foi descartado no toybox 0.8.7


COMANDOS PROMOVIDOS

 Os comandos host, wget, openvt e deallocvt saíram do diretório pendentes para revisão e foram promovidos para estáveis depois de receber limpezas (aí eu senti firmeza). Outros comandos também receberam limpezas como nos comandos ping, fsync, ionice, pmap, truncate, timeout, tty, factor, mount, fusão do chvt/deallocvt para o openvt.c; fusão do lspci.c para o lsusb.c permitindo que compartilhem arquivos de configuração (config file reading infrastructure) e remoção do arquivo lib/linestack.c que ficou parado lá por anos. Vale a ressalva que esses comandos ainda permanece em pendentes ou já eram declarados estáveis.


NOVOS RECURSOS

 Há também novos recursos em comandos já existente como o top que agora permite se locomover entre a lista SHIFT LEFT/RIGHT (esse eu achei doido); o find -samefile (além das correções de bugs nas opções -newerXY e @time.nanosecond parsing), o cmp -n, o tar recebeu a opção --strip components e as opções --owner e --group agora permitem especificar :UID e :GID; os comandos lsusb e lspci agora realizam a leitura dos arquivos /etc/{usb,pci}.ids[.gz] para proporcionar leitura humana; o ifconfig se tornou capaz de renomear interfaces.



CORREÇÕES DE BUGS

 Houveram várias correções de bugs também como no cp --preserve xattr e cp --xattr (nesse último caso evitam copiar contextos do selinux); o sort -u; wget -O - (agora escrevendo na saída); pwget -B remove mais caracteres que outras implementações não emitem; sed agora trabalha com múltiplo w para o mesmo arquivo (essa é a versão de ser que eu mais gosto. Leia também sobre o minised); correções no nl -E, realpath -e, várias no sh (${X: -1:1} que não é o mesmo que ${X:-1:1} devido :- possuir um sentido especial).

 Um desenvolvedor do Google enviou um patch para o toysh eliminando avisos desnecessários quando compilado com o clang. Mais sobre o avanço do toybsh pode ser conferido no próprio blog do Rob Lanldey clicando aqui. Muitas pessoas andam dando bastante atenção ao toysh pois esse será um grande salto para o Android. Com isso, muitos testes estão sendo realizados como o próprio Rob mencionou em seu blog que possui notas de teste para o toysh como como echo $ (se verdadeiro)echo $ (verdadeiro &&) e echo $(case a in a) echo hello;; esac) que podem produzir erro de sitax. Eu mesmo recentemente postei um vídeo explicando como eu reportei a Rob Landley o bug que encontrei.


 Eu incentivo a todos a testarem seus scripts com o toysh e caso apresentar erros, reportem os erros e como reproduzí-los pois isso facilita bastante os trabalho da equipe (seus testes são importantes); quanto mais testes forem realizados, melhor para que o toysh execute scripts com a mesma fidelidade e compatibilidade que outros terminais. Rob landley mesmo postou em seu blog que está realizando vários testes e que "é por isso que ele tem/precisa de muitos testes".

Lançado bc 5.2.5

bc 5.2.5 released

Lançado bc 5.2.5

 Eu sabia que devia ter esperado o lançamento da versão 5.2.5 e postado sobre ambas de uma única vez, mas tudo bem, aqui vamos nós de novo. Esta versão trás apenas uma melhoria que seria uma correção no comportamento no ^D para ser correspondente com o GNU bc.

 Para instalá-lo, basta seguir o processo já ensinado não somente no site oficial como também já ensinado aqui. É algo bem simples e rápido.

minised: Um sed melhor do que o sed

Erick Raymond minised command

minised: Um sed melhor do que o sed

 minised é uma versão menor e melhor do que o tradicional sed que conhecemos. Antes que haja choro e ranger de dentes, afirmando que estou falando mal do GNU, o minised era utilizado pelo próprio GNU até que eles resolveram criar sua própria versão baseado em um pacote de regexp (que eu duvido que eles vão ter coragem de assumir isso).

minised comparado ao GNU sed
Comparado ao GNU sed, minised possui um terço do seu tamanho.

minised staticly linked against diet libc
Mesmo compilado estaticamente com a diet libc, o binário do minised manteve-se pequeno aumentando apenas 4k.

toybox sed command
O terminal de comandos toybox também proporciona sua própria versão de sed que, se compilado separadamente, também é tão pequeno quanto o minised porém possuindo muito mais recursos que o GNU sed (digite toybox sed --help e compare com o GNU sed).

 O minised foi desenvolvido por Erick Raymond (autor do livro A Catedral e o Bazar já mencionado várias vezes por mim e é um ótimo livro, diga-se de passagem) e René Rebe que também possui um longo portfólio (iniciando em 1997). Além do projeto GNU, o minised é a versão padrão de sed do sistema operacional Minix, utilizado em projetos embarcados da ExactCode e na distribuição da T2_SDE (inclusive fundado por René Rebe)

GNU sed vs minised benchmark
Comparado ao GNU sed, o minised conclui operações em menos tempo e utilizando menos recurso de hardware. O resultado pode ser conferido no vídeo a seguir.


toybox sed command benchmark
O desempenho do toybox sed também fica dentro dos padrões de desempenho do minised.

 Após a ExactCODE buscar por uma implementação do comando sed que pudesse ser utilizada em embarcados e que fosse compatível com à diet libc, a empresa alemã acabou descobrindo o minised que, mesmo não recebendo mais suporte há um bom tempo e contendo vários bugs, ainda assim o minised se apresentou ser melhor do que o GNU sed em certos casos, o que levou a empresa se tornar mantenedora oficial do minised realizando correcções, limpezas, melhorias, adicionando recursos que faltavam e conformidades POSIX (espero que a ExactCODE passe a manter a diet libc também :).

sed é um comando tão abrangente que existe até mesmo um livro de 275 páginas escrito por Daniel Goldman chamado Definitive Guide to sed: Tutorial and Reference. A versão kindle pode ser adquirida clicando aqui e a versão impressa clicando aqui.


 O minised esteve sob a licença GPL desde a versão 1.3 passando a ser regido sob a licença BSD a partir da versão 1.14 estando Erick Raymond de acordo com a migração. A versão atual do minised é a 1.16 e de acordo com as notas de lançamento, parece que a versão 1.17 já está para ser lançada (o trabalho pode ser acompanhado clicando aqui). Além da versão do toybox, os pacotes 9base (conjunto de comandos do sistema operacional Plan9 portado para outros sistemas operacionais) e sbase (conjunto de comandos do Unix portado para outros Unix) também possuem suas próprias versões do comando sed. Tenham em mente que sempre há uma variedade de versões dos mesmos recursos disponíveis para Linux. Não se limitem á uma única fonte de recurso; sempre busque as que melhor adequam as suas necessidades.

Lançado bc 5.2.4

Lançado bc 5.2.4

Lançado bc 5.2.4

 Por volta de Domingo, Gavin Howard lançou a versão 5.2.4 da linguagem bc. Caso você ainda não conheça, a linguagem bc é uma dependência muito importante para a compilação do kernel Linux. Mas sempre faço a ressalva de que essa não se trata da linguagem bc do projeto GNU, e sim da versão de Gavin Howard.


 Essa versão corrige dois bugs no history.
  • Sem prompt, o cursor não poderia se colocado no primeiro carácter em uma linha.
  • A manipulação das teclas Home e End no tmux foi corrigida.
 Vou aguardar para ver se o Gavin de repente lançará ainda essa uma nova versão. Caso lance, eu trago aqui novamente.

Como encontrei um bug no comando sh

Encontrei um bug no comando sh

Como encontrei um bug no comando sh

 Recentemente eu encontrei um bug tanto nos comando sh e toysh do terminal de comandos toybox ao tentar utilizá-los para executar um script que elaborei para uma das minhas novas aulas de shell script do meu CURSO DE MIGRAÇÃO PARA LINUX. Então eu decidi explicar em um vídeo como eu encontrei tal bug reproduzindo-o com os dois comandos.

 A minha intenção é motivar e encorajar vocês que não são desenvolvedores a reportar bugs às equipes dos projetos adotando a cultura bazar já mencionado aqui algumas vezes. Vocês não precisam ser desenvolvedores para reportar bugs (é muita ingenuidade acreditar que sim) e acreditem, vocês vão facilitar muito a vida das equipes.


 Porém um detalhe que eu poderia ter mostrado no vídeo ao compilar o código fonte para reforçar é que, quando seu código fonte é compilado com o padrão ./configure e make conforme demonstrado no vídeo, a versão compilada não possui nenhum dos dois comandos:

Android toybox 0.8.6
Reparem as linhas selecionadas com s e t na versão compilada do toybox 0.8.6 que ambos os comandos não existem.

Repare que nem um dos dois comandos serão encontrados ao tentar executar.
Repare que nem um dos dois comandos serão encontrados ao tentar executar.

 Cheguei até mesmo compilar o comando sh separadamente e testá-lo (a toa pois o resultado seria o mesmo). Bom, reforço que este é o terceiro bug que eu encontro no terminal e que estarei reportando em breve; pode acabar sendo util... ou não na pior das hipóteses. Somente reportando para descobrir.

Lançado musl 1.2.3

Lançado musl 1.2.3

Lançado musl 1.2.3

 Esse lançamento adiciona a função qsort_r (futuro recurso POSIX), várias interfaces de extensões menores e suporte a alternativa SPE FPU presente em alguns modelos de processadores PowerPC

 Houveram também correções de bugs que haviam na versão anterior, muitas melhorias de compatibilidade (inclusive relacionadas a POSIX), melhoria no ambiente da variável TZ e muitas outras melhorias.

Lançado bc 5.2.3

Lançado bc 5.2.3

Lançado bc 5.2.3

 Na terça Feira, Gavin Howard lançou a versão 5.2.3 da linguagem bc. Caso você ainda não conheça, a linguagem bc é uma dependência muito importante para a compilação do kernel Linux. Mas sempre faço a ressalva de que não se trata da linguagem bc do projeto GNU, e sim da versão de Gavin Howard.


 Essa versão é versão de correção de um bug na opção -f que pode ser apresentado quando se passa um arquivo com múltiplos comentários ou strings ao comando bc (bc -f <<< arquivo).

bc 5.2.3
bc -f ou bc --file=arquivo
 O procedimento de compilação e instalação pode ser conferido na própria página de download. Vale lembrar que o terminal de comandos toybox também possui a linguagem bc do Gavin, porém, o projeto toybox mantem a versão 1.0 (onde encontrei o bug de loop). É aconselhável a não utilizar nem a versão que se encontra no toybox e nem a do GNU (por conter bugs que já foi explicado na entrevista do Gavin).

Bug encontrado na linguagem bc do toybox

Google passa a financiar o desenvolvimento do terminal de comandos toybox

Google passa a financiar o desenvolvimento do terminal de comandos toybox

Google passa a financiar o desenvolvimento do terminal de comandos toybox

 Rob Landley anunciou que o Google estaria financiando o desenvolvimento do toybox principalmente com o avanço do Hermetic (eu jurava que não tinham dado continuidade nesse projeto) tendo este linkado o terminal de comandos com host bionic tornando o sistema operacional capaz de ser construído em si.

 Isso porque o Android é construído através de compilação cruzada. Ao tornar o sistema self hosting, ele não dependerá mais de outro sistema operacional para que seja compilado (como o próprio nome sugere). Este recurso (os comandos sh e toysh) foi adicionado no toybox a partir da versão 0.8.4 como pode ser conferido clicando aqui.

toybox toysh and sh commands
Os comandos toysh e sh que permitem o toybox tornar o sistema operacional self hosting.

 A partir da versão 0.8.5 o toybox passou a ter 85% de tudo o que um terminal de comandos precisa para ser utilizado como terminal de comandos padrão. Hoje estamos na versão 0.8.6 porém, ainda há certos recursos listados pela equipe para incorporar ao terminal de comandos e assim torná-lo capaz de compilar o kernel Linux.

 Questionado "se o toysh será capaz de substituir o dash" Rob Landley respondeu que "visa substituir o bash" (pode ser lido clicando aqui). Eu torço para isso, ams a minha preferência é o Zsh (terminal de comandos muito mais poderoso e muito mais interessante que o Bash). O motivo de demorar parao lançamento da versão 1.0 do toybox (seu ultimo lançamento foi no final de Novembro do ano passado) é que a maior parte dos membros o desenvolve nas horas vagas (inclusive o próprio Rob).

 Só que nos dias 28 e 30 de Janeiro deste ano, Rob publicou as seguintes notas em seu blog:
Estou muito satisfeito por começar a trabalhar na lista de tarefas do toybox hermetic build do Google, mas amanhã tenho que preencher a papelada com o estado do Texas (posso reutilizar o nome Impact Linux de 2008, ou preciso encontrar outro que passe uma busca de conflito), e então eu preciso de um EIN federal ou não?
Eu quero fazer o trabalho. Preciso limpar muitos itens de tarefas. Escrevi um monte de coisas que preciso lembrar de fazer no verso de um envelope esta manhã e, claro, deixei em casa
 Não há como eu opinar nas questões financeiras de uma empresa. Mesmo a Google tendo tamanho Patrimônio, não há como eu saber o quão rentável o Android é para a empresa, principalmente depois da ação judicial que a Oracle moveu contra a Google. Porém assim mesmo eu me faço a seguinte pergunta, só agora? O terminal de comandos toybox é utilizado no Android desde a versão Marshmallow (versão 6 do Android lançado entre 2014 e 2015). Eu mesmo venho divulgando sobre o toybox desde 2017 com a série Muito além do GNU. Será que em oito anos o toybox não apresentou retorno financeiro o suficiente para que a Google financiasse a equipe do projeto. A linguagem bc do Gavin Howard mesmo é utilizado como dependência para compilar o kernel Linux do Android; não seria interessante financiá-lo também?

bc language by Gavin Howard
Linguagem bc de autoria de Gavin Howard.

 O mesmo ocorreu com o CentOS e o Rocky Linux. Quando a Red Hat anunciou o fim do CentOS e iniciou o CentOS Stream, maioria dos usuários de Linux julgaram a Red Hat uma mercenária e egoísta. Interessante é que todos bebiam da fonte do CentOS, mas quase ninguém contribuía (pelo o que me contaram, só haviam dois mantenedores da versão 8 do CentOS). Daí anunciaram o Rocky Linux como seu substituto e hoje o Rocky Linux conta com grandes empresas o financiando como Amazon e Microsoft (inclusive a própria Google). Não seria mais fácil ter financiado o CentOS ao invés de ter deixado o projeto morrer e já que todos bebiam dessa fonte?...

Rocky Linux Sponsors
Patrocinadores do Rocky Linux

 Fica a dica a todos; se você gosta de um projeto, não deixem a sua fonte secar. É melhor do que ficar lamentando depois pelo seu fim. Bom, ao menos a Google tomou essa iniciativa (antes tarde do que nunca); porém, nós também podemos fazer o mesmo (vale para nós também).

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (1) ambiente gráfico (19) AMD (14) analise (9) Andriod (14) android (5) artigo (5) aws (1) bc (16) benchmark (3) BSDs (27) btrfs (30) bugs (1) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (53) comandos (24) comp (1) compressores (5) container (6) CPU (19) criptografia (4) crowdfunding (9) cursos (24) daemons (13) Debian (31) desenvolvimento (80) desktop (19) DevOps (3) DevSecOps (3) dic (1) Dica de leitura (86) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (1) diocast (1) dioliunx (3) distribuições Linux (13) Docker (11) DragonflyBSD (20) ead Diolinux (2) edição de vídeo (5) EMMI Linux (4) emuladores (5) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (10) filesystem (75) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (90) gerenciadores de pacotes (3) GOG (3) google (8) gpu (3) hardware (101) hash (1) helenos (3) I.A (1) init system (8) Intel (15) IoT (1) ispconfig (1) jogos (36) kde (1) kernel (134) lançamento (60) leis (1) LFCS (1) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) machine learning (1) matemática (4) mesa redonda (27) microsoft (6) microst (1) muito além do GNU (146) não viva de boatos (9) navegadores (3) NetBSD (7) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (82) OpenBSD (5) OpenShift (1) os vários sabores de Linux (39) padrim (2) palestras e eventos (5) partições (6) pentest (8) pipewire (1) processadores (27) professor Augusto Manzano (11) Programação (60) promoção (1) propagandas com Linux (8) Red Hat (21) redes (3) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (1) runlevel (2) segurança digital (19) servidores (1) shell (3) sistema operacional (22) smartphones (3) Software livre e de código aberto (150) sorteio (3) Steam (9) Steam no Linux (7) supercomputadores (4) suse (7) systemd (7) terminal (83) terminal de comandos (11) toca do tux (1) toybox (23) tutorial (6) Tux (3) unboxing (7) UNIX (16) UNIX Toolbox (14) vartroy (1) vga (1) vulnerabilidade (4) wayland (5) whatsapp (1) Windows Subsystem for Linux (2) wine (14) WoT (1) ZFS (13) zsh (2)