Cosa intendiamo esattamente quando diciamo che stiamo usando Linux?


9

Stavo leggendo un articolo su GNU che segue qualcosa di simile al di sotto

Esiste davvero un Linux, e queste persone lo usano, ma è solo una parte del sistema che usano. Linux è il kernel: il programma nel sistema che alloca le risorse della macchina agli altri programmi che esegui. Il kernel è una parte essenziale di un sistema operativo, ma inutile da solo; può funzionare solo nel contesto di un sistema operativo completo. Linux viene normalmente utilizzato in combinazione con il sistema operativo GNU: l'intero sistema è sostanzialmente GNU con Linux aggiunto o GNU / Linux. Tutte le cosiddette distribuzioni "Linux" sono in realtà distribuzioni di GNU / Linux.

Ho sempre pensato che Linux fosse un kernel e un sistema operativo, ma sembra che Linux = Linux kernel e sistema operativo GNU.

Qualcuno potrebbe indicare l'esatta funzionalità di ciascuno nella terminologia "Linux" che usiamo nella nostra vita quotidiana. Inoltre, secondo il wiki, il design di GNU è simile a Unix ma si differenzia da Unix in quanto software libero e senza codice Unix. Pensavo che Unix fosse open source. No?


2
Il kernel di Linux è come un motore: vitale per il funzionamento dell'auto, ma quasi inutile da solo.
evilsoup,

Risposte:


7

Credo che la parte a cui ti riferisci sia trattata qui sul sito Web della Free Software Foundation (FSF):

Secondo la FSF la loro tesi è che Linux è solo un kernel. Un sistema utilizzabile è costituito da un Kernel + gli strumenti come ls, find, conchiglie, ecc Pertanto, quando riferiti all'intero sistema, dovrebbe essere indicato come GNU / Linux, poiché gli altri strumenti insieme al Linux Kernel compongono un completo sistema utilizzabile. Continuano persino a parlare del kernel Unix di FSF, Hurd , sostenendo che Hurd e Linux sono essenzialmente kernel intercambiabili con il sistema GNU / X.

Trovo che l'intera discussione sia stancante e penso che ci siano cose migliori da fare con il nostro tempo. Un nome è solo un nome e il fatto che la gente consideri un sistema che include il software GNU + il kernel Linux + altri software non GNU come Linux o GNU / Linux è una questione di gusti e non importa davvero nel grande schema di cose. In realtà penso che l'argomento faccia di più per ferire Linux e GNU / Linux rompendo la comunità e confondendo il pubblico in generale su ciò che ogni cosa è in realtà.

Per più di quanto tu abbia mai voluto sapere su questo argomento, dai un'occhiata a Wikipedia, intitolato: Controversie sui nomi GNU / Linux .

Open source di Unixes?

Per quanto ne so, non tutti gli Unix sono open source. La maggior parte delle funzionalità all'interno di Unix è specificata in modo che il modo in cui funzionano le cose sia aperto, ma implementazioni specifiche di questa funzionalità sono o non sono aperte a seconda della distribuzione di cui fa parte.

Ad esempio, fino a poco tempo fa Solaris, un Unix, non era considerato open source. Solo quando i componenti principali di Sun Microsystem sono stati rilasciati nel progetto OpenSolaris, almeno i componenti di Solaris sono diventati open source.

Storia di Unix

Non sono affatto un esperto su questo argomento, quindi suggerirei di dare un'occhiata alla pagina Wikipedia di Unix per ulteriori informazioni sull'argomento.

Storia di Linux

Dai un'occhiata al diagramma di Unix Lineage per ulteriori informazioni su quali Unix sono considerati open, mixed o closed source.

  storia della storia

Trovo anche utile il Progetto cronologico di distribuzione GNU / Linux quando ho questa conversazione.

ss della timeline di linux


2
Nessun UNIX è open source e Linux non è Unix. A differenza di FreeBSD, che è un discendente diretto e una volta conteneva il codice ATT UNIX, Linux non ha una connessione diretta ed è solo simile a Unix. OSX è UNIX.
Rob,

1
@Rob FreeBSD non contiene più il codice ATT: questo è ciò che lo ha reso gratuito. Non ha più o meno pretesa sul nome Unix di Linux o MINIX o OSF / 1.
Gilles 'SO- smetti di essere malvagio' il

1
@Rob - per favore riferimenti al sito. Sono sicuro che non intendi dire che quel commento sembra sembrare un troll, ma lo è almeno un po '8 -). Nel complesso Linux è già stato trattato un dibattito su Unix. Si prega di consultare questa discussione: unix.stackexchange.com/questions/4091/is-linux-a-unix . Trovo questa discussione stancante. È come una discussione su come pronunciare il pomodoro.
slm

@Gilles In che modo tutto ciò che ho detto non è vero? Perché hai sentito il bisogno di commentarlo?
Rob,

@slm Ho solo risposto al tuo commento che "Non tutti gli Unix sono open source" e la verità è che gli Unix non sono open source. UNIX è un nome commerciale, una convalida e una certificazione. Significa anche che esiste una conformità POSIX a un livello che Linux e altri sistemi non possono validare (ma OSX può). Non stavo discutendo di nulla tranne UNIX è UNIX e Linux non è UNIX che il tuo post sembrava dire, iirc. (Non ero a conoscenza del thread precedente o di qualsiasi altro.
Rob

3

In genere, ciò che di solito chiamiamo un sistema operativo, è una combinazione di software che coinvolge un kernel , il cui compito è gestire le risorse della macchina e alcune applicazioni in esecuzione sul kernel, chiamato userland (che contiene browser, compilatori, lettori pdf, tutto ciò che non è il kernel, o un driver, o forse un hypervisor VM.

Al resto di questa domanda non è possibile rispondere senza un certo contesto storico. Richard Stallman ha annunciato il progetto GNU il 27 settembre 1983. Lo scopo era quello di fornire il software necessario per sviluppare un sistema operativo simile a UNIX (e la terra dell'utente che lo accompagna) come software libero . Nel 1992, il Progetto GNU aveva completato quasi tutti i pezzi essenziali per il loro software - tranne uno: il kernel. Allo stesso tempo, Linus Torvalds ha rilasciato il suo kernel Linux (versione 0.12) come software libero, concesso in licenza con licenza GPL . Quindi, per la prima volta, potrebbe essere possibile eseguire un computer composto (quasi) interamente da software libero.

Linux (come detto) è un kernel e, sebbene sia la base definitiva del software che ti consente di usare il tuo computer, non è molto utile da solo. Dovresti accoppiarlo con una sorta di applicazioni (userland) per l'esecuzione. Questo è ciò che fanno le distribuzioni GNU / Linux come Debian o Ubuntu e simili.

Vale la pena ricordare che un kernel è sia importante che non importante allo stesso tempo. Mi permetta di spiegare. La maggior parte delle persone che usano un computer sono abituate alla userland piuttosto che al kernel. Il kernel è per lo più trasparente e la maggior parte delle persone userebbe un altro kernel con la stessa area utente e potrebbe anche non notare la differenza (a meno che ovviamente non dipendano da una funzionalità fornita da un particolare kernel).

Pertanto, quando usi Linux , stai davvero usando una realizzazione del sistema operativo GNU; cioè il kernel Linux e la userland GNU (GNOME, GNU Compiler Collection, debugger GNU, GNU Coreutils, GNU binutils, ecc.). Ecco perché la FSF insiste nel chiamarlo GNU / Linux (a mio avviso, una richiesta equa).

Ovviamente puoi usare Linux senza la userland GNU (suggerimento: Android, Busybox ) e ovviamente usare la userland GNU sopra altri kernel (kfreebsd, hurd, ecc.).

Per quanto riguarda Unix è open source e simili, questa è una domanda che può comportare un bel po 'di discussioni. Tuttavia, potresti trovare alcune informazioni utili qui


2

Il kernel Linux è un programma che contribuisce al sistema operativo con le seguenti funzioni:

   immagine della mappa del kernel linux

link originale all'immagine: http://www.makelinux.net/kernel_map/

Il kernel è essenziale e sopra ci sono utility e tutto il resto del software in pacchetto. La differenza tra il sistema operativo completo e il kernel è uguale al resto del software e al modo in cui viene messo insieme dai manutentori della distribuzione.

Quei manutentori non necessariamente producono tutto quel software extra, lo assemblano e lo modificano a volte e lo mettono insieme per fornire ciò che l'esperienza Linux è oggi per la maggior parte delle persone - aggiungono il "sapore" per così dire e spesso c'è lignaggio a distribuzioni molto consolidate come Debian e Redhat ecc. Il fatto è che una parte significativa delle utility iniziali e del software che sono impacchettati nelle distribuzioni di Linux includono software adattato dal progetto GNU. Molti di questi software sono stati messi insieme dal progetto GNU usando le loro risorse prima ancora che il kernel Linux fosse inventato. Ed è gratuito e un sacco di quel software ha contribuito a costruire la popolarità di Linux in quanto entrambi erano software gratuiti e open source collegati con la licenza GPL. Il framwework di libc, Gnome Desktop e il compilatore gcc sono esempi di software gestito da GNU.

Certamente non è banale e riconoscere che non dovrebbe essere così politico ma ci sono persone vocali da entrambe le parti e c'è un dibattito. Qualunque siano le applicazioni pratiche, sapere di più sulla storia del software nelle distribuzioni che utilizziamo e i suoi creatori è uno sforzo valido.


Puoi fornire un link all'immagine originale?
heinrich5991,

1
@ heinrich5991 - Ho aggiunto il link all'originale.
slm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.