Dopo due anni di lavoro sul progetto, gli sviluppatori della distribuzione SerpentOS hanno annunciato la possibilità di testare gli strumenti principali, che includono:
- il gestore di pacchetti moss;
- il sistema di container moss-container;
- il sistema di gestione delle dipendenze moss-deps;
- il sistema di compilazione boulder;
- il sistema di occultamento dei servizi avalanche;
- il gestore dei repository vessel;
- dashboard summit;
- il database moss-db;
- il sistema di bootstrap riproducibile bill. Sono disponibili un'API pubblica e ricette per pacchetti. Per lo sviluppo degli strumenti viene principalmente utilizzato il linguaggio di programmazione D, e il codice è distribuito sotto licenza Zlib. I pacchetti sono scritti nel linguaggio di configurazione YAML e compilati in un formato binario proprietario .stone, che comprende:
Metadati del pacchetto e le sue dipendenze;
- Informazioni sulla posizione del pacchetto nel sistema rispetto ad altri pacchetti;
- Indice dei dati memorizzati nella cache;
- Contenuto dei file del pacchetto necessari per il funzionamento.
- Il gestore di pacchetti moss attinge a molte funzionalità moderne sviluppate in gestori di pacchetti come eopkg/pisi, rpm, swupd e nix/guix, mantenendo comunque una visione tradizionale sulla manipolazione dei pacchetti. Tutti i pacchetti sono compilati per impostazione predefinita in modalità stateless e non includono file non correlati al sistema operativo, per evitare situazioni in cui sia necessario risolvere conflitti tra pacchetti o operazioni di fusione.
Il gestore di pacchetti utilizza un modello di aggiornamento atomico del sistema, in cui lo stato del rootfs è fissato, e dopo l'aggiornamento, lo stato viene commutato su uno nuovo. Di conseguenza, se durante l'aggiornamento si verificano problemi, è possibile ripristinare le modifiche allo stato di lavoro precedente.
Per risparmiare spazio su disco durante il salvataggio di più versioni di pacchetti, viene applicata la deduplicazione basata su hard link e cache condivisa. Il contenuto dei pacchetti installati è posizionato nella directory /os/store/installation/N, dove N è il numero di versione. I contenuti di questa directory sono collegati ai percorsi di base tramite link (ad esempio, /sbin punta a /os/store/installation/0/usr/bin, e /usr punta a /os/installation/0/usr).
Il processo di installazione dei pacchetti si compone delle seguenti fasi:
Scrittura della ricetta di installazione (stone.yml);
- Compilazione del pacchetto utilizzando boulder;
- Ottenimento del pacchetto binario nel formato .stone con i metadati necessari;
- Ricezione di un pacchetto binario nel formato .stone con i metadati necessari;
- Registrazione nel database dei pacchetti;
- Installazione tramite il gestore di pacchetti moss.
Attorno al progetto si è unito un vecchio team di sviluppatori della distribuzione Solus. Ad esempio, nello sviluppo della distribuzione SerpentOS partecipano Ikey Doherty, creatore della distribuzione Solus, e Joshua Strobl, sviluppatore chiave del desktop Budgie, che ha precedentemente annunciato il suo ritiro dal Consiglio di gestione (Core Team) del progetto Solus e ha rinunciato ai suoi poteri di leader responsabile dell'interazione con gli sviluppatori e dello sviluppo dell'interfaccia utente (Experience Lead).
Gli sviluppatori di SerpentOS invitano specialisti che conoscono il linguaggio di programmazione D a unirsi allo sviluppo degli strumenti principali e/o alla scrittura di ricette per pacchetti, mentre chiedono ai non tecnici di aiutare nella traduzione della documentazione in diverse lingue.
Fonte: opennet.ru
