Após dois anos de trabalho no projeto, os desenvolvedores da distribuição SerpentOS anunciaram a possibilidade de testar as principais ferramentas, incluindo:
- o gerenciador de pacotes moss;
- o sistema de containers moss-container;
- o sistema de gerenciamento de dependências moss-deps;
- o sistema de construção boulder;
- o sistema de ocultação de serviços avalanche;
- o gerenciador de repositórios vessel;
- painel de controle summit;
- o banco de dados moss-db;
- o sistema de bootstrap reprodutivo (bootstrap) bill.
Estão disponíveis APIs públicas e receitas de pacotes. Para o desenvolvimento das ferramentas, o principal idioma de programação utilizado é 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 seu próprio formato binário .stone, que inclui:
- Metadados do pacote 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 funcionar.
O gerenciador de pacotes moss incorpora muitas funcionalidades modernas, desenvolvidas em gerenciadores de pacotes como eopkg/pisi, rpm, swupd e nix/guix, mantendo, no entanto, uma visão tradicional sobre a manipulação de pacotes. Todos os pacotes são, por padrão, compilados em modo stateless e não incluem arquivos não relacionados ao sistema operacional, para evitar situações que exigem a resolução de conflitos entre pacotes ou operações de mesclagem.
O gerenciador de pacotes utiliza um modelo de atualização atômica do sistema, onde o estado do rootfs é fixado e, após a atualização, o estado é alternado para o novo. Como resultado, se surgirem problemas durante a atualização, há a possibilidade de reverter as mudanças para um estado de trabalho anterior.
Para economizar espaço em disco ao armazenar várias versões de pacotes, é aplicada deduplicação baseada em links duros e um cache compartilhado. O conteúdo dos pacotes instalados é armazenado no diretório /os/store/installation/N, onde N é o número da versão. Os diretórios base são vinculados a este conteúdo por meio de links (por exemplo, /sbin aponta para /os/store/installation/0/usr/bin, e /usr para /os/installation/0/usr).
O processo de instalação de pacotes consiste nas seguintes etapas:
- Escrita da receita de instalação (stone.yml);
- Compilação do pacote com o boulder;
- Obtenção do pacote binário no formato .stone com os metadados necessários;
- Registro de pacotes no banco de dados;
- Instalação com o gerenciador de pacotes moss.
Uma velha equipe de desenvolvedores do sistema Solus se uniu em torno do projeto. Por exemplo, no desenvolvimento da distribuição SerpentOS, participam Ikey Doherty, o criador do sistema Solus, e Joshua Strobl, principal desenvolvedor do ambiente de trabalho Budgie, que anteriormente anunciou sua saída do conselho de administração do projeto Solus e renunciou às suas responsabilidades como líder de interação com desenvolvedores e desenvolvimento da interface do usuário.
Os desenvolvedores do SerpentOS convidam especialistas familiarizados com a linguagem de programação D a se juntarem ao desenvolvimento das principais ferramentas e/ou à escrita de receitas de pacotes, enquanto pedem a especialistas não técnicos que ajudem na tradução da documentação para diversos idiomas.
Fonte: opennet.ru
