Warum wird Linux nicht als offizieller GNU-Kernel akzeptiert?

128

Ich kannte die Existenz von Hurd und seine Mission als offizieller GNU-Betriebssystem-Kernel zwar schon seit einiger Zeit , habe mich aber gefragt, warum Linux im Laufe der Jahre nicht als offizieller GNU-Kernel anerkannt wurde, da es sich in einem viel besseren Zustand befindet als der Hurd?

Linux hat diese Rolle seit mehr als 20 Jahren mehr oder weniger inne, aber man kann sehen, dass das GNU-Projekt seine Distanz zu Linux beibehält. Warum passiert dies? Liegt es an einem Traum, dass Hurd (irgendwann in der Zukunft) in Produktionsqualität sein wird? Liegt es daran, dass das GNU-Projekt seine Mission in Linux nicht so stark widerspiegelt, wie es will? Ist es aus anderen politischen Gründen?

NlightNFotis
quelle
20
Art "illegale" Frage hier aber interessant. Mit ein bisschen Glück wird es vor "historischer Bedeutung" geschützt, und es werden genügend brillante Antworten gegeben ... ;-)
Hauke ​​Laging
2
@HaukeLaging Thanx Kumpel. Auch ich bin der Meinung, dass dies eine gute Frage ist und möglicherweise interessante Antworten liefert, und kann nicht wirklich verstehen, warum jemand eine enge Abstimmung abgeben würde. Ich bin sicher, dass dies etwas ist, das viele Leute gerne wissen würden.
NlightNFotis
1
Oh, das ist ganz einfach: Jemand müsste nur auf die FAQ zeigen und "Off-Topic" UND "Too Broad"
rufen
5
@HaukeLaging Du bist so wahr, und ich wünschte, die Leute wären pragmatischer und könnten eine Frage mit einem gewissen Wert erkennen, anstatt nur auf die FAQ zu verweisen und zu schreien. Man kann in SO leicht sehen, dass die interessantesten Fragen geschlossen sind, nur um sich zu wundern ...
NlightNFotis
4
Ich habe gerade die FAQ erneut gelesen. IMHO ist dies hier zum Thema. Es ist zwar eine Meta-Frage, aber die Frage an sich bezieht sich auf Linux / Unix und ist ganz klar.
Nils

Antworten:

151

GNU wird etwas nicht als Projekt übernehmen, es sei denn, die Entwickler stimmen bestimmten Bestimmungen zu, die alle offiziellen GNU-Projekte binden.

Derzeit entspricht der Linux-Kernel wahrscheinlich nicht diesen Einschränkungen, und es gibt nichts für Linus Torvalds, kernel.org, et al. davon zu profitieren, sich unter dem GNU-Dach zu platzieren, und viel zu verlieren - die oben erwähnte verbindliche Vereinbarung und die öffentliche Wahrnehmung, dass der Kernel jetzt ein GNU-Projekt ist, das sich größtenteils negativ auswirken würde. Die Mutterorganisation der GNU, die Free Software Foundation (FSF), ist eine politische Organisation, und Torvalds hat sie und den etwas umstrittenen, ikonoklastischen Gründer der GNU und der FSF, Richard M. Stallman, in der Öffentlichkeit kritisiert.

Außerdem benötigt der Linux-Kernel nicht mehr den GNU-User-Space als der GNU-User-Space den Linux-Kernel. Diese Unabhängigkeit sollte von den Grundprinzipien des Software-Engineerings, die Modularität und lockere Kopplung im Gegensatz zum Gegenteil (monolithische Dinge mit enger Kopplung) bevorzugen, als eine gute Sache angesehen werden.

Ein weiterer Punkt gegen diese Idee ist, dass HURD zwar nicht für so viele Leute wie Linux von Interesse ist, die Entwickler und Benutzer von HURD jedoch möglicherweise Einwände dagegen haben, dass ihr Projekt in einem Beliebtheitswettbewerb effektiv in den Sand gesetzt wird. Und gut für sie; "Wettbewerb" dieser Art ist eine positive Sache, wohingegen es keine Monopolisierung ist - Sie haben am Ende massive Einheiten, die die Kreativität teilweise ersticken, weil sie zu monolithischer / meglomanischer Kontrolle neigen. Die Linux Foundation ist bereits eine unabhängige Organisation, das könnte genauso gut so bleiben.

Goldlöckchen
quelle
13
Vielen Dank für die fantastische Antwort. +1 von mir und 2 Anmerkungen: 1) Verstehen Sie mich nicht falsch: Ich habe eine hohe Meinung über den Hurd. Ich bin selbst ein schlechter Entwickler. Ich glaube jedoch nicht, dass Linux ein besserer Zustand ist. 2) Ich kann sehen, warum Linux nicht mit GNU gekoppelt werden möchte, aber soweit ich sehen kann, ist es das GNU-Projekt, das die größten Einwände dagegen zeigt. Könnten Sie das näher erläutern?
NlightNFotis
14
@NlightNFotis: Sind Sie sicher, dass es sich hauptsächlich um einen GNU-Einwand handelt? Ich lese nur Folgendes : torvalds-family.blogspot.ca/2008/11/black-and-white.html . Mir scheint, dass alle Beteiligten ohne formelle Beziehung viel glücklicher sind.
Goldlöckchen
Vielen Dank für diesen Blogeintrag. Es macht jetzt mehr Sinn. Ich werde die Frage einige Zeit offen halten, um zu sehen, ob die Leute mit fantastischeren Antworten aufwarten, und wenn nicht, wird Ihre als "Antwort" auf diese Frage ausgewählt. Nur noch eine letzte "Petition". Würde es Ihnen etwas ausmachen, wenn ich umformulieren würde: "Sie haben vielleicht keine hohe Meinung von der HURD", weil ich mich dadurch irgendwie unwohl fühle und mich schlecht fühle.
NlightNFotis
4
Ich mag die Ideen hinter Hurd wirklich. Was mir gerade in den Sinn kam: Der anhaltende Trend zur Virtualisierung könnte sich als große Hilfe für Hurd herausstellen, um zumindest einen Teil der realen Welt zu sehen. Sie benötigen kein vollständiges Betriebssystem, um jemanden dazu zu bringen, es zu verwenden. Wenn Sie einige Anwendungen haben, die klare Vorteile durch die Ausführung unter Hurd haben, können Sie diese einfach in eine Hurd-VM einfügen. Ähnlich wie chrooting, lxc oder was auch immer.
Hauke ​​Laging
2
@NlightNFotis umformuliert :)
Goldlöckchen
77

Es gibt viel Dokumentation und Diskussion darüber im Internet.

Die kurze Antwort, dass es tiefe ideologische Unterschiede zwischen dem GNU-Projekt und den Linux-Kernel-Projekten gibt, die einer möglichen Vereinheitlichung im Wege stehen.

Der Fokus der FSF, der Organisation hinter dem GNU-Projekt, liegt auf der ideologischen Reinheit in Bezug auf die Idee freier Software. Dies geht weitgehend auf die Ansichten des FSF / GNU-Gründers Richard Stallman zurück. Wie Goldlöckchen bereits erwähnt haben, ist die FSF heute größtenteils eine politische Interessenvertretung. Die FSF hat seit langem keine nennenswerten Ressourcen in das GNU-Projekt gesteckt, obwohl sie eine unterstützende Infrastruktur bieten.

Das Linux-Kernel-Projekt hat eine viel pragmatischere Haltung in Bezug auf die Softwarefreiheit, was wiederum zu einem großen Teil von seinem Gründer, Linus Torvalds, herrührt. Das Linux-Kernel-Projekt ist in erster Linie ein freies Software-Projekt, das aus Software-Entwicklern besteht, die auf die Kernel / OS-Entwicklung spezialisiert sind, und in keiner Weise eine politische Interessenvertretung.

Betrachten Sie als konkrete Beispiele, wie sich diese Ideologien in der Praxis auswirken

1) Dass Stallman die Tatsache als inakzeptabel erachtet, dass das Debian-Projekt unfreie Software "bewirbt", indem es den unfreien Teil seines Software-Archivs pflegt. Dies ist ironisch, da sich das Debian-Projekt auf die Softwarefreiheit konzentriert, die der FSF sehr ähnlich ist, obwohl sie nicht so ideologisch starr ist.

2) Dass der Linux-Kernel die Verwendung von (nicht freien) binären Kernel-Modulen mit dem Kernel erlaubt. Die Kernel-Entwickler sind zwar nicht begeistert, tolerieren dies aber, aber es ist schwer vorstellbar, dass die FSF dies tut.

Es ist auch erwähnenswert, dass Stallmans Versuch, die auf dem Linux-Kernel basierenden Betriebssysteme als GNU / Linux zu bezeichnen, die Beziehungen zwischen der FSF und der Linux-Kernel-Community wahrscheinlich nicht verbessert hat, obwohl ich keine spezifischen Daten dazu habe.

Abgesehen von allem anderen hat die FSF, wie Goldlöckchen erwähnen, verschiedene Regeln, denen ein GNU-Projekt entsprechen muss. Dies beinhaltet die urheberrechtliche Zuweisung des gesamten Codes an die FSF. Dies wäre für sich genommen ein Dealbreaker, da Linus Torvalds noch nie eine solche Urheberrechtsabtretung verlangt hat. Wenn der Linux-Kernel Teil des GNU-Projekts werden soll, müssten daher alle wesentlichen Beiträge zum Linux-Kernel dem FSF urheberrechtlich übertragen werden. Aufgrund des Alters und der Größe des Projekts sowie der Anzahl der Mitwirkenden ist dies im Grunde unmöglich. Weitaus kleinere und jüngere Projekte (z. B. Mercurial) haben Software-Relicensing zu einer entmutigenden Aufgabe gemacht.

Bitte beachten Sie, dass diese Antwort weder die FSF- noch die Linux-Kernel-Entwickler kritisieren soll. Beide Seiten haben ihre eigenen gültigen Standpunkte. Die Realität sieht jedoch so aus, dass es sich zum Teil um inkompatible Standpunkte handelt.

Faheem Mitha
quelle
4
+1 Diese Antwort gefällt mir. Solide Informationen zu diesem Thema. Ich schätze Ihre Eingabe.
NlightNFotis
1
Es ist erwähnenswert, dass in vielen Ländern Europas die Übertragung von Urheberrechten rechtlich nicht möglich ist. Es gibt andere Möglichkeiten (Mitwirkungsvereinbarung), aber die Übertragung von Urheberrechten ist möglicherweise rechtlich nicht möglich - nicht nur technisch.
Maciej Piechotka
1
@FaheemMitha, nicht von der GNU - Definition , weil die Binärblob ganz sicher ist Teil des Kernels; Sie werden im Kernel-Quellcode verteilt und in die Kernel-Binärdateien integriert und sind für deren Funktion erforderlich.
Psusi
8
Ahh, die proprietären Treiber sind eine andere Sache, gegen die GNU Einwände erhebt. Dies war einer der Gründe für GPLv3. um zu verhindern, dass proprietäre Module auch zur Laufzeit mit freiem Code verknüpft werden, und warum Linux sich für GPLv2 entschieden hat.
Psusi
1
@vonbrand, ob Sie damit einverstanden sind oder nicht, ist irrelevant; Es ist die Position der FSF und aus diesem Grund könnte Linux niemals ein GNU-Projekt sein.
Psusi
35

Ich zitiere einen Kommentar von Richard Stallman , in Bezug auf die Entscheidung , mit der Hurd zu rollen anstatt Linux.

Die Leute fragen sich manchmal: "Warum hat die FSF einen neuen kostenlosen Kernel entwickelt, anstatt Linux zu verwenden?" Es ist eine vernünftige Frage. Die Antwort ist kurz gesagt, dass dies nicht die Frage ist, mit der wir konfrontiert sind.

Als wir 1990 mit der Entwicklung des Hurd begannen, stellte sich uns die Frage: "Wie können wir einen freien Kernel für das GNU-System bekommen?" Damals gab es keinen freien Unix-ähnlichen Kernel, und wir wussten von keinem anderen Plan, um ihn zu schreiben einer. Die einzige Möglichkeit, einen freien Kernel zu haben, bestand darin, ihn selbst zu schreiben. Also fingen wir an.

Wir haben nach der Veröffentlichung von Linux gehört. Zu dieser Zeit lautete die Frage: "Sollten wir das Hurd-Projekt abbrechen und stattdessen Linux verwenden?"

Wir haben gehört, dass Linux überhaupt nicht portabel ist (das mag heute nicht der Fall sein, aber das haben wir damals gehört). Und wir haben gehört, dass Linux architektonisch dem Unix-Kernel ebenbürtig ist. Unsere Arbeit führte zu etwas viel Mächtigerem.

Angesichts der jahrelangen Arbeit, die wir bereits in den Hurd gesteckt hatten, beschlossen wir, ihn zu beenden, anstatt ihn wegzuwerfen.

Wenn wir uns der Frage stellen würden, ob Linux bereits verfügbar ist, und wir überlegen würden, ob wir einen anderen Kernel schreiben sollen, würden wir das nicht tun. Stattdessen würden wir ein anderes Projekt auswählen, etwas, das keine vorhandene freie Software leisten kann.

Aber wir haben damals den Hurd gestartet und jetzt haben wir es geschafft. Wir hoffen, dass die überlegene Architektur freie Betriebssysteme leistungsfähiger macht.

NlightNFotis
quelle
7
Trotz der fantastischen Antworten, die bereits auf die Frage gegeben wurden, werde ich diese Antwort als die kanonische Antwort auf die Frage auswählen, da sie die Gründe für die Entscheidung aufzeigt, bei der Hurd zu bleiben, direkt vom Schöpfer des GNU-Projekts, Richard Stallman.
NlightNFotis
9
Beachten Sie, dass dies heute möglicherweise nicht mehr zutrifft. Die Meinung von RMS zu Linux scheint auf Hörensagen und nicht auf Kenntnissen zu beruhen.
Martin Schröder
19
@Martin: (Späte Antwort, aber :) Als Torvalds Linux zum ersten Mal ankündigte, war es x86-spezifisch und hatte keine Pläne, es portabel zu machen. In dem ersten Thread sagte Linus mit aller Deutlichkeit : "Ich würde sagen, dass Portierung unmöglich ist." Daher hatte rms ursprünglich keinen Grund zu der Annahme, dass Linux zu dem heranwachsen würde, was es heute hat. Beweise aus dem Mund des Projektleiters sind kaum Hörensagen.
Kevin Cathcart
@ KevinCathcart: RMS / FSF sollte den Code selbst studiert haben, anstatt sich auf andere zu verlassen ("wir haben gehört").
Martin Schröder
21
@ MartinSchröder: Warum den Code studieren, wenn der Projektleiter ausdrücklich gesagt hat, dass er nicht portierbar ist? Wie auch immer, Linux wurde 1991 angekündigt. Es dauerte bis April 1994 (Release 1.1.45), bis Linux sogar die Ordner für Architektur-Ports hinzufügte. Es würde länger dauern, bis alle Ports praktisch waren. Wenn die FSF ihre Entscheidung getroffen hätte, den Hurd 1992 oder 1993 fortzusetzen, hätte ein Blick auf den Code nur bestätigt, dass der Code nicht portierbar war.
Kevin Cathcart
4

Ich füge hier nur meine 2 Cent hinzu. Ich denke, dass das, was an dieser Stelle besprochen wurde, viel Sinn macht, aber es gibt einen wichtigen Aspekt, der meiner Meinung nach die GNU-Basis wirklich polarisieren kann, und es ist die Tatsache, dass Linux immer mehr und mehr wird eher ein ort, an dem große unternehmen echtes geld und zeit investieren, die idee, linux sei eine art hausgemachtes projekt , ist nicht wahr, auch nicht ein bisschen, vielleicht gibt es einen zufälligen mann, der versucht, aufmerksamkeit auf sich zu ziehen, während er ein gibt flicken weg, aber für den großen Teil Linux ist es ein Job für Unternehmen.

user2384250
quelle
1
Ich glaube nicht, dass die FSF ein Problem mit der Unternehmensunterstützung von Softwareprojekten hat. Ihr Hauptaugenmerk liegt auf den Prinzipien freier Software.
Faheem Mitha
Unternehmensdominanz war ein großes Anliegen, mit dem sich die GNU GPL befassen sollte. Genehmigungspflichtig lizenzierte Software war sowohl am MIT als auch in Berkeley ein normales Verfahren, wurde jedoch nach der Kommerzialisierung des Codes umgehend geschlossen. So könnte ich zum Beispiel heute die Linux-Quelle überprüfen und alle kommerziell entwickelten Verbesserungen werden meinem potenziellen Projekt zugute kommen. Oder mein nächstes kleines persönliches Projekt benötigt nur ein paar Blöcke. Der Punkt ist, dass alle veröffentlichten Verbesserungen demjenigen zugute kommen, der als nächstes mit dem Code arbeitet.
JM Becker
1

Eine weitere Erklärung finden Sie in den FAQ von gnu.org :

Es wäre eine große Aufgabe, dafür zu sorgen, dass der GNU Hurd gut genug funktioniert, um mit Linux mithalten zu können, und das ist nicht unbedingt erforderlich. Das einzige, was bei Linux als Kernel ethisch falsch ist, ist die Einbeziehung von Firmware-Blobs. Die beste Lösung für dieses Problem ist die Entwicklung eines kostenlosen Ersatzes für die Blobs .

Der Quark
quelle
-6

Linux kann nicht Unix sein, da Linux nicht mit Posix kompatibel ist .

Auch ohne politischen Streit kann Linux das Design-Ziel für Hurd nicht erreichen.

Zitieren : "The Hurd ist der Ersatz des GNU-Projekts für UNIX, einen beliebten Betriebssystemkernel."

Erstaunlich, dass es ein Debian / Hurd-Projekt gibt . Aber das ist möglicherweise eine andere Geschichte ...

Übrigens: Windows (seit NT / XP) basiert auch auf dem MACH-Kernel.

Nils
quelle
8
Wenn Sie behaupten wollen, dass Linux nicht POSIX-konform ist, müssen Sie dies ein wenig sichern. Einschließlich der Stellen, an denen laut FSF ein zu 100% POSIX-kompatibler Kernel erforderlich ist. Unix ist übrigens kein POSIX. Unix (Warenzeichen) ist ein spezielles proprietäres Betriebssystem, daher versteht es sich von selbst, dass kein anderes Betriebssystem dieses Betriebssystem sein kann.
Psusi
6
Zitat für den Windows-Kernel, der auf MACH basiert? Wikipedia sagt, dass sie einige Gestaltungsmöglichkeiten teilen; Aber mit MACH als prototypischem Mikrokernel, während die Mehrheit der Windows-Betriebssystemdienste im Kernel und nicht im Userland ausgeführt wird. Die einzige wichtige OSS-Komponente im Windows-Kernel, die mir bekannt ist, war der Netzwerkstapel, der früher auf der BSD-Implementierung basierte. es wurde jedoch herausgerissen und durch eines ersetzt, das vor einigen Versionen besser mit dem Rest des Betriebssystemdesigns zusammenpasste (IIRC in XP oder 2k).
Dan Neely
14
Aber GNU ist auch nicht Unix.
Simon
6
@Nils, die Frage, die Sie verknüpft haben, widerspricht Ihrer Position und unterstützt sie nicht.
Psusi
8
@Nils, der Mach-Unsinn ist ein weiteres bisschen populäres Missverständnis. NT ist total nicht ähnlich zu mach. Seine "Subsystem-Server" unterscheiden sich nicht von Unix-Daemons, die keinen Mikrokernel bilden. Ursprünglich war die GUI im Benutzermodus implementiert und hatte nur eine gewisse Ähnlichkeit mit einem Mikrokernelsystem (obwohl Xwindows dies nicht als Mikrokernel ausgibt), aber dieses wurde in NT4 verschrottet und in den Kernel verschoben.
Psusi