Premessa
Ciao! Se è la prima volta che capiti su questo sito, ti consiglio di consultare la pagina principale di questo cosiddetto Giardino Digitale per scoprire meglio cos’è e come navigarlo.
Lo stato di questa nota è al momento: 🔴 Bozza.
NixOS è il mio sistema operativo principale dal 2024 e ho deciso di scrivere questa nota sul mio Giardino Digitale per divulgare tutto ciò che ho imparato nel corso di questi anni sul ✨magico mondo✨ di NixOS e permettere a chiunque ne possa essere interessato di superare facilmente tutti gli ostacoli che ho dovuto affrontare anche io nell’usarlo.
Senza girarci troppo intorno, diciamoci le cose così come stanno. Si sa che ogni utente di Linux cerca di vendere la propria distribuzione Linux in uso come se fosse la panacea per tutti i mali di questo mondo, cercando di convincere chiunque lo ascolti di avere il cazzo più marmoreo fra tutti perché la propria distribuzione Linux è quella perfetta.
Proprio per queste ragioni, con questa nota non voglio assolutamente insinuare che NixOS sia la distribuzione perfetta, ma semplicemente offrire il mio punto di vista da utente di NixOS sulle sue peculiarità e i motivi che mi hanno spinto a sceglierla e che tutt’ora mi fanno desistere dal passare stabilmente ad altre distribuzioni.
Introduzione a NixOS
Ma quindi, cos’è NixOS e perché dovrei usarlo?
Innanzitutto, partiamo col dire che NixOS è una distribuzione Linux basata sul package manager Nix. Inizialmente Nix era disponibile per sistemi UNIX-like, ma c’erano molti dubbi sul fatto che si potesse creare a tutti gli effetti un sistema operativo basato su di esso.
Tuttavia, Eelco Dolstra (il creatore di Nix) precisò già a suo tempo che i moderni metodi di gestione delle configurazioni dei sistemi operativi, esattamente come per la distribuzione del software, erano parecchio caotici: i file di configurazione, così come i pacchetti, erano sparsi per tutto il file system
Definizione: NixOS
NixOS è una distribuzione Linux basata sul package manager Nix. È un sistema operativo dichiarativo, ossia la configurazione del sistema è dichiarata in file scritti in linguaggio Nix e gode delle proprietà di riproducibilità e di indistruttibilità.
Attenzione: usa NixOS se hai familiarità con Linux
Essendo NixOS una distribuzione Linux (anche abbastanza peculiare, data la sua caratteristica di essere dichiarativa), questa nota è rivolta a chi ha già un minimo di esperienza con altre distribuzioni più “popolari”, come Ubuntu o Debian. Nel caso tu fossi completamente novizio nel mondo di Linux, ti consiglio di prendere un po’ di dimestichezza con altre distribuzioni prima di tentare di usarlo, in modo da poter padroneggiare più facilmente i concetti espressi in questa nota.
Concetti chiave di NixOS
Ogni volta che in NixOS vogliamo apportare una modifica alla configurazione del sistema operativo, come l’installazione di un nuovo pacchetto, non si interviene direttamente sul sistema in esecuzione, ma si aggiorna la configurazione dichiarativa e si avvia un rebuild del sistema.
Definizione: rebuild
In NixOS, il rebuild è il processo con cui il sistema operativo viene ricostruito a partire dalla configurazione dichiarata, lasciando inalterate le versioni precedenti.
Ogni rebuild produce una nuova generazione.
Definizione: generazione
In NixOS, una generazione è una versione del sistema operativo risultante da una sua specifica configurazione, ottenuta da un rebuild.
Ogni generazione viene salvata in memoria e ciò permette all’utente, durante la fase di avvio del sistema, di accedere a qualsiasi configurazione salvata precedentemente
Potremmo dire che, con un rebuild, possiamo ottenere un’istantanea (la generazione) della nostra configurazione.
Osservazione: il salvataggio delle varie generazioni assicura l'indistruttibilità
Se si effettua un rebuild che in qualche modo “rompe” il sistema operativo e ne impedisce perfino l’avvio, basta tornare all’ultima generazione ancora funzionante salvata in memoria e ripartire da lì risolvendo gli errori, assicurando così l’indistruttibilità del sistema.
Diversamente, con altri sistemi operativi, se ne viene compromesso perfino l’avvio bisogna necessariamente trovare l’origine del problema e provare a ripararlo, altrimenti l’alternativa è reinstallare il sistema operativo da zero e ripartire da capo con la sua configurazione.
Consiglio: usa un controllo di versione con NixOS
Dato che ogni generazione salva con sé anche i file che l’hanno generata, ti consiglio di impostare appena possibile (preferibilmente subito dopo l’installazione di NixOS) un controllo di versione sui file di configurazione, in modo da poter sempre facilmente recuperare le generazioni precedenti.
Fonti
- 🌐 Drake Rossman, How to dualboot Windows and NixOS, Drake Rossman’s Blog.
- 📹 Vimjoyer, NixOS beginner guide, YouTube.
- 📹 Ampersand, Full NixOS Guide: Everything You Need to Know in One Place!, YouTube.