Skip to content

Cosa rende una distribuzione GNU e ci sono distribuzioni Linux che non sono GNU?

Vogliamo proporvi la migliore risposta che abbiamo trovato su internet. Vogliamo che ti aiuti e se vuoi condividere qualcosa che può aiutarci a migliorare le nostre informazioni, fallo liberamente.

Soluzione:

La Free Software Foundation sostiene che la maggior parte delle distribuzioni Linux sono in realtà sistemi GNU, che utilizzano un kernel Linux. Questa affermazione si basa sul fatto che GNU era un progetto di lunga data per sviluppare un sistema operativo libero prima dell'arrivo di Linux, e che il kernel era solo l'ultimo pezzo mancante. Hanno ragione, in quanto praticamente tutte le distribuzioni desktop e server basate su Linux utilizzano almeno alcuni componenti GNU, forse soprattutto la libreria GNU C (glibc), GNU Core Utilities (coreutils) e la shell Bash. Inoltre, lo sviluppo del kernel Linux è intrinsecamente legato a GCC, a causa dell'utilizzo delle sue estensioni.

Alcuni sistemi embedded, forse soprattutto Android di Google, non utilizzano componenti o librerie GNU. In Android, per esempio, la libreria C GNU è sostituita dalla libreria C Bionic di Google, basata su BSD. La FSF concorda sul fatto che non è appropriato riferirsi a questi sistemi come "sistemi GNU" o "GNU/Linux", ma d'altra parte non vorrebbe nemmeno che ci si riferisse a questi sistemi semplicemente come "Linux". Almeno possiamo trarre la conclusione che sembra esserci un consenso sul fatto che l'uso di strumenti GNU per costruire il kernel, fa non rende un sistema un "sistema GNU".

La storia della terminologia GNU/Linux risale ai primi anni Novanta.

Nel 1991 Linus Torvalds iniziò il progetto del kernel Linux dalla sua camera da letto a Helsinki. Non molto tempo dopo, il kernel Linux iniziò a guadagnare una notevole diffusione, favorita dall'ascesa di Internet.

All'epoca il progetto GNU di Richard Stallman prevedeva ancora di utilizzare il microkernel HURD come kernel del previsto sistema operativo GNU. Tuttavia, quando le distribuzioni Linux (sistemi operativi liberi simili a Unix basati sul kernel Linux) iniziarono a formarsi attorno al nuovo progetto del kernel Linux, Stallman si interessò. Quando nel 1993 nacque il progetto Debian, sotto la guida di Ian Murdock, la FSF diede un certo sostegno finanziario al giovane progetto. Tuttavia, gli sviluppatori di Debian si separarono rapidamente da Stallman e dalla FSF, in parte per questioni tecniche. Ad esempio, Stallman voleva mantenere i simboli di debug nel programma, mentre Debian voleva eliminarli.

Una volta che Debian e la FSF si separarono, Stallman chiese che Debian si riferisse a se stessa come GNU/Linux. La richiesta fu fatta a Bruce Perens, dato che Murdock gli aveva ceduto la leadership. Poiché queste organizzazioni si erano separate in buoni rapporti e condividevano (e condividono) obiettivi comuni, gli sviluppatori di Debian fecero quanto richiesto. Naturalmente è vero che Stallman ha promosso questi nomi indipendentemente, ma la cooperazione di un sistema operativo basato su Linux nel riferirsi a se stesso come tale è stata significativa nel promuovere l'uso di questo nome.

La motivazione fornita da Stallman comprendeva che (a) il nucleo del sistema, a parte il kernel Linux, era costituito in gran parte da strumenti GNU, (b) il kernel Linux era in un certo senso il culmine/completamento del progetto GNU, che da tempo cercava di ottenere un kernel funzionante, quindi avrebbe dovuto usare questo nome come modo per riconoscere e ricordare gli ideali del progetto GNU. Il motivo (a) tende a essere citato più spesso, anche se non era esattamente vero all'epoca e lo è ancora meno oggi. Anche se è chiaro che parti importanti di un sistema operativo basato su Linux dipendono da strumenti GNU, come bash, gcc, binutils, gdb, libc ecc. Quindi, tali argomenti sono quantomeno discutibili e sono stati molto dibattuti.

Per quanto ne so, solo Debian e (alcune delle) sue derivate (seguendo l'esempio della casa madre) si riferiscono a se stesse come GNU/Linux. Tuttavia, le altre cosiddette distribuzioni Linux come Fedora, Gentoo, ecc. non sono in sostanza diverse da Debian - si tratta per lo più dello stesso software. Quindi si ha un motivo altrettanto valido per riferirsi a loro come GNU/Linux.

Non ci sono molti sistemi che utilizzano il kernel Linux senza l'ambiente utente GNU, poiché i due si sono sviluppati in larga misura insieme e sono intrecciati in vari modi. (Per esempio, il kernel Linux è scritto nel C esteso (GNU) di gcc, e non viene compilato con un compilatore C standard). Come ha detto Thomas, l'esempio più ovvio è Android, ma dal momento che è stato pesantemente biforcato da Google è discutibile se sia corretto riferirsi al kernel di Android come a Linux, anche se si parla di una fusione/riconciliazione in futuro.

Come nota a margine, è spiacevole notare che Stallman e la FSF apparentemente spingono molto la terminologia GNU/Linux. Per esempio, Jonathan Corbet ha scritto in un commento su LWN che la FSF si rifiuta di parlargli se non usa il termine GNU/Linux. Jon, oltre a essere uno dei fondatori di LWN, è anche un autorevole sviluppatore del kernel.
Nella sua interezza, il commento dice:

Solo per essere chiari su questo punto: abbiamo smesso di chiedere commenti alla FSF molti
anni fa, perché la FSF si rifiutava di parlare con noi senza una promessa preliminare
promesse da parte nostra su cosa avremmo detto e quali termini avremmo usato. Non siamo
non siamo disposti a fare tali promesse. Se la politica della FSF in materia è cambiata, saremmo lieti di
è cambiata, saremmo lieti di saperlo.

Questo è chiaramente un riferimento all'insistenza sulla terminologia GNU/Linux, tra le altre cose.

La storia di cui sopra è trattata in dettaglio nel Capitolo 6 ("Boot Then Root") di "Rebel Code" di Glyn Moody.

Un sistema operativo è una combinazione di kernel e userland. Fondamentalmente, il kernel gestisce l'hardware mentre l'userland fornisce un'interfaccia completa agli utenti.

In una comune distribuzione GNU/Linux, Linux fornisce il kernel mentre il progetto GNU fornisce gli strumenti userland. GNU è stato avviato molto prima di Linux e fornisce una grande quantità di utility per costruire un sistema operativo completo.

Tuttavia, mancava un kernel. Sebbene avessero il kernel Hurd, ci voleva troppo tempo prima che fosse pronto. Poi è arrivato Linux, con l'aiuto di un grande entusiasmo intorno ad esso, che si è evoluto più velocemente di Hurd.

Ora avete uno userland e un kernel provenienti da due progetti diversi. E poiché ognuno di essi è essenziale per avere un sistema operativo, perché non chiamare l'associazione GNU/Linux in modo che ogni progetto abbia la sua parte di merito?

Ci sono altri progetti come BSD utils o BusyBox. Tuttavia sono più o meno complete rispetto alle utility GNU e alcuni software funzionano solo con una userland GNU. Per esempio, la maggior parte dei sistemi operativi BSD utilizza GCC come compilatore, mentre LLVM cambierà presto questa situazione.

Inoltre, come sistema operativo universale, è possibile eseguire Debian con un kernel FreeBSD e un userland GNU.

Vi invitiamo a corroborare il nostro operato pubblicando un commento o lasciando una valutazione, vi ringraziamo.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.