Riporto le prime impressioni e considerazioni dopo una decina di giorni che utilizzo come sistema operativo nixos.
Nixos è una distribuzione gnu/linux nata attorno al gestore di pacchetti nix ed ha delle caratteristiche abbastanza particolari rispetto alla maggior parte delle altre distribuzioni. Nix, come gestore di pacchetti, è utilizzabile su qualunque distribuzione (ed anche su macos a quanto ho capito), ma utilizzarlo come base del sistema operativo è sicuramente una scelta interessante.
Nixos è una distribuzione gestita in maniera dichiarativa invece che imperativa, questo vuol dire che tutte le caratteristiche del sistema operativo sono descritte in un file di configurazione ed ogni volta che si apportano cambiamenti al suddetto file si può ricostruire il sistema con le nuove caratteristiche, una delle cose interessanti di questo sistema è che la vecchia configurazione ed i vecchi pacchetti vengono mantenuti come "vecchia generazione" a cui si può far ritorno se qualcosa della "nuova generazione" non funzionasse adeguatamente. Quindi anche nel caso di un aggiornamento di sistema si può fare il rollback ad una versione precedente senza problemi (un po' come avviene utilizzando il file system btrfs nelle distribuzioni "normali"). Praticamente le distribuzioni imperative quando fanno un aggiornamento o cambiano delle impostazioni di sistema sovrascrivono il precedente stato distruggendolo, nel caso di nixos invece non viene sovrascritto nulla, per esempio i pacchetti aggiornati non verranno sovrascritti ma installati in un'altra posizione rispetto a quelli più vecchi.
Questo funzionamento ha degli indiscutibili vantaggi ma anche alcuni svantaggi:
VANTAGGI
- Sistema virtualmente indistruttibile con la possibilità di fare il rollback ad una versione precedente nel caso di problemi
- Il sistema è in larga parte riproducibile: se voglio installare lo stesso sistema con gli stessi programmi e le stesse configurazioni su un altro computer (o per esempio sullo stesso computer nel caso di un cambio di hard disk) è possibile farlo semplicemente utilizzando lo stesso file di configurazione di nixos
- Repository estremamente ricco (più di 80000 pacchetti)
- Comunità abbastanza amichevole per i nuovi arrivati che cercano aiuto (forum, chat telegram e matrix)
- Possibilità di installare ed usare contemporaneamente diverse versioni dello stesso pacchetto.
- Possibilità di installare "momentaneamente" un qualunque pacchetto in una shell di terminale dedicata che una volta chiusa "dimentica" il pacchetto.
SVANTAGGI
- Il sistema non utilizza il FHS (Filesystem Hierarchy Standard) cioè la struttura delle cartelle tipica di linux, questo vuol dire che i vari programmi (anche i semplici script bash) devono essere adattati per funzionare correttamente su nixos e potrebbe essere complicato eseguire programmi esterni ai repository della distribuzione.
- Indubbiamente la curva d'apprendimento non è semplicissima e la documentazione frammentaria non aiuta, in compenso la comunità (come detto) mi sembra ben disposta ad aiutare i nuovi arrivati.
- La possibilità dei rollback implica che vengano mantenute più versioni degli stessi pacchetti, per cui la distribuzione occupa inevitabilmente più spazio su disco rispetto alle distribuzioni "classiche" (dopo gli iniziali dieci giorni di utilizzo, in cui ho sperimentato molto creando ~100 generazioni, quando ho pulito il sistema dalle vecchie generazioni ho recuperato ~15GB di spazio ed attualmente con kde/plasma il sistema occupa ~40GB circa quanto occupava con un sistema debian analogo con installati più programmi, ma il punto 6 dei vantaggi in qualche modo mitiga il problema)
Dopo appena una decina di giorni devo dire che sono molto soddisfatto dalla distribuzione:
- L'installazione può essere fatta tramite terminale o installer grafico, l'installer è molto basilare ma funziona bene e facilita le cose installando comunque una versione estremamente minimale dell'eventuale DE scelto.
- Per quanto complicato addentrarsi nelle varie configurazioni (per ora sto usando la configurazione base, lasciando da parte configurazioni più avanzate come home-manager e flakes che devo ancora capire bene come funzionano), nel giro di un paio di giorni sono riuscito a far funzionare ed impostare la maggior parte dei programmi e dei servizi che mi servono
- Indubbiamente serve pazienza e tempo da dedicare allo studio della distribuzione, uso linux dal 2009 e mi sembra di essere in qualche modo tornato indietro a quel periodo in cui l'ho scoperto.