Po dvou letech práce na projektu vývojáři distribuce SerpentOS oznámili možnost testování hlavních nástrojů, které zahrnují:
- balíčkový manažer moss;
- systém kontejnerů moss-container;
- systém správy závislostí moss-deps;
- systém sestavení boulder;
- systém skrývání služeb avalanche;
- manažer repozitářů vessel;
- ovládací panel summit;
- databázi moss-db;
- systém reprodukovatelného bootstrapování (bootstrap) bill.
K dispozici jsou veřejný API a recepty balíků. Pro vývoj nástrojů se převážně používá programovací jazyk D, a kód se šíří pod licencí Zlib. Balíky se píší v konfiguračním jazyce YAML a sestavují se do vlastního binárního formátu .stone, který zahrnuje:
- Metadatové informace balíku a jeho závislostí;
- Informace o umístění balíku v systému ve vztahu k ostatním balíkům;
- Index vyrovnaných dat;
- Obsah souborů balíku nezbytných pro jeho fungování.
Balíčkový manažer moss přejímá mnoho moderních možností, které se vyvíjejí v takových balíčkových manažerech jako eopkg/pisi, rpm, swupd a nix/guix, přičemž si zachovává tradiční přístup k manipulaci s balíky. Všechny balíky jsou ve výchozím nastavení sestavovány v režimu stateless a neobsahují soubory nesouvisející s operačním systémem, aby se předešlo situacím, kdy by bylo nutné řešit konflikty mezi balíky nebo provádět sloučení.
Balíčkový manažer používá atomární model aktualizace systému, při kterém se zaznamenává stav rootfs, a po aktualizaci se stav přepne na nový. V důsledku toho, pokud během aktualizace nastanou nějaké problémy, je možné vrátit změny do předchozího pracovního stavu.
Pro šetření diskového prostoru při uchovávání více verzí balíků se používá deduplikace na základě tvrdých odkazů a sdíleného cache. Obsah nainstalovaných balíků je umístěn v adresáři /os/store/installation/N, kde N je číslo verze. K obsahu tohoto adresáře se pomocí odkazů připojují základní adresáře (například /sbin odkazuje na /os/store/installation/0/usr/bin, a /usr na /os/installation/0/usr).
Proces instalace balíků se skládá z následujících kroků:
- Napsání receptu pro instalaci (stone.yml);
- Sestavení balíku pomocí boulder;
- Získání binárního balíku ve formátu .stone s potřebnými metadaty;
- Zápis do databáze balíčků;
- Instalace pomocí správce balíčků moss.
Kolem projektu se shromáždil starý tým vývojářů distribuce Solus. Například na vývoji distribuce SerpentOS se podílejí Ikey Doherty, zakladatel distribuce Solus, a Joshua Strobl, klíčový vývojář desktopu Budgie, který dříve oznámil svůj odchod z řídícího výboru projektu Solus a vzdal se svých pravomocí vedoucího odpovědného za interakci s vývojáři a rozvoj uživatelského rozhraní.
Vývojáři SerpentOS vyzývají odborníky, kteří znají programovací jazyk D, aby se připojili k vývoji hlavního nástroje a/nebo psaní receptů balíčků, a netechnické odborníky žádají o pomoc s překladem dokumentace do různých jazyků.
Zdroj: opennet.ru
