skarnet.org: Pequenas atualizações de primavera 2024

 

[announce] small skarnet.org Spring 2024 update

skarnet.org: Pequenas atualizações de primavera 2024

 No dia 15 de Abril Laurent Bercot, autor do projeto skarnet (que deu origem ao uso de Linux sem ferramentas do projeto GNU), anunciou atualizações de algumas de suas ferramentas.


Leia o artigo O dia que Laurent Bercot calou Richard Stallman: Eu não uso GNU, eu uso Linux!


 Essas são atualizações menores das ferramentas skalibs (2.14.1.1 - release) e s6 (2.12.0.4 - release) tiveram pequenas correções de bugs enquanto que o execline (2.9.5.0 - minor), que também teve correções de bugs menores, teve um retrocesso no código de saída para a variável de ambiente $? que fazia que o processo continuasse quando o processo filho falhava.

 O  tipidee (0.0.4.0 - minor), que é uma aplicação nova e já até apareceu aqui no blog (clique aqui para saber mais) e é utilizado como servidor web no site skarnet, agora pode ser utilizado com site que root é servido via um script CGI único. O cabeçalho Server: agora pode ser substituído, para pessoas que não desejam transmitir a versão exata de seu servidor web em uma resposta HTTP. E há um novo programa ls.cgi, que pode ser usado como index.cgi para servir uma lista de todos os arquivos em um diretório.

 No dia seguinte, Alex KiernanEmanuele Torre reportaram um erro no comportamento do execline.  uma coisa muito importante é que ambos reportaram como reproduzir o errto. Laurent acabou assim conseguindo lançar a versão 2.9.5.1 com patch de correção e ambos validaram que está tudo funcionando normal.

O dia que Laurent Bercot calou Richard Stallman: Eu não uso GNU, eu uso Linux!

Mais sobre o projeto skarnet pode ser conferido aqui

--

Google apresenta seus novos processadores baseados na arquitetura Arm com suporte a inteligencia artificial

Google unveils Arm-based data center processor, new AI chip

Google apresenta seu novo processador de inteligencia artificial baseado em Arm

 No dia 9 de Abril a Reuters informou que o Google revelou seus novos chips de inteligencia artificial para data center baseados na arquitetura ARM, também chamados de TPUs (Tensor Processing Units) e que foram desenvolvidos pela Nvidia.

 De acordo com a Google, estes chips, nomeados Axion, possuem desempenho 50% superior ao x86 e 30% superior ao ARM de propósito geral. A ideia da google é rivalizar com a Amazon e microsoft (que também possuem seus processadores baseados na arquitetura ARM) utilizando-o em serviços como YouTube Ads e Google Cloud apesar de já ter construído chips personalizados para o Youtube, AI e smartphones.

Lembrando que a Oracle também entrou no mesmo embalo de utilizar processadores ARM.

 Além do Axion, a Google também trabalhou junto a Broadcom em outro TPU chamado v5p que podem rodas em pods de até 8.960 chips e atingir o dobro de desempenho utilizando resfriamento liquido. Estes chips só estarão disponíveis através de serviços e não ao publico.





Leia a matéria completa aqui

Anuncio do Google sobre seu processador ARM Axion



Lançado toybox 0.8.11

Lançado toybox 0.8.11

Lançado toybox 0.8.11

 No dia 8 de Abril foi lançada a versão 0.8.11 do terminal de comandos toybox (depois de nove meses depois de o ultimo lançamento, mas tivemos bastante novidades). Dentre as novidades estão os comandos tsortts, csplit e memeater. Os comandos fold e getopt foram promovidos.

 Os comandos também receberam novos recursos, em especial o comando mv que dua grande novidade é foi receber a nova opção -x (ou --swap) que agora permite indicar dois caminhos no file system de forma atômica. Observação que deve ser feita é que essa opção só é possível dentro do mesmo file system e caso não haja suporte a atomic swap, uma mensagem de erro será retornada. Esse recurso é permitido através syscal renameat2() que está presente no Linux há ~10 anos (essa é a minha grande critica ao Linux, tantos recursos poderosos e pouco explorados). Não parei para testar essa opção, mas eu trago algo aqui quando tiver tempo já que é a unica implementação de comando mv que possui esse recurso. Rob Landley enviou seu patch para o busybox e para o coreutils; se os projetos irão aceitar, já é outra história. Este recurso não estará disponível para as versão do MacOS e do FreeBSD já que se trata de uma system call do Linux, então, Rob Landley precisou gerar uma função no arquivo portability.[ch] para não ocorrer erros.

 O comando env -e ARQUIVO executa um comando diferente de argv[0]; o comando reset agora coloca os terminais brutos de volta no modo "cooked"; sort -k conta da direita para a esquerda, setsid segura o tty removendo a necessidade do getty e a opção -CC tenta pegar a sessão; o comando mount agora exibe file= quando exibe mounts em loopback; o comando wc (não gosto do nome desse comando, parece banheiro) ganhou a opção -L que exibe linhas mais longas; o comando tar ganhou a opção -h que detecta mais hardlinks; o comando cp agora copia xattr para diretórios e não somente arquivos; o comando count recebeu a opção -l e o netcat a opção -z. Os comandos readelf, ifconfig e file receberam novas informações a serem exibidas na tela

 Como em todo projeto que se presa em seu lançamento, houveram muitas correções de bugs, limpezas, muitas novidade em sua biblioteca e nos comando como pendentes; inclusive o comando passwd foi temporariamente despromovido devido a reescrita em na infraestrutura do lib/passwd.c  que ainda não está pronta. O comando yes agora utiliza a chamada writev() para melhorar o seu desempenho e evitando muitos bugs.


Saiba mais sobre o toybox clicando aqui


Lançado OpenVi 7.5.28

Lançado OpenVi 7.5.28

Lançado OpenVi 7.5.28


 No dia 07/04 o desenvolvedor Jeffrey H. Johnson (@johnsonjh) disponibilizou a versão 7.5.28 do editor de texto OpenVi, o Portable OpenBSD vi / ex. sim existem diferente implementações do editor de texto Vi, uma outra é o NeatVI. Poucas mudanças nesta ultima versão versão são

  • Adição da opção de inicialização -C cmd similar a -c mas sempre executa o cmd.
  • Remoção de declarações include duplicadas no arquivo xinstall.c.
  • Adição da opção showfilename para exibir o nome do arquivo.
  • Evita o uso depois de livrar do frp e frp->tname.
  • Correção de fd leaks em erros de caminho.


A versão 7.5.28 do OpenVi pode ser conferida clicando aqui

Liberty Linux: Um novo fork do CentOS

Open Enterprise Linux Association

Liberty Linux: Um novo fork do CentOS

 Forks do CentOS já não são nenhuma novidade desde que a Red Hat anunciou o fim do seu suporte  na versão 8, o que rendeu muito pano para manga. A Red Hat anunciou o inicio do CentOS Stream onde as atualizações passariam primeiro pelo CentOS Stream para depois chegar oo Red Hat Enterprise Linux.

 Com isso, surgiram dois forks do CentOS, o Rocky Linux e o Alma Linux que passaram a ser financiados por grandes empresas que dependiam do CentOS (que basicamente o que faziam era pegar as atualizações do Red Hat Enterprise Linux e empacotar para as suas respectivas distribuições).



 Só que no dia 21 de Junho o Vice Presidente, Core Platforms Mike McGrath anunicou que o CentOS Stream será o único repositório para os lançamentos públicos do código fonte do Red Hat Enterprise Linux e derivados. OU SEJA, os dois forks já não passariam  mais a ter acesso aos patches do RHEL. Os projetos se pronunciaram sobre a decisão da Red Hat e os prolanos para o futuro. A matéria pode ser lida clicando aqui.



 Não somente os dois projetos se pronunciaram. A Oracle postou sua frustração com a decisão da Red Hat uma vez que sua distribuição, a Oracle Linux, é uma derivada do RHEL. Mas a empresa não parou por aí, a Oracle anunciou que estaria trabalhando para remediar esse problema, deixou recado aos desenvolvedores de Linux que estava contratando e por ultimo, deu um recado a IBM:

"Finalmente, para a IBM, aqui está uma grande ideia para você. Você diz que não quer pagar todos aqueles desenvolvedores RHEL? Veja como você pode economizar dinheiro: basta retirar de nós. Torne-se um distribuidor downstream do Oracle Linux. Ficaremos felizes em assumir o fardo."

 A Oracle não está errada já que grande parte da arrecadação (tanto da IBM quando da Red Hat) vem da Oracle e de seus parceiros e não somente dos seus próprios serviços (honestamente? Eu já temia que a Red Hat poderia ter mudanças não muito boas após ser adquirira pela IBM).

E não parou por aí, no dia seguinte, a Suse anunciou o investimento de $10 milhões em um fork do RHEL. Algo que para mim soou um tanto quando estranho já que eu não entendi a estratégia da empresa, mas OK, uma boa atitude.


 Formou-se então a parceria entre a CIQ (empresa que desenvolve o Rocky Linux) a Suse e a Oracle que deram origem a distribuição Liberty Linux ou também conhecida como OpenELA (Open Enterprise Linux Association) que passa a dar suporte de compatibilidade com o RHEL 8 e 9 (e possivelmente o 7) e assim dando sobrevida ao CentOS.


 O processo de migração é feito removendo o apontamento dos repositórios da Red Hat e apontando para os repositórios da Suse não sendo necessário reiniciar seu sistema mas também sendo possível desta forma.

Liberty 9 after RHEL 9 upgrade
Liberty 9 após atualização do RHEL 9

 A Suse também entregará o Suse Manager (ferramenta similar ao Satellite) para facilitar a administração do OpenLA e que permite transformar o RHEL em Liberty Linux de forma muito simples (o Suse Manager permite administrar outras distribuições). Também é possível obter assinatura de suporte da Suse com quatro planos para escolher: O Suse Liberty Lite, Suse Liberty Basic, Suse Liberty Professional e o Suse Liberty Entreprise.


Suse Liberty Linux Subscription plans
Planos de assinatura do Suse Liberty Linux


 Já existem empresas no Brasil que realizaram a migração do CentOS para o Liberty Linux. Desejo sucesso ao projeto e que tanto as empresas envolvidas quanto nós (usuários) saiamos ganhando com essa iniciativa.

Site oficial do OpeneLA

Mais sobre a Suse

Mais sobre a Oracle


Lançado yash 2.56.1

yash 2.56.1 realsed

Lançado yash 2.56.1

  Hoje foi lançada a versão 2.56.1 do terminal de comandos yash. A ideia por trás do Yash é ser o máximo compatível possível com a especificação POSIX e possuir suporte a recursos para interação diária e uso de scripts. Este é o terminal de comandos padrão da distribuição Glaucus Linux.

 Existem quatro novidades neste lançamento que dentre eles estão mais arquivos descritores que podem ser abertos no Cygwin; correção do bug de flag redundante no typeset -fp; correção de bug de comportamento do comandos emacs-capitalize-word; adição dos comandos emacs-search-forward-current e emacs-search-backward-current. Adição de script de conclusão para o doas.

Para baixa a versão 2.56.1 Yash, basta clicar aqui

Mais sobre a distribuição Glaucus

V coreutils: Um coreutils escrito na linguagem V

coreutils in V

V coreutils: Um coreutils escrito na linguagem V

 No ano passado eu escrevi o artigo uutils: Um coreutils escrito na linguagem Rust. Neste artigo eu mencionei que existia outro coreutils escrito na linguagem V (The V Programming Language (vlang.io). V é uma linguagem de propósito geral que foi projetada para ser simples e fácil de manter,  para oferecer bastante poder e poder ser utilizada em quase todos os campos como sistemas operacionais, web, jogos, interface gráfica, dispositivos móveis, ciência, embarcados e muito mais. Existe até mesmo um sistema operacional chamado Vinix escrito na linguagem V e que já roda Bash, GCC e V.

Vinix is an effort to write a modern, fast, and useful operating system in the V programming language.
Vinix: Um sistema operacional escrito na linguagem V

 V é similar a linguagem Go contendo melhorias que podem ser conferidas aqui e também influenciada por Oberon, Rust, Swift, Kotlin e Python. Vale lembrar que a linguagem V ainda está em versão beta (versão 0.4.4 no exato momento que escrevo este artigo) e o autor afirma que não haverá muitas mudanças, apenas melhorias.

Hot code reloading em V. altere as coisas instantaneamente sem recompilar.

 Agora vamos a o que nos interessa que é o coreutils escrito na linguagem V. o V coreutils visa ser uma versão do coreutils mais próximo possível das especificação POSIX e  com muitas extensões GNU (nisso o GNU é muito bom: extensões. apesar que a maior parte delas não foi desenvolvida pelo projeto GNU). A equipe procura desenvolver a implementação de cada comando mas que não seja 100% de paridade, especialmente peculiaridades e efeitos colaterais não intencionais. O V coreutils está sob a licença MIT.

 Eu resolvi compilar e testar os comandos do V coreutils e uma boa parte deles estão prontos; um total de 56 de 109 comandos. O processo de compilação é simples; primeiro baixe o V coreutils utilizando o comando:
git clone https://github.com/vlang/coreutils.git
 Ou baixe o pacote .zip. Com o compilador V instalado em sua máquina, digite o comando
v run build.vsh
 O processo de compilação leva pouco mais de 6 segundos para concluir (sim, muito rápido).

V coreutils compilation process
Tempo do processo de compilação do V coreutils


 A principio aqui ocorre um problema. Assim como ocorre com o Rust coreutils, achei o tamanho dos binários exageradamente enorme. O resulta do processo de compilação é um diretório bin de 60MB e facilmente cada binário ocupando 1MB mesmo linkados dinamicamente... O que é um exagero se levarmos em conta que cada binário deveria ter apenas bytes...


 Porém, eu consegui a informação com o Alexey, autor da V lang, para tentar executar o comando v -prod -skip-unused file.v. Unindo essa informação com a que eu encontrei dentro do arquivo Makefile, eu encontrei a solução de otimização dos binários executando:

v run build.vsh -prod -skip-unused

 O processo de otimização dos binários leva bem mais tempo para concluir (desta vez ~2.30 minutos para a conclusão) porém gerou binários bem menores, alguns tendo tendo 100K - 200K; alguns ainda continuaram grandes, mas OK. O diretório bin no final ficou com 11MB (quase seis vezes menor do que o anterior). O comando cp por exemplo, que anteriormente ocupava 1MB (1008K), passou a ocupar 200K ao ser otimizado. Ainda os considero grandes, mas já é um ganho enorme.

V coretutils: optmized binaries compilation time
V coretutils tempo de compilação de binários otimizados

Resultado do tamanho dos binários após utilizar as opções de otimização.


BUGS E REPORT

 Erros ainda serão visíveis. Temos que levar em conta que se trata de um programa que ainda está em sua versão 0.01, sendo desenvolvido em uma linguagem que ainda em versão beta e que faz uso de certa forma do compilador TinyCC que ficou parado por um longo tempo.


 Então se trata de um baita desafio pela frente. Por exemplo, o comando mkdir já passou na maioria dos testes manuais, mas um bug é fácil de reproduzir. Quando se cria um diretório com a opção -m e definindo as permissões que deseja (644 neste exemplo para fins de testes), ao listar o diretório criado você descobre que diretório foi criado com as permissões de escrita para o proprietário (w sendo que selecionamos leitura e escrita), leitura para outros e stick bit sendo que não selecionamos a opção de stick bit. Este é um bug que vou reportar mas também preciso descobrir se esse é um comportamento que o projeto já havia planejado


 O comando cp, ao tentar copiar um diretório para outro não existente, cria um arquivo vazio.



CONCLUSÃO

 Como já mencionei outras vezes, não existe GNU/Linux uma vez que nem todas as ferramentas que utilizamos nas distribuição são do GNU (alias, elas são a minoria) e as do GNU são substituíveis. Esse já não é o primeiro pacote de comandos que eu apresento aqui, facilmente podemos contar alguns como o embutils, o 9base, o ubase, o Rust Coreutils, o V coreutils, o FreeBSDcoreutils o ChimeraCoreutils e podemos utilizar também busybox ou o toybox e ainda mais outros podem existir.

 SEJA LIVRE DE IDEOLOGIAS INUTEIS.


O coreutils na linguagem V pode ser baixado aqui

Mais sobre o coreutils pode ser conferido aqui

Toca do Tux: A queda da GPL?
 

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 (30) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (31) comp (1) compressores (5) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (90) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (90) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) 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 (10) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (93) gerenciadores de pacotes (4) glaucus (3) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (11) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (37) kde (1) kernel (138) 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 (165) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) 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 (43) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) 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 (12) segurança digital (24) servidor web (2) servidores (2) shell (9) shell script (8) sistema operacional (25) skarnet (1) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (7) terminal (89) terminal de comandos (18) toca do tux (1) toybox (27) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (15) zsh (3)