Après deux ans de travail sur le projet, les développeurs de la distribution SerpentOS ont annoncé la possibilité de tester l'outil principal, qui inclut :
- le gestionnaire de paquets moss ;
- le système de conteneurs moss-container ;
- le système de gestion des dépendances moss-deps ;
- le système de construction boulder ;
- le système de masquage des services avalanche ;
- le gestionnaire de dépôts vessel ;
- le panneau de contrôle summit ;
- la base de données moss-db ;
- le système de démarrage reproductible (bootstrap) bill.
Une API publique et des recettes de paquets sont disponibles. Le développement de l'outil utilise principalement le langage de programmation D, et le code est distribué sous la licence Zlib. Les paquets sont écrits en langage de configuration YAML et sont assemblés dans un format binaire propre .stone, qui inclut :
- Les métadonnées du paquet et ses dépendances ;
- Des informations sur l'emplacement du paquet dans le système par rapport à d'autres paquets ;
- Un index des données mises en cache ;
- Le contenu des fichiers du paquet nécessaires à son fonctionnement.
Le gestionnaire de paquets moss emprunte de nombreuses fonctionnalités modernes développées dans des gestionnaires de paquets tels que eopkg/pisi, rpm, swupd et nix/guix, tout en conservant une approche traditionnelle de la manipulation des paquets. Tous les paquets sont par défaut construits en mode stateless et n'incluent pas de fichiers non liés au système d'exploitation, afin d'éviter les situations nécessitant une résolution de conflits entre paquets ou des opérations de fusion.
Le gestionnaire de paquets utilise un modèle de mise à jour atomique du système, où l'état de rootfs est enregistré, puis après la mise à jour, l'état est basculé sur le nouveau. Par conséquent, si des problèmes surviennent lors de la mise à jour, il est possible de revenir à un état de fonctionnement antérieur.
Pour économiser de l'espace disque en stockant plusieurs versions de paquets, une dé-duplication basée sur des liens durs et un cache partagé est appliquée. Le contenu des paquets installés est placé dans le répertoire /os/store/installation/N, où N est le numéro de version. Ce contenu est relié par des liens à des répertoires de base (par exemple, /sbin pointe vers /os/store/installation/0/usr/bin, et /usr vers /os/installation/0/usr).
Le processus d'installation des paquets se compose des étapes suivantes :
- Rédaction de la recette d'installation (stone.yml) ;
- Assemblage du paquet à l'aide de boulder ;
- Obtention d'un paquet binaire au format .stone avec les métadonnées nécessaires ;
- Enregistrement des paquets dans la base de données ;
- Installation via le gestionnaire de paquets moss.
L'ancienne équipe de développeurs de la distribution Solus s'est réunie autour du projet. Par exemple, Ikey Doherty, créateur de Solus, et Joshua Strobl, développeur clé du bureau Budgie, participent au développement de la distribution SerpentOS. Joshua avait précédemment annoncé son départ du conseil de gestion du projet Solus et avait renoncé à ses responsabilités de leader en charge des interactions avec les développeurs et du développement de l'interface utilisateur.
Les développeurs de SerpentOS invitent les spécialistes connaissant le langage de programmation D à se joindre au développement des outils principaux et/ou à l'écriture des recettes de paquets, tandis que les non-techniciens sont invités à aider à la traduction de la documentation dans différentes langues.
Source : opennet.ru
