Mostrando postagens com marcador bc. Mostrar todas as postagens
Mostrando postagens com marcador bc. Mostrar todas as postagens

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.

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.

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).

Lançado bc 5.2.2 por Gavin Howard

Lançado bc 5.2.2 por Gavin Howard

Lançado bc 5.2.2 por Gavin Howard

 Há 3 dias foi lançada a versão 5.2.2 da linguagem bc de autoria de Gavin Howard (caso não conheça, Gavin Howard já nos concedeu uma entrevista muito interessante).

 Esta é uma versão de produção que corrige um bug, uma falha de segmentação se argv[0] for igual a NULL.

 Este não é um bug crítico; não haverá necessariamente vulnerabilidade. Não há necessidade de atualizar caso não queira. Eu, como acompanho o projeto e estou sempre testando (inclusive reportando bugs caso encontre) então baixei e compilei minha versão.

 Lembrando, o 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).

Lançado toybox 0.8.6

Lançado toybox 0.8.6
Lançado toybox 0.8.6

 Foi lançada versão 0.8.6 do terminal de comandos toybox que dentre as suas maiores novidades estão os comandos linux32 e sha256sum e as variantes relacionadas 224/384/512 (algo que já era previsto e que pode ser conferido aqui) e binários da versão bootável do mkroot através do QEMU.

man 8 linux32
Comando Linux32 no toybox
man 1 sha256sum
sha256sum e as variantes relacionadas 224/384/512
 Mkroot é de uma distribuição Linux criada pelo proprio Rob Landley para servir apenas como base de testes de implementação do toybox; assim sendo seu propósito, conseguindo tornar o toybox como terminal de comandos padrão no mkroot, logo o toybox estará pronto para ser utilizado como padrão em quaisquer outras distribuições Linux (vale lembrar que o toybox já foi portado também para MacOS e alguns BSDs). Anteriormente o mkroot se chamava Aboriginal Linux, depois foi mudado para mkroot e planejavam mudar para Hermetic (que inclusive eu achei um nome bem legal) e por fim acabou ficando como mkroot mesmo.
mkroot
Analisando uma das imagens do mkroot
 No diretório pendente foram adicionados os comandos hexdump e strace. O toysh (que foi grande destaque no ultimo lançamento) recebeu suporte a novos recursos como o $((math)), atribuição +=, "declare" e tipos de variáveis correspondentes (declare -i, declare -u e etc), várias correções de bugs, melhorias para processos em plano de fundo em sistemas NOMMU e mais um monte de entradas sh.test. Ainda em pendente o modprobe, o vi, o syslogd, o wget também receberam melhorias.

toyshell
Testando o toysh (toy shell) que nos permite utilizar o toybox como terminal de comandos padrão. Ainda não está bom o suficiente, bem no estilo dos terminais antigos ainda, mas já temos algo.

 Outros comandos também receberam novas opções como date -s; pmap -p; tail -F -s; kill -0; reboot/halt/poweroff -d; tail --bytes --lines; i2cdetect -q; find -quit -lname -ilname e -d como sinônimo para o -depth; cpio --ignore-devno --renumber-inodes; tar --selinux e uma mensagem de erro ao final; agora o comando uname com a opção -o exibe a mensagem Toybox. Ensinaram também outros comandos a ter novos comportamentos. 

man 1 uname
toybox uname -o agora exibe a mensagem Toybox ao inves do sistema operacional.

 Uma opção que já estava disponível na ultima versão mas que vale ressaltar é que o comando cut do toybox possui o recurso -DF que permite o cut se comportar como o awk '{print $3}'.

Comando cut do toybox
Comando cut do toybox que possui as opções D e F.

  A licença 0BSD agora é parte do padrão ISO-5962. Houveram também muitas correções de bugs, limpezas e  muitas melhorias na parte de infraestrutura. Todas as novidades podem ser conferidas aqui.

Antigamente a versão binária do toybox disponível em seu site oficial, apesar de sempre ter sido linkada estaticamente com a musl, era compilada com o gcc através da ferramenta crossmusl. Agora a versão binária é compilada com o LLVM através da ferramenta musl-clang.

Um conselho que eu quero dar é que caso queira compilar o toybox (algo que eu já ensinei) seria não compilar o bc disponibilizado no toybox (não utilize nem o bc do gnu e nem o bc do toybox). Compile e utilize a versão bc de autoria do próprio Rob Landley que eu já mostrei aqui que é bem mais completo e cheio de recursos.

Lançado bc 5.2.1

bc 5.2.1
Imagem referente ao lançamento da versão anterior

 No dia 24 de Novembro eu anunciei que a linguagem bc do Gavin Howared versão 5.2 havia sido lançada (na verdade foi lançada há três semanas). E como eu já havia descrito em artigos anteriores, eu sempre espero algum tempo antes de anunciar seu lançamento pois, como a sua versão de bc avança muito rápido, é bom eu sempre esperar um pouco para acumular as novidades.
 Dito e feito, há uma semana foi lançada a versão 5.2.1 que traz correções de dois bugs quando se está no modo padrão POSIX. Um deles é devido a peculiaridade da gramática POSIX e o outro devido a linguagem bc ser muito estrito.

Lançado bc 5.2.0

Lançado bc 5.2.0
Lançado bc 5.2.0

 Gavin Howard lançou a versão 5.2.0 da linguagem de cálculos de precisão arbitrária bc. Há bastante material sobre a linguagem bc aqui no blog e até mesmo  um vídeo falando sobre a linguagem e entrevista com o autor.


 Essa nova versão trás o recurso chamado BC_EXPR_EXIT que permite sair do ambiente bc através de expressões (algo que já existia e foi trazido de volta).

Recurso BC_EXPR_EXIT
Recurso BC_EXPR_EXIT que pode ser habilitado no arquivo configure.sh

 Foram adicionados alguns builds out-of-source e um arquivo pkg-config para o bcl e houveram também algumas correções de bugs também em algumas possíveis race conditions com erros e alvos install e uninstall para o bcl não funcionavam. Reforço que eu espero que o bc do Gavin Howard venha a substituir tanto o bc do GNU quanto a versão mantida pela equipe do toybox.

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)