După doi ani de lucru la proiect, dezvoltatorii distribuției SerpentOS au anunțat posibilitatea testării instrumentarului principal, care include:
- managerul de pachete moss;
- sistemul de containere moss-container;
- sistemul de gestionare a dependențelor moss-deps;
- sistemul de construire boulder;
- sistemul de ascundere a serviciilor avalanche;
- managerul de repozitorii vessel;
- panoul de control summit;
- baza de date moss-db;
- sistemul de bootstrapping reproducibil (bootstrap) bill.
Sunt disponibile API public și rețete de pachete. Pentru dezvoltarea instrumentarului, se folosește în principal limbajul de programare D, iar codul este distribuit sub licența Zlib. Pachetele sunt scrise în limbajul de configurare YAML și sunt compilate într-un format binar propriu .stone, care include:
- Metadatele pachetului și dependențele acestuia;
- Informații despre localizarea pachetului în sistem în raport cu alte pachete;
- Indexul datelor cache;
- Conținutul fișierelor pachetului necesare pentru funcționare.
Managerul de pachete moss împrumută multe caracteristici moderne dezvoltate în manageri de pachete precum eopkg/pisi, rpm, swupd și nix/guix, menținând în același timp o viziune tradițională asupra manipulării pachetelor. Toate pachetele sunt compilate implicit în modul stateless și nu includ fișiere care nu sunt legate de sistemul de operare, pentru a evita situațiile în care este necesară soluționarea conflictelor între pachete sau operațiuni de îmbinare.
Managerul de pachete folosește un model atomic de actualizare a sistemului, în care starea rootfs este înregistrată, iar după actualizare starea este schimbată la cea nouă. Drept urmare, dacă în timpul actualizării apar probleme, există posibilitatea de a reveni la starea de lucru anterioară.
Pentru economisirea spațiului pe disc atunci când sunt stocate mai multe versiuni de pachete, se aplică deduplicarea bazată pe linkuri dure și cache partajat. Conținutul pachetelor instalate este plasat în directorul /os/store/installation/N, unde N este numărul versiunii. Conținutul acestui director este legat prin linkuri de directoarele de bază (de exemplu, /sbin indică către /os/store/installation/0/usr/bin, iar /usr către /os/installation/0/usr).
Procesul de instalare a pachetelor constă în următorii pași:
- Scrierea rețetei de instalare (stone.yml);
- Construirea pachetului cu ajutorul boulder;
- Obținerea pachetului binar în format .stone cu metadatele necesare;
- Adăugare în baza de date a pachetelor;
- Instalare cu managerul de pachete moss.
În jurul proiectului s-a reunit o echipă veche de dezvoltatori ai distribuției Solus. De exemplu, în dezvoltarea distribuției SerpentOS participă Ikey Doherty, creatorul distribuției Solus, și Joshua Strobl, dezvoltatorul-cheie al desktop-ului Budgie, care a anunțat anterior plecarea din consiliul de administrație (Core Team) al proiectului Solus și a renunțat la rolul de lider responsabil de interacțiunea cu dezvoltatorii și dezvoltarea interfeței utilizatorului (Experience Lead).
Dezvoltatorii SerpentOS îndeamnă specialiștii care cunosc limbajul de programare D să se alăture dezvoltării instrumentarului principal și/sau scrierii rețetelor de pachete, iar specialiștii non-tehnici sunt rugați să ajute la traducerea documentației în diferite limbi.
Sursa: opennet.ro
