Kahden vuoden työskenneltyään projektin parissa SerpentOS-jakelun kehittäjät ilmoittivat mahdollisuudesta testata päätyökalupakkia, joka sisältää:
- moss-paketinhallinta;
- sammal-säiliöjärjestelmä;
- moss-deps-riippuvuuksien hallintajärjestelmä;
- lohkareiden kokoonpanojärjestelmä;
- Lumivyörypalvelun piilotusjärjestelmä;
- alusten säilytyspaikan hoitaja;
- ohjauspaneeli huippukokous;
- moss-db-tietokanta;
- toistettavissa oleva bootstrap-järjestelmä (bootstrap) -lakiesitys.
Julkinen API ja pakettireseptit ovat saatavilla. Työkalupakki on pääasiassa kehitetty D-ohjelmointikielellä, ja koodi jaetaan Zlib-lisenssin alaisuudessa. Paketit kirjoitetaan YAML-konfiguraatiokielellä ja käännetään omaan .stone-binäärimuotoon, joka sisältää:
- Paketin metatiedot ja sen riippuvuudet;
- Tietoa paketin sijainnista järjestelmässä suhteessa muihin paketteihin;
- Välimuistissa olevien tietojen indeksi;
- Toiminnan edellyttämien pakettitiedostojen sisältö.
Moss-paketinhallinta lainaa monia moderneja ominaisuuksia, jotka on kehitetty pakettienhallinnoissa, kuten eopkg/pisi, rpm, swupd ja nix/guix, säilyttäen samalla perinteisen lähestymistavan pakettien hallintaan. Kaikki paketit rakennetaan oletusarvoisesti tilattomassa tilassa, eivätkä ne sisällä käyttöjärjestelmätiedostoja, jotta vältetään ristiriitojen ratkaisua tai yhdistämistä vaativat tilanteet.
Pakettienhallitsija käyttää atomitason järjestelmän päivitysmallia, joka tallentaa rootfs-tilan ja vaihtaa uuteen päivityksen jälkeen. Siksi, jos päivityksen aikana ilmenee ongelmia, muutokset voidaan palauttaa edelliseen toimintatilaan.
Levytilan säästämiseksi useita pakettiversioita tallennettaessa deduplikaatio toteutetaan käyttämällä kovia linkkejä ja jaettua välimuistia. Asennettujen pakettien sisältö tallennetaan hakemistoon /os/store/installation/N, jossa N on versionumero. Perushakemistot on linkitetty tämän hakemiston sisältöön (esimerkiksi /sbin osoittaa hakemistoon /os/store/installation/0/usr/bin ja /usr osoittaa hakemistoon /os/installation/0/usr).
Paketin asennusprosessi koostuu seuraavista vaiheista:
- Asennusreseptin kirjoittaminen (stone.yml);
- Paketin kokoaminen lohkareen avulla;
- Binääripaketin hankkiminen .stone-muodossa tarvittavine metatiedoineen;
- Pakettien syöttäminen tietokantaan;
- Asennus Moss-paketinhallintaohjelmalla.
Vanha Solus-kehitystiimi on kokoontunut projektin ympärille. Esimerkiksi Solus-jakelun luoja Ikey Doherty ja Budgie-työpöytäsovelluksen avainkehittäjä Joshua Strobl osallistuvat SerpentOS-jakelun kehitykseen. Strobl ilmoitti aiemmin eroavansa Solus-ydintiimistä ja siirtyvänsä kokemusjohtajan tehtävään, joka vastaa kehittäjien sitouttamisesta ja käyttöliittymäkehityksestä.
SerpentOS-kehittäjät kannustavat D-ohjelmointikieltä osaavia henkilöitä osallistumaan ydintyökaluketjun ja/tai pakettireseptien kehittämiseen ja muita kuin teknisiä henkilöitä auttamaan dokumentaation kääntämisessä eri kielille.
Lähde: opennet.ru
