Após dois anos de trabalho no projeto, os desenvolvedores da distribuição SerpentOS anunciaram a possibilidade de testar as principais ferramentas, incluindo:
- gerenciador de pacotes musgo;
- sistema de contêiner de musgo;
- sistema de gerenciamento de dependências moss-deps;
- sistema de montagem de pedras;
- Sistema de ocultação do serviço Avalanche;
- gerente de repositório de embarcações;
- painel de controle do cume;
- banco de dados moss-db;
- sistema de projeto de lei de bootstrapping reproduzível (bootstrap).
API pública e receitas de pacote disponíveis. O kit de ferramentas é desenvolvido principalmente usando a linguagem de programação D e o código é distribuído sob a licença Zlib. Os pacotes são escritos na linguagem de configuração YAML e compilados em um formato binário nativo .stone que inclui:
- Metadados de pacotes e suas dependências;
- Informações sobre a localização do pacote no sistema em relação a outros pacotes;
- Índice de dados em cache;
- Conteúdo dos arquivos do pacote necessários para operação.
O gerenciador de pacotes moss empresta muitos dos recursos modernos desenvolvidos em gerenciadores de pacotes como eopkg/pisi, rpm, swupd e nix/guix, enquanto mantém a visão tradicional de manipulação de pacotes. Todos os pacotes são construídos sem estado por padrão e não incluem arquivos que não sejam do sistema operacional para evitar situações em que a resolução de conflitos de pacotes ou operações de fusão sejam necessárias.
O gerenciador de pacotes usa um modelo atômico de atualização do sistema, no qual o estado do rootfs é corrigido e, após a atualização, o estado é alterado para o novo. Como resultado, se surgir algum problema durante a atualização, é possível reverter as alterações para o estado de funcionamento anterior.
Para economizar espaço em disco ao armazenar várias versões de pacotes, a desduplicação é usada com base em links físicos e um cache compartilhado. O conteúdo dos pacotes instalados está localizado no diretório /os/store/installation/N, onde N é o número da versão. Os diretórios base são vinculados ao conteúdo desse diretório usando links (por exemplo, /sbin aponta para /os/store/installation/0/usr/bin e /usr aponta para /os/installation/0/usr).
O processo de instalação do pacote consiste nas seguintes etapas:
- Escrevendo uma receita para instalação (stone.yml);
- Construindo um pacote usando boulder;
- Receber um pacote binário em formato .stone com os metadados necessários;
- Inserindo pacotes no banco de dados;
- Instalação usando o gerenciador de pacotes moss.
A antiga equipe de desenvolvimento da distribuição Solus se uniu em torno do projeto. Por exemplo, Ikey Doherty, o criador da distribuição Solus, e Joshua Strobl, um desenvolvedor-chave do desktop Budgie, que anunciou anteriormente sua renúncia do conselho de administração (Core Team) do projeto Solus, estão participando do desenvolvimento de a distribuição SerpentOS. poderes do líder responsável pela interação com os desenvolvedores e desenvolvimento da interface do usuário (Experience Lead).
Os desenvolvedores do SerpentOS estão incentivando pessoas com conhecimento da linguagem de programação D a se juntarem no desenvolvimento de ferramentas básicas e/ou na escrita de receitas de pacotes, e pessoas não técnicas estão sendo solicitadas a ajudar a traduzir a documentação para vários idiomas.
Fonte: opennet.ru