4 pontos por GN⁺ 2024-01-27 | 1 comentários | Compartilhar no WhatsApp

Oasis é um pequeno sistema Linux

  • O Oasis é bastante diferente de outros sistemas operacionais baseados em Linux e está mais próximo do BSD.
  • Todo o software é ligado estaticamente, resolvendo problemas de atualização de bibliotecas e fornecendo binários totalmente independentes que podem ser copiados facilmente para outros sistemas.
  • Oferece compilações rápidas e 100% reproduzíveis, com tempos de build ideais, builds previsíveis e reproduzíveis, menos dependências de tempo de build e possibilidade de builds incrementais mesmo atravessando limites de pacotes.
  • Tem dependências mínimas de bootstrap, permitindo compilação cruzada com facilidade até mesmo em sistemas não Linux, como macOS ou OpenBSD.

Princípios

  • A complexidade do software deve ser medida incluindo todas as dependências transitivas.
  • Os executáveis devem ser ligados estaticamente.
  • Os componentes de software devem permitir personalização e modificação fáceis.
  • O código-fonte dos pacotes deve ser referenciado por URL ou submódulos git, e não incluído diretamente.
  • O /etc deve ser simples o suficiente para poder ser completamente compreendido.
  • Os patches devem ser bem organizados, ter boas descrições e sempre ser aplicados de forma limpa.

Instalação

  • O Oasis é um projeto ambicioso e ainda há muito trabalho a ser feito.
  • Os usuários devem estar acostumados a compilar seu próprio kernel e resolver problemas do sistema.
  • Se surgirem problemas, eles ficam sempre felizes em ajudar.

QEMU

  • Se você quiser experimentar o Oasis sem instalá-lo diretamente, pode usar a imagem do QEMU.
  • O arquivo inclui o sistema de arquivos raiz, o kernel Linux e um script para executar o QEMU.
  • É possível iniciar em modo gráfico com ./run e em modo serial com ./run -s.

Software

  • Usa implementações de bibliotecas e ferramentas que sejam o mais simples e pequenas possível.
  • musl, sbase, ubase, pigz, mandoc, bearssl, oksh, sdhcp, vis, byacc, perp e sinit, netsurf, samurai, velox e netbsd-curses são usados como substitutos de glibc, coreutils, util-linux, gzip, man-db, openssl, bash, dhclient/dhcpcd, vim/emacs, bison, sysvinit/systemd, chromium/firefox, ninja, Xorg e ncurses.
  • Os pacotes são agrupados em conjuntos lógicos, e a lista completa pode ser vista no diretório pkg.
  • Se algum software de sua preferência estiver faltando, ele ainda pode ser instalado via pkgsrc ou nix.

Contato

  • Para perguntas, patches e discussões gerais, é possível usar a mailing list (~mcf/oasis@lists.sr.ht) e o canal de IRC (#oasis on libera.chat).

Opinião do GN⁺

  • O Oasis oferece uma abordagem diferente dos sistemas Linux tradicionais e, com características como linkagem estática, builds rápidos e dependências mínimas de bootstrap, apresenta uma nova opção para desenvolvedores.
  • O sistema adota uma filosofia que valoriza a redução da complexidade no desenvolvimento de software e a facilidade de personalização e modificação, oferecendo uma perspectiva renovada sobre princípios de engenharia de software.
  • Embora o Oasis ainda esteja em desenvolvimento, ele pode ser uma alternativa atraente para usuários que gostam de desafios técnicos e querem um entendimento profundo do sistema.

1 comentários

 
GN⁺ 2024-01-27
Comentários do Hacker News
  • Não dá para falar muito sobre o sistema, mas disseram que a interação com a comunidade via IRC foi muito amigável. Havia planos de construir uma imagem de SO imutável para rodar como nó de Kubernetes, e com um pouco de ajuda isso foi bem-sucedido.

  • O link estático sugere que a imagem base e a memória em tempo de execução podem ficar maiores devido a várias cópias das bibliotecas. A simplicidade do link estático é boa, mas isso parece ir contra a ideia de "reduzir o tamanho".

  • Foi fornecido um link para uma discussão anterior de agosto de 2022.

  • Alguém gostaria de saber qual é o tamanho da instalação padrão. Não encontrou resposta em lugar nenhum, e o link para a imagem do QEMU atualmente está quebrado. Por exemplo, ficou a curiosidade de como isso se compara ao Alpine com um conjunto de pacotes semelhante.

  • Houve curiosidade sobre quais seriam os casos de uso e quais as vantagens de usar o compilador C croc. Quais seriam os benefícios de usar croc em vez de TCC, e foi interessante conhecer o navegador Netsurf. No entanto, como ele usa o motor JS Duktape, pode haver problemas de desempenho.

  • Havia um comentário (apagado) reclamando que não era possível acessar o Github com o JavaScript desativado. Como o repositório do Oasis também é espelhado no sourcehut, isso pode ser mais aceitável.

  • michaelforney também fez o port do st para wayland. O predecessor do Oasis é o sta.li.

  • Houve curiosidade sobre o tamanho das bibliotecas estáticas. Bibliotecas dinâmicas podem compartilhar espaço de endereçamento, mas no caso das estáticas o linker pode remover rotinas não utilizadas, então pode haver uma eficiência inesperada. Além disso, pode até ser mais rápido.

  • Houve curiosidade sobre como comparar musl e a glibc tradicional, e se há diferença de desempenho entre as duas bibliotecas. Recentemente, o uso de musl vem crescendo nos ecossistemas Rust e Zig.

  • Avaliação positiva sobre as escolhas interessantes e por não ser apenas mais uma distribuição Linux.