Na twee jaar werk aan het project hebben de ontwikkelaars van de SerpentOS-distributie de mogelijkheid aangekondigd om de belangrijkste toolkit te testen, die het volgende omvat:
- moss pakketbeheerder;
- moscontainersysteem;
- moss-deps afhankelijkheidsbeheersysteem;
- systeem voor het monteren van rotsblokken;
- Lawine-onderdrukkingssysteem;
- repository manager schip;
- controlepaneel bijeenkomst;
- moss-db-database;
- Bill's reproduceerbare bootstrapping-systeem.
Er zijn een openbare API en pakketrecepten beschikbaar. De toolkit is voornamelijk ontwikkeld in de programmeertaal D en de code wordt gedistribueerd onder de Zlib-licentie. Pakketten worden geschreven in de YAML-configuratietaal en geassembleerd in een eigen binair formaat, .stone, dat het volgende bevat:
- Pakketmetagegevens en de afhankelijkheden ervan;
- Informatie over de locatie van het pakket in het systeem ten opzichte van andere pakketten;
- Gecachte gegevensindex;
- Inhoud van de pakketbestanden die nodig zijn voor de werking.
De pakketbeheerder Moss leent veel van de moderne functies die zijn ontwikkeld in pakketbeheerders zoals eopkg/pisi, rpm, swupd en nix/guix, terwijl de traditionele manier van pakketmanipulatie behouden blijft. Alle pakketten worden standaard in stateless modus gebouwd en bevatten geen bestanden die niet van het besturingssysteem afkomstig zijn, om situaties te voorkomen waarin conflictoplossing of samenvoeging vereist is.
De pakketbeheerder gebruikt een atomair model voor systeemupdates, waarbij de status van de rootfs wordt hersteld en na de update wordt overgeschakeld naar een nieuwe status. Hierdoor is het mogelijk om, als er tijdens de update problemen optreden, de wijzigingen terug te draaien naar de vorige werkende status.
Om schijfruimte te besparen bij het opslaan van meerdere versies van pakketten, is deduplicatie gebaseerd op harde koppelingen en een gedeelde cache. De inhoud van geïnstalleerde pakketten wordt geplaatst in de map /os/store/installation/N, waarbij N het versienummer is. Basismappen zijn gekoppeld aan de inhoud van deze map (bijvoorbeeld: /sbin verwijst naar /os/store/installation/0/usr/bin en /usr verwijst naar /os/installation/0/usr).
Het installatieproces van pakketten bestaat uit de volgende stappen:
- Een recept voor installatie schrijven (stone.yml);
- Een pakket samenstellen met behulp van een rotsblok;
- Een binair pakket in .stone-formaat verkrijgen met de benodigde metagegevens;
- Pakketten in de database invoeren;
- Installatie met moss-pakketbeheerder.
Het oude ontwikkelteam van de Solus-distributie heeft zich rond het project geschaard. Zo nemen Ikey Doherty, de maker van de Solus-distributie, en Joshua Strobl, de belangrijkste ontwikkelaar van de Budgie-desktop, die eerder zijn vertrek uit het Solus Core Team aankondigde en aftrad als leider verantwoordelijk voor de interactie met ontwikkelaars en de ontwikkeling van de gebruikersinterface (Experience Lead), deel aan de ontwikkeling van de SerpentOS-distributie.
De ontwikkelaars van SerpentOS zijn op zoek naar mensen die de programmeertaal D kennen en die mee willen helpen aan de ontwikkeling van de kerntoolchain en/of het schrijven van pakketrecepten. Ook vragen we niet-technische mensen om te helpen de documentatie naar diverse talen te vertalen.
Bron: opennet.ru
