Perché Linux non è abbracciato come kernel GNU ufficiale?


128

Mentre conoscevo da tempo l'esistenza di Hurd e la sua missione come kernel ufficiale del sistema operativo GNU, mi chiedevo come mai Linux non è stato abbracciato come kernel GNU ufficiale nel corso degli anni, visto che si trova in uno stato molto migliore rispetto all'Hurd?

Linux ha, più o meno, svolto questo ruolo per oltre 20 anni, tuttavia si può vedere che il Progetto GNU sta mantenendo le distanze quando si tratta di Linux. Perché sta succedendo? È a causa di un sogno che Hurd sarà (ad un certo punto in futuro) ad un livello di qualità della produzione? È perché il progetto GNU non vede la sua missione riflessa tanto quanto vuole in Linux? È per altri motivi politici?


20
Tipo di domanda "illegale" qui ma interessante. Con un po 'di fortuna viene protetto per "significato storico", date risposte abbastanza brillanti ... ;-)
Hauke ​​Laging,

2
@HaukeLaging Thanx mate. Anch'io ritengo che questa sia una buona domanda e possa produrre risposte interessanti e non riesco davvero a capire perché qualcuno dovrebbe esprimere un voto ravvicinato. Sono sicuro che questo è qualcosa che molte persone vorrebbero sapere.
NlightNFotis,

1
Oh, è semplice: qualcuno dovrebbe semplicemente indicare le FAQ e gridare "fuori tema" E "troppo ampio" ...
Hauke ​​Laging,

5
@HaukeLaging Sei così vero, e vorrei che le persone fossero più pragmatiche e potessero riconoscere una domanda con un certo valore invece di indicare semplicemente le FAQ e le urla. Si può facilmente vedere in SO le domande più interessanti chiuse, solo per chiedersi ...
NlightNFotis

4
Ho appena letto di nuovo le FAQ. IMHO questo è in tema qui. Sebbene sia una meta-domanda, ma la domanda in sé si riferisce a Linux / Unix ed è abbastanza chiara.
Nils,

Risposte:


151

GNU non adotterà qualcosa come progetto a meno che gli sviluppatori non accettino determinate clausole che vincolano tutti i progetti GNU ufficiali.

Attualmente il kernel Linux probabilmente non si adatta a queste restrizioni, e non c'è nulla per Linus Torvalds, kernel.org e altri. guadagnare dal mettersi sotto l'ombrello GNU, e molto da perdere: l'accordo vincolante sopra menzionato e la percezione pubblica che il kernel è ora un progetto GNU, che avrebbe un impatto per lo più negativo. L'organizzazione genitrice di GNU, la Free Software Foundation (FSF), è un'organizzazione politica e Torvalds ne ha fatto varie critiche pubbliche e il controverso e iconoclasta leader a vita / fondatore di GNU e FSF, Richard M. Stallman.

Inoltre, il kernel Linux non richiede lo spazio utenti GNU più di quanto lo spazio utenti GNU richieda il kernel Linux. Questa indipendenza dovrebbe essere considerata una cosa positiva dai principi di base dell'ingegneria del software, che favoriscono la modularità e l'accoppiamento più libero rispetto al contrario (cose monolitiche con accoppiamento stretto).

Un altro punto contrario a questa idea è che mentre HURD potrebbe non interessare a tante persone come Linux, gli sviluppatori e gli utenti di HURD potrebbero obiettare che il loro progetto sia stato efficacemente messo in polvere in un concorso di popolarità. E buono per loro; La "competizione" di questo tipo è una cosa positiva, mentre non inchinarsi alla monopolizzazione non lo è - si finisce con entità enormi che soffocano la creatività in parte perché sono inclini al controllo monolitico / meglomaniacale. La Linux Foundation è già un'organizzazione indipendente, potrebbe anche rimanere così.


13
Grazie per la fantastica risposta. +1 da me e 2 note: 1) Non fraintendermi: ho un'alta opinione dell'Hurd. Anch'io sono uno sviluppatore malvagio. Tuttavia (credo che) non è discutibile che Linux sia uno stato migliore. 2) Posso capire perché Linux non vorrebbe essere accoppiato con GNU, ma da quello che posso vedere è il Progetto GNU che dimostra le maggiori obiezioni a questo. Potresti approfondire questo?
NlightNFotis,

14
@NlightNFotis: sei sicuro che si tratti principalmente di un'obiezione GNU? Sto solo leggendo questo: torvalds-family.blogspot.ca/2008/11/black-and-white.html . A me sembra che tutti i soggetti coinvolti siano molto più felici senza una relazione formale.
riccioli d'oro

Grazie per questo post sul blog. Adesso ha più senso. Terrò la domanda aperta per qualche tempo per vedere se le persone elaborano con risposte più fantastiche e, in caso contrario, la tua verrà selezionata come "risposta" a questa domanda. Ancora un'ultima "petizione". Ti dispiacerebbe, riformulando se posso dire, il "potresti non avere un'alta opinione di HURD" perché mi fa sentire un po 'a disagio e mi fa stare male con me stesso.
NlightNFotis,

4
Mi piacciono molto le idee dietro Hurd. Cosa mi è appena venuto in mente: l'attuale tendenza verso la virtualizzazione potrebbe rivelarsi di grande aiuto per Hurd vedere almeno una parte del mondo reale. Non è necessario un sistema operativo completo per consentire a qualcuno di usarlo. Se hai alcune applicazioni che presentano chiari vantaggi nell'esecuzione con Hurd, puoi semplicemente inserirle in una macchina virtuale Hurd. Simile a chrooting, lxc o altro.
Hauke ​​Laging,

2
@NlightNFotis ha riformulato :)
goldilocks il

77

C'è molta documentazione e discussione su questo in rete.

La breve risposta che ci sono profonde differenze ideologiche tra il progetto GNU e i progetti del kernel Linux, che ostacola una possibile unificazione.

Il focus di FSF, l'organizzazione alla base del Progetto GNU, è sulla purezza ideologica rispetto all'idea del software libero. Ciò deriva in gran parte dal punto di vista del fondatore della FSF / GNU, Richard Stallman. Inoltre, come menzionato goldilocks, la FSF è ora principalmente un'organizzazione di difesa politica. Da molto tempo ormai, l'FSF non ha investito risorse significative nel Progetto GNU, sebbene fornisca un'infrastruttura di supporto.

Il progetto del kernel Linux ha una posizione molto più pragmatica sulla libertà del software, sempre in larga misura derivata dal suo fondatore, Linus Torvalds. Il progetto del kernel Linux è principalmente un progetto di software libero, composto da sviluppatori di software specializzati nello sviluppo di kernel / OS e in nessun modo un'organizzazione di difesa politica.

Come esempi specifici di come queste ideologie si manifestano nella pratica, considera

1) Che Stallman considera inaccettabile il fatto che il progetto Debian "pubblicizzi" software non libero mantenendo la parte non libera del suo archivio software. Questo è ironico, dal momento che il progetto Debian si concentra sulla libertà del software che è abbastanza simile alla FSF, sebbene non così ideologicamente rigida.

2) Che il kernel Linux consenta di utilizzare i moduli binari (non liberi) del kernel con il kernel. Mentre gli sviluppatori del kernel non ne sono entusiasti, lo tollerano, ma è difficile immaginare che la FSF lo faccia.

Vale anche la pena notare che il tentativo di Stallman di nominare i sistemi operativi basati sul kernel Linux in quanto GNU / Linux non ha probabilmente migliorato le relazioni tra FSF e la comunità del kernel Linux, anche se non ho dati specifici al riguardo.

A parte qualsiasi altra cosa, come menziona goldilocks, la FSF ha varie regole a cui un progetto GNU deve conformarsi. Ciò include l'assegnazione del copyright di tutto il codice a FSF. Tutto ciò sarebbe di per sé un fallimento, dal momento che Linus Torvalds non ha mai richiesto tale cessione del copyright. Pertanto, se il kernel Linux dovesse entrare a far parte del progetto GNU, tutti i contributi significativi al kernel Linux dovrebbero avere il proprio copyright assegnato a FSF. Data l'età e le dimensioni del progetto e il numero di collaboratori, ciò è sostanzialmente impossibile. Progetti molto più piccoli e più giovani (ad es. Mercurial) hanno riscontrato che il software riconsegna un compito scoraggiante.

Si noti che questa risposta non è in alcun modo intesa come critica degli sviluppatori del kernel FSF o Linux. Entrambe le parti hanno i loro punti di vista validi. Tuttavia, la realtà della situazione è che sono in una certa misura punti di vista incompatibili.


4
+1 Mi piace questa risposta. Informazioni solide sul problema. Apprezzo il tuo contributo.
NlightNFotis,

1
Vale la pena notare che in molti paesi in Europa la "cessione del copyright" non è legalmente possibile. Esistono altre possibilità (accordo con i collaboratori) ma l'assegnazione del copyright potrebbe non essere legalmente possibile, non solo tecnicamente.
Maciej Piechotka,

1
@FaheemMitha, non dalla definizione GNU perché i BLOB binari fanno sicuramente parte del kernel; sono distribuiti nel codice sorgente del kernel e integrati nei file binari del kernel e richiesti per il loro funzionamento.
psusi,

8
Ahh, i driver proprietari sono un'altra cosa a cui GNU si oppone. Questo è stato uno dei motivi di GPLv3; impedire ai moduli proprietari di essere collegati al codice libero, anche in fase di esecuzione, e perché Linux ha scelto di rimanere con GPLv2.
psusi,

1
@vonbrand, che tu sia d'accordo o no è irrilevante; è la posizione di FSF e per questo Linux non potrebbe mai essere un progetto GNU.
psusi,

35

Sto citando un commento di Richard Stallman , in merito alla decisione di girare con Hurd piuttosto che con Linux.

Le persone a volte chiedono: `` Perché la FSF ha sviluppato un nuovo kernel gratuito invece di usare Linux? '' È una domanda ragionevole. La risposta, brevemente, è che non è questa la domanda che abbiamo dovuto affrontare.

Quando abbiamo iniziato a sviluppare Hurd nel 1990, la domanda che ci poneva era: `` Come possiamo ottenere un kernel gratuito per il sistema GNU? '' Allora non esisteva un kernel libero simile a Unix e non sapevamo di nessun altro piano da scrivere uno. L'unico modo in cui potevamo aspettarci di avere un kernel gratuito era di scriverlo da soli. Quindi abbiamo iniziato.

Abbiamo sentito parlare di Linux dopo la sua uscita. A quel tempo, la domanda che ci ponevamo era: `` Dovremmo annullare il progetto Hurd e usare invece Linux? ''

Abbiamo sentito che Linux non era affatto portatile (questo potrebbe non essere vero oggi, ma è quello che abbiamo sentito allora). E abbiamo sentito che Linux era architettonicamente alla pari con il kernel Unix; il nostro lavoro stava portando a qualcosa di molto più potente.

Dati gli anni di lavoro che avevamo già messo nell'Hurd, abbiamo deciso di finirlo invece di buttarli via.

Se dovessimo affrontare la domanda che la gente si pone, se Linux fosse già disponibile, e stessimo valutando se iniziare a scrivere un altro kernel, non lo faremmo. Invece sceglieremmo un altro progetto, qualcosa per fare un lavoro che nessun software libero esistente può fare.

Ma abbiamo iniziato Hurd, allora, e ora lo abbiamo fatto funzionare. Speriamo che la sua architettura superiore renderà i sistemi operativi gratuiti più potenti.


7
Nonostante le fantastiche risposte fornite alla domanda, selezionerò questa risposta come quella canonica alla domanda perché dimostra la logica alla base della scelta di restare con l'Hurd, direttamente dal creatore del Progetto GNU, Richard Stallman.
NlightNFotis

9
Nota "questo potrebbe non essere vero oggi" - L'opinione di RMS su Linux sembra essere basata sul sentito dire, non sulla conoscenza.
Martin Schröder,

19
@Martin: (Risposta tardiva, ma :) Quando Torvalds annunciò per la prima volta Linux, era specifico per x86, con zero piani per renderlo portatile. Nel thread iniziale Linus ha detto "Direi che il porting è impossibile". Pertanto, rms non aveva motivo di credere inizialmente che Linux sarebbe cresciuto fino a diventare quello che ha oggi. Le prove fornite dalla bocca del leader del progetto non hanno quasi sentito parlare.
Kevin Cathcart,

@KevinCathcart: RMS / FSF avrebbe dovuto studiare il codice da soli invece di fare affidamento su altri ("abbiamo sentito").
Martin Schröder,

21
@ MartinSchröder: Perché studiare il codice quando il responsabile del progetto ha dichiarato esplicitamente che non sarebbe portatile? Comunque, Linux fu annunciato nel 1991. Ci volle fino all'aprile del 1994 (versione 1.1.45) prima che Linux aggiungesse le cartelle per le porte dell'architettura. Ci vorrebbe più tempo prima che qualsiasi porto fosse pratico. Se la FSF avesse deciso di continuare l'Hurd nel 1992 o nel 1993, guardare il codice avrebbe solo rafforzato il fatto che il codice non era portatile.
Kevin Cathcart,

4

Sto solo aggiungendo i miei 2 centesimi qui, penso che ciò che è stato discusso a questo punto abbia molto senso, ma c'è un aspetto importante che penso possa davvero polarizzare la base GNU ed è il fatto che Linux sta diventando di più e più un posto in cui le grandi aziende stanno investendo tempo e denaro reale, l'idea che Linux sia una specie di progetto fatto in casa non è vero, nemmeno un po ', forse c'è un ragazzo a caso che cerca di attirare l'attenzione sulla scena mentre dà un patch, ma per la maggior parte Linux è un lavoro per le aziende.


1
Non credo che la FSF abbia un problema con il supporto aziendale ai progetti software. Il loro obiettivo principale è sui principi del software libero.
Faheem Mitha,

Il dominio aziendale era una grande preoccupazione che la GNU GPL doveva affrontare. Il software con licenza permissiva era in realtà una procedura normale sia al MIT che a Berkeley, ma una volta commercializzato il codice fu prontamente chiuso. Quindi, ad esempio, oggi potrei controllare la fonte Linux e tutti i miglioramenti sviluppati commercialmente andranno a beneficio del mio potenziale progetto. Oppure il mio prossimo piccolo progetto personale potrebbe usare solo un paio di blocchi, il punto è che qualsiasi miglioramento rilasciato giova a chiunque lavori con il codice successivo.
JM Becker,

1

Un'altra spiegazione trovata nelle FAQ di gnu.org :

Far funzionare GNU Hurd abbastanza bene da competere con Linux sarebbe un grande lavoro, e non è chiaramente necessario. L'unica cosa eticamente sbagliata con Linux come kernel è la sua inclusione di "blob" di firmware; la soluzione migliore per questo problema è lo sviluppo di sostituzione gratuita per i BLOB .


-6

Linux non può essere Unix, poiché Linux non è conforme a Posix .

Quindi anche senza problemi politici Linux non può raggiungere l'obiettivo di progettazione per Hurd.

Cite : "The Hurd è il sostituto del progetto GNU per UNIX, un popolare kernel del sistema operativo".

Sorprendente, che esiste un Debian / Hurd-Projekt . Ma questa è forse una storia diversa ...

A proposito: Windows (da NT / XP) si basa anche sul kernel MACH.


8
Se hai intenzione di affermare che Linux non è conforme a POSIX, dovrai eseguire un backup. Compreso dove la FSF afferma che richiedono un kernel assolutamente compatibile con POSIX al 100%. A proposito, Unix non è POSIX. Unix (marchio registrato) è un sistema operativo proprietario specifico, quindi è ovvio che nessun altro sistema operativo può essere quel sistema operativo.
psusi,

6
La citazione del kernel di Windows è basata su MACH? Wikipedia dice che condividono alcune scelte di design; ma con MACH è il microkernel prototipo mentre la maggior parte dei servizi del sistema operativo Windows viene eseguita nel kernel non in userland. L'unico componente OSS principale nel kernel di Windows di cui sono a conoscenza era lo stack di rete che era basato sull'implementazione di BSD; tuttavia è stato strappato e sostituito con uno che si interfacciava meglio con il resto del design del sistema operativo diverse versioni fa (IIRC in XP o 2k).
Dan Neely,

14
Ma neanche GNU non è Unix.
Simon,

6
@Nils, la domanda che hai collegato contraddice la tua posizione, piuttosto che supportarla.
psusi,

8
@Nils, l'assurdità di Mach è un altro po 'di malinteso popolare. NT non ha nulla in comune con mach. I suoi "server del sottosistema" non sono diversi dai demoni unix, che non creano un microkernel. Inizialmente la gui era implementata in modalità utente, e questo aveva solo una somiglianza di passaggio con un sistema di microkernel (anche se lo è Xwindows, che non rende Linux un microkernel), ma questo è stato scartato in NT4 e spostato nel kernel.
psusi,
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.