NixOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
DPD- (discussione | contributi)
m Bot: inserimento portale (via JWB)
 
(8 versioni intermedie di 6 utenti non mostrate)
Riga 1:
{{Sistema operativo
|nome = NixOS
|logo = NixOS_logo.svg
|screenshot =
|sviluppatore = NixOS contributors
NixOS Foundation<ref>{{citecita web |url=https://nixos.org/community/ |titletitolo=Community - nixos.org |access-dateaccesso=2022-09-23 settembre 2022 |archive-urlurlarchivio=https://archive.todayis/20220923195051/https://nixos.org/community/ |archive-date=2022-09-23 |url-statusurlmorto=live}}</ref><ref>{{citecita web |url=https://github.com/NixOS/nixos-foundation |titletitolo=NixOS/nixos-foundation - Github |websitesito=[[GitHub]] |access-dateaccesso=2022-09-23 settembre 2022 |archive-urlurlarchivio=https://archive.todayis/20220923194605/https://github.com/NixOS/nixos-foundation |archive-date=2022-09-23 |url-statusurlmorto=live}}</ref>
|famiglia = [[Unix-like]]
|prima_versione_pubblicata = 0.1
Riga 10 ⟶ 9:
|ultima_versione_pubblicata =
|data_ultima_pubblicazione =
|tipo_kernel = [[Linux]] ([[Kernel#Kernel_monoliticiKernel monolitici|monolitico]] modulare)
|piattaforme_supportate = [[i686]], [[AMD64]], [[AArch64]]
|gestore_pacchetti = [[Nix (gestore di pacchetti)|Nix]]
|interfaccia_utente = Varie
|tipologia_licenza = libero
|licenza = [[Licenza MIT|MIT]]<ref>{{citecita web|url=https://github.com/NixOS/nixpkgs/blob/master/nixos/COPYING |titletitolo=nixpkgs/COPYING at master · NixOS/nixpkgs · GitHub |publishereditore=Github.com |access-dateaccesso=2015-09-19 settembre 2015}}</ref> e [[GNU General Public License|GNU GPL]]<ref>I software distribuiti possono avere altre licenze. Alcuni sono proprietari, ma il loro uso va abilitato.</ref>
|stadio_sviluppo = Stabile
}}'''NixOS''' è una [[Distribuzione Linux|distribuzione GNU/Linux]] [[Software libero|libera]] e [[open source]] basata sul [[gestore di pacchetti]] [[Nix (gestore di pacchetti)|Nix]]. NixOS adotta un approccio [[immutabile]] e un modello di [[aggiornamento]] [[Operazione atomica|atomico]]. <ref>{{Cita web|url=https://www.howtogeek.com/what-is-an-immutable-linux-distro/|dataaccessotitolo= |accesso=7 dicembre 2023-12-07}}</ref> Si configura in maniera [[Programmazione dichiarativa|dichiarativa]], consentendo così [[riproducibilità]] e [[portabilità]]. <ref>{{Cita web|url=http://distrowatch.com/table.php?distribution=nixos|dataaccessotitolo= |accesso=2015-09-19 settembre 2015}}</ref>
|sito_web = https://nixos.org/
}}'''NixOS''' è una [[Distribuzione Linux|distribuzione GNU/Linux]] [[Software libero|libera]] e [[open source]] basata sul [[gestore di pacchetti]] [[Nix (gestore di pacchetti)|Nix]]. NixOS adotta un approccio [[immutabile]] e un modello di [[aggiornamento]] [[Operazione atomica|atomico]]. <ref>{{Cita web|url=https://www.howtogeek.com/what-is-an-immutable-linux-distro/|dataaccesso=2023-12-07}}</ref> Si configura in maniera [[Programmazione dichiarativa|dichiarativa]], consentendo così [[riproducibilità]] e [[portabilità]]. <ref>{{Cita web|url=http://distrowatch.com/table.php?distribution=nixos|dataaccesso=2015-09-19}}</ref>
 
La configurazione di NixOS è divisa in [[Modulo (informatica)|moduli]] componibili, ed è scritta in un [[Linguaggio di programmazione|linguaggio]] [[Programmazione funzionale|funzionale]] ad-hoc, chiamato anch'esso Nix. I [[Pacchetto (software)|pacchetti]] a disposizione sono definiti nel progetto [https://github.com/NixOS/nixpkgs Nixpkgs].
 
== Storia ==
Nel 2003, [[Eelco Dolstra]] ha iniziato a sviluppare Nix come [[progetto di ricerca]]. <ref name="original-paper">{{Cita libro|nome=Eelco|cognome=Dolstra|titolo=Software Configuration Management|url=https://archive.org/details/springer_10.1007-3-540-39195-9|anno=2003|pp=102–117[https://archive.org/details/springer_10.1007-3-540-39195-9/page/n110 102]–117|volume=2649|ISBN=978-3-540-14036-8|DOIdoi=10.1007/3-540-39195-9_8|serie=Lecture Notes in Computer Science}}</ref> Lo scopo del progetto era quello di realizzare un sistema per un corretto [[Deployment|deploy]] del software. <ref>{{Cita web|url=https://jonathanlorimer.dev/posts/nix-thesis.html|titolo= |autore=Jonatha Lorimer}}</ref> Ha influito sul progetto anche Eelco Visser, che aveva supervisionato il suo dottorato di ricerca [[Università di Utrecht|all'Università di Utrecht]]. <ref>{{Cita web|url=https://sandervanderburg.blogspot.com/2022/04/in-memoriam-eelco-visser-1966-2022.html|titolo= |sito=Sander van der Burg's blog|dataaccessoaccesso=3 aprile 2024-04-03}}</ref> Nel 2006, Armijn Hemel presentò NixOS come risultato della sua [[Tesi di laurea|tesi]] [[Laurea magistrale|magistrale]] al medesimo [[Università|ateneo]]. <ref>{{Cita web|url=https://www.usenix.org/legacy/event/hotos07/tech/full_papers/dolstra/dolstra_html/|sitotitolo=www.usenix.org |dataaccessoaccesso=4 marzo 2024-03-04}}</ref>
 
Nel 2015, è stata istituita la [[NixOS Foundation]], con sede nei [[Paesi Bassi]]. Il suo obiettivo è quello di supportare progetti come NixOS che implementano il modello di deploy [[Purità (programmazione funzionale)|funzionale puro]]. <ref>{{Cita web|url=http://nixos.org/nixos/foundation.html|dataaccessotitolo= |accesso=2015-09-19 settembre 2015}}</ref>
 
=== Versioni ===
Riga 120 ⟶ 118:
|-
|}
NixOS pubblica due versioni stabili l'anno, solitamente verso la fine di maggio e la fine di novembre. <ref>{{Cita web|url=https://nixos.org/governance.html|dataaccessotitolo= |accesso=2020-08-28 agosto 2020}}</ref> <ref>{{Cita web|url=https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md|titolo= |sito=[[GitHub]]}}</ref> <ref>{{Cita web|url=https://nixos.org/blog/announcements|dataaccessotitolo= |accesso=9 dicembre 2023-12-09}}</ref>
 
== Funzionalità ==
[[File:Nixos-installer.png|miniatura| Installazione grafica guidata di NixOS]]
 
=== Configurazione dichiarativa ===
All'interno di NixOS, l'intero sistema operativo viene generato dal gestore dei pacchetti Nix a partire da un file di configurazione, scritto nel [https://nixos.org/manual/nix/stable/language/index.html linguaggio Nix].
 
Questo vale anche per il [[kernel]], le [[applicazioni]], i pacchetti di sistema e [[File di configurazione|i file di configurazione]].
 
La creazione di una nuova versione non sovrascriverà le versioni precedenti. <ref>{{Cita conferenza|url=https://edolstra.github.io/pubs/hotos-final.pdf}}</ref> Infatti è sempre possibile scegliere di avviare una vecchia configurazione.
 
Una [[Computer|macchina]] con NixOS viene configurata scrivendo una specifica delle funzionalità che l'utente desidera in un file di configurazione globale (solitamente in <code>/etc/nixos</code> ). Nell'esempio si può vedere una specifica minima di un sistema che esegue un [[Demone (informatica)|demone]] SSH: <ref>{{Cita web|url=http://nixos.org/nixos/about.html|dataaccessotitolo= |accesso=2015-09-19 settembre 2015}}</ref><syntaxhighlight lang="nix">
{
boot.loader.grub.device = "/dev/sda";
Riga 143 ⟶ 141:
Poiché le configurazioni di Nix sono pure e [[Programmazione dichiarativa|dichiarative]], la loro [[Valutazione (informatica)|valutazione]] produrrà sempre lo stesso risultato, indipendentemente dai pacchetti o dai file di configurazione presenti nel sistema.
 
NixOS utilizza le [[Transazione (basi di dati)|transazioni]] durante l'applicazione della configurazione, rendendo atomiche le modifiche alla configurazione, come gli aggiornamenti. Ad esempio, se l'applicazione di una nuova configurazione viene interrotto da una [[Black out|mancanza di corrente]], il sistema sarà comunque in uno stato completamente e correttamente funzionante: si avvierà nella vecchia o nella nuova configurazione. <ref>{{Cita conferenza|DOIdoi=10.1145/1490283.1490294|url=https://edolstra.github.io/pubs/atomic-hotswup2008-final.pdf|isbn=978-1-60558-304-4}}</ref>
 
=== Ripristino di vecchie configurazioni ===
Se dopo un [[aggiornamento]] del sistema la nuova configurazione non funziona o non è quella desiderata, è possibile [[Rollback|ripristinarla]] utilizzando un comando speciale ( <code>nixos-rebuild switch --rollback</code> ). Ogni versione della configurazione del sistema viene automaticamente visualizzata nel menu di [[Boot|avvio]] del sistema. Se la nuova configurazione si blocca o non si avvia correttamente, è possibile selezionare una versione precedente. I rollback sono operazioni veloci che non comportano la ricreazione del sistema. <ref>{{Cita testo|url=https://nixos.org/manual/nixos/stable/#sec-rollback}}</ref>
 
=== Configurazioni riproducibili ===
Riga 152 ⟶ 150:
 
=== Compilazione dal codice sorgente con cache binaria ===
Col linguaggio Nix si specifica come [[Compilazione|compilare]] i pacchetti a partire dal [[codice sorgente]]. Questo permette all'utente di poter modificare facilmente i programmi, come in altre distribuzioni basate sul codice sorgente dei programmi (ad esempio [[Gentoo]]). Tuttavia, poiché la compilazione dal codice sorgente è un processo lento, il gestore dei pacchetti scarica automaticamente i [[File eseguibile|binari]] precompilati da un server [[cache]] quando sono disponibili. È possibile disabilitare la cache binaria e forzare la compilazione dal sorgente utilizzando l'argomento <code>--option substitute false</code>. Questa modalità fornisce la flessibilità di un modello di gestione dei pacchetti basato sul codice sorgente, con l'efficienza di uno basato sugli eseguibili binari. <ref>{{Cita conferenza|DOIdoi=10.1145/1101908.1101933|url=https://edolstra.github.io/pubs/secsharing-ase2005-final.pdf|isbn=978-1-58113-993-8}}</ref>
 
=== Coerenza ===
Riga 168 ⟶ 166:
 
== Note ==
<references />
{{References|30em}}
 
== CollegamentiAltri esterniprogetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* {{Sito ufficiale}}
{{Distribuzioni Linux}}
 
{{Portale|informatica}}
 
[[Categoria:Software del 2003]]