NixOS 15.09: distribuzione Linux dichiarativa e riproducibile

NixOS 15.09 (ottobre 2015): distribuzione Linux basata sul package manager Nix di Eelco Dolstra (2003). Configurazione dichiarativa, builds riproducibili, rollback atomici, multiple versioni coesistenti. Anti-rpmhell.

Open Source NixOSNixEelco DolstraLinuxDeclarativeReproducibleOpen Source

Un OS come codice

Nix — package manager sviluppato da Eelco Dolstra durante il suo PhD (2003-2006, Utrecht University) — introduce un paradigma radicale: ogni pacchetto vive in /nix/store/<hash>-name-version/, immutabile, identificato dall’hash delle sue dipendenze transitive. Due installazioni con gli stessi input producono lo stesso hash → builds riproducibili.

NixOS, distribuzione Linux costruita su Nix, evolve dal 2005. La release 15.09 (ottobre 2015) consolida il naming scheme YY.MM e la maturità produzione. Licenza MIT.

Caratteristiche

  • Configurazione dichiarativa in /etc/nixos/configuration.nix:
{
    services.nginx.enable = true;
    services.postgresql.enable = true;
    users.users.alice = {
        isNormalUser = true;
        extraGroups = [ "wheel" ];
    };
}

nixos-rebuild switch applica la configurazione. L’intero sistema è deterministico: stessa configurazione, stesso sistema bit-identico.

  • Rollback atomici — ogni generazione del sistema è un link; si può tornare indietro con nixos-rebuild --rollback
  • Multiple versioni coesistentipython-3.9 e python-3.11 nello stesso sistema, nessun conflitto
  • User profile — utenti diversi con pacchetti diversi, senza sudo
  • Development shellsnix-shell -p foo bar crea ambiente temporaneo con pacchetti

Reproducibilità

Nix è conforme a reproducible builds: un pacchetto compilato da Nix file identici dà bit-identical output. Valore per:

  • Supply chain security — verifica di build integrity
  • Scientific computing — reproducibility di analisi
  • DevOps — dev/staging/prod bit-identici
  • Fix di bug legacy — riproduzione esatta di vecchi build environment

NixOS, Guix, Nix standalone

  • NixOS — distribuzione completa basata su Nix
  • Nix (package manager standalone) — installabile su macOS, altre Linux, WSL
  • Guix (GNU) — fork filosofia Nix con Guile Scheme e focus FSF-pure

Nel contesto italiano

Adoption limitata ma crescente:

  • HPC scientifico — per reproducibility
  • DevOps sofisticati — piccoli cluster gestiti in Nix
  • Developer individuali — dev environment per-progetto
  • Ricerca accademica — università di Torino, Trento, Pisa

Curva di apprendimento ripida (linguaggio Nix funzionale è peculiare) ma impatto architetturale significativo.


Riferimenti: NixOS 15.09 (ottobre 2015). Eelco Dolstra, Utrecht University (PhD thesis 2006). Nix package manager. Licenza MIT. /nix/store content-addressed. Configuration.nix dichiarativa. Determinismo e reproducible builds.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi