Das GNU-System und Linux

von Richard Stallman

Siehe auch GNU/Linux: Häufig gestellte Fragen und GNU/Linux. Ist der Name Schall und Rauch? für weitere Informationen.

Viele Rechnernutzer führen tagtäglich eine modifizierte Version des GNU-Systems aus ‑ ohne es zu wissen. Durch eine befremdende Wendung der Ereignisse wird dieses System ‑ das heute weit verbreitet ist ‑ oft unzutreffend „Linux“ genannt, und viele Nutzer sind sich dessen nicht bewusst, dass es im Grunde das GNU-System ist, entwickelt durch das GNU-Projekt.

Es gibt wahrhaft ein Linux, und diese Menschen benutzen es, aber es ist nur ein Teil des Systems, das sie benutzen. Linux ist der Betriebssystemkern: das Programm im System, das die Ressourcen des Systems an die anderen Programme zuteilt. Der Systemkern ist ein wesentlicher Bestandteil eines Betriebssystems, für sich genommen aber nutzlos; er kann nur im Kontext mit einem kompletten Betriebssystem funktionieren. Linux wird üblicherweise in Kombination mit dem GNU-Betriebssystem genutzt: das ganze System ist grundsätzlich GNU mit hinzugefügtem Linux ‑ oder GNU/Linux. All die sogenannten „Linux“-Distributionen sind tatsächlich GNU/Linux-Distributionen.

Viele Benutzer verstehen den Unterschied zwischen dem Systemkern, der Linux ist, und dem Gesamtsystem, den sie auch „Linux“ nennen, nicht. Der mehrdeutige Gebrauch des Namens trägt nicht zum Verständnis bei. Diese Benutzer denken oftmals, dass Linus Torvalds das gesamte Betriebssystem 1991 mit ein bisschen Hilfe entwickelte.

Programmierer wissen für gewöhnlich, dass Linux ein Systemkern ist. Da sie aber im Allgemeinen ebenso selbstverständlich „Linux“ als Gesamtsystem gehört haben, stellen sie sich oft eine Geschichte vor, die die Benennung des Gesamtsystems nach dem Systemkern rechtfertigen würde. Beispielsweise sind viele davon überzeugt, dass, sobald Linus Torvalds das Schreiben an Linux, dem Systemkern, abschließen würde, sich seine Nutzer nach anderer freier Software umgucken würden, um dann diese weiter zu nutzen, und fanden heraus, dass (aus keinem besonderen Grund) fast alles für ein unixoides System Notwendige bereits vorhanden war.

Was sie vorfanden war kein Zufall ‑ es war das (noch unvollständige) GNU-System. Die verfügbare Freie Software trug zu einem Komplettsystem bei, weil das GNU-Projekt seit 1984 an einem gearbeitet hatte. Im GNU-Manifest erklärten wir das Ziel, ein freies, unixoides System namens GNU[1] zu entwickeln. Die ursprüngliche Ankündigung des GNU-Projekts umreißt auch einige der ursprünglichen Pläne für das GNU-System. Als mit Linux begonnen wurde, war GNU fast fertig.

Die meisten Freie-Software-Projekte haben das Ziel, ein bestimmtes Programm für eine bestimmte Aufgabe zu entwickeln. Beispielsweise hat sich Linus Torvalds vorgenommen, einen unixoiden Systemkern (Linux) zu schreiben, Donald Knuth ein Textsatzprogramm (TeX) und Bob Scheifler ein Fenstersystem (das X Window System). Es ist nur natürlich, den Beitrag dieser Art von Projekt an bestimmten Programmen zu messen, die daraus stammen.

Zu welchem Schluss würden wir bei dem Versuch kommen, den Beitrag des GNU-Projekts danach zu messen? Ein CD-ROM-Anbieter fand heraus, dass in deren „Linux-Distribution“ GNU-Software mit etwa 28 % der größte einzelne Anteil des gesamten Quellcodes war. Und das schloss einige der unverzichtbaren Hauptkomponenten, ohne die es überhaupt kein System geben würde, ein. Linux selbst machte ungefähr 3 % aus (2008 sind die Anteile ähnlich: im Haupt-Projektarchiv von gNewSense Linux 1,5 % und GNU-Pakete 15 %). Wenn man also vor hätte einen Namen für das System basierend darauf auszuwählen, wer die Programme im System geschrieben hat, wäre die entsprechende einzige Antwort GNU.

Aber das ist nicht der richtige Weg die Angelegenheit zu beurteilen. Das GNU-Projekt war und ist kein Projekt, bestimmte Softwarepakete zu entwickeln. Es war kein Projekt, einen C-Compiler zu entwickeln, obgleich wir das taten. Es war kein Projekt, einen Texteditor zu entwickeln, obgleich wir einen entwickelten. Das GNU-Projekt hat sich vorgenommen, ein vollständig freies unixoides System zu entwickeln: GNU.

Viele haben maßgebliche Beiträge zu der freien Software im System geleistet, und sie alle verdienen Anerkennung für ihre Software. Aber der Grund, weshalb es ein integriertes System ‑ und nicht nur eine Sammlung nützlicher Programme ‑ ist, ist der, weil sich das GNU-Projekt vorgenommen hat, es zu einem zu machen. Wir fertigten eine Liste der benötigten Programme an, um ein vollständiges freies System zu entwickeln, und systematisch fanden, schrieben oder fanden wir Personen, alles auf die Liste zu schreiben. Wir schrieben wesentliche, aber wenig aufregende Komponenten(1), da man ohne sie kein System haben kann. Einige unserer Systemkomponenten, die Programmierwerkzeuge, wurden unter Programmierern eigenständig populär, aber wir schrieben auch viele Komponenten, die keine Werkzeuge(2) sind. Wir entwickelten sogar ein Schachspiel, GNU Chess, weil ein Gesamtsystem auch Spiele braucht.

Anfang der 90er hatten wir das gesamte System, abgesehen vom Systemkern, zusammengestellt. Wir arbeiteten ebenfalls an einem Systemkern, dem GNU Hurd, der auf Mach aufsetzt. Die Entwicklung dieses Systemkerns ist sehr viel schwieriger gewesen als wir angenommen hatten. GNU Hurd begann zwar 2001 zuverlässig zu arbeiten, aber ist weit davon entfernt, allgemein benutzbar zu sein.

Glücklicherweise mussten wir wegen Linux nicht auf Hurd warten. Nachdem Torvalds im Jahr 1992 Linux freigegebenen hatte, füllte es die letzte große Lücke im GNU-System. Man konnte dann das GNU-System mit Linux kombinieren, um ein vollständig freies System zu erhalten ‑ eine Variante des GNU-Systems, das auch Linux enthielt. Mit anderen Worten: das GNU/Linux-System.

Damit sie gut zusammenarbeiten, war keine triviale Aufgabe. Einige GNU-Komponenten(3) benötigten eine wesentliche Änderung, um mit Linux zu funktionieren. Die Integration eines kompletten Systems zu einer Distribution, die sofort einsatzbereit sein würde, war ebenfalls eine große Aufgabe. Es musste die Frage gelöst werden, wie man das System installiert und startet ‑ ein Problem, dass wir noch nicht angepackt hatten, weil wir diesen Punkt noch nicht erreicht hatten. Daher leisteten die Personen, die verschiedene Systemdistributionen entwickelt haben, sehr viel maßgebliche Arbeit. Aber es war Arbeit, die ‑ in der Natur der Sache ‑ sicher war, von jemand erledigt zu werden.

Das GNU-Projekt unterstützt sowohl GNU-Systeme mit Linux, GNU/Linux, als auch das GNU-System. Die Free Software Foundation (FSF) unterstützte die Überarbeitung der Linux-bedingten Erweiterungen zur GNU C-Bibliothek finanziell, sodass diese nun gut integriert und die neuesten GNU/Linux-Systeme die aktuelle Freigabe der Bibliothek unverändert nutzen können. Die FSF unterstützte auch ein frühes Entwicklungsstadium von Debian GNU/Linux finanziell.

Gegenwärtig gibt es viele verschiedene Varianten des GNU/Linux-Systems (vielfach Distributionen genannt). Die meisten enthalten unfreie Software ‑ deren Entwickler eher der mit „Linux“ anstatt der von GNU verbundenen Philosophie folgen. Aber es gibt auch völlig freie GNU/Linux-Distributionen. Die FSF unterstützt gNewSense mit EDV-Fa­zi­li­täten.

Eine freie GNU/Linux-Distribution ist nicht nur eine Frage der Beseitigung verschiedener unfreier Programme. Heutzutage enthält die übliche Version von Linux auch unfreie Programme. Diese Programme sollen beim Start des Systems in Ein-/Ausgabegeräte geladen werden und sind als lange Zahlenreihen im „Quellcode“ von Linux enthalten. Somit beinhaltet die Pflege freier GNU/Linux-Distributionen nun ebenfalls die Pflege einer freien Variante von Linux.

Ob Sie GNU/Linux benutzen oder nicht, bitte irritieren Sie die Öffentlichkeit nicht durch doppeldeutigen Gebrauch des Namens „Linux“. Linux ist der Betriebssystemkern, einer der unbedingt erforderlichen Hauptkomponenten des Systems. Das System als Ganzes ist grundsätzlich das GNU-System mit hinzugefügtem Linux. Wenn Sie über diese Kombination sprechen, nennen Sie es bitte GNU/Linux.

Möchten Sie zu Referenzzwecken einen Verweis auf GNU/Linux anlegen, ist sowohl dieses Dokument als auch https://www.gnu.org/gnu/the-gnu-project.html eine gute Wahl. Möchten Sie Linux, den Betriebssystemkern, erwähnen und einen Verweis für weitere Referenz hinzufügen, ist http://foldoc.org/linux eine gute Adresse.

Nachtrag

Abgesehen von GNU hat ein anderes Projekt unabhängig ein freies unixoides Betriebssystem hergestellt. Dieses System ist als BSD bekannt und wurde an der University of California, Berkeley, entwickelt. In den 80ern war es unfrei, wurde aber Anfang der 90er frei. Ein gegenwärtig existierendes freies Betriebssystem(4) ist höchstwahrscheinlich entweder eine Variante des GNU-Systems oder eine Art von BSD-System.

Manchmal wird angefragt, ob BSD auch eine Variante von GNU sei, wie GNU/Linux. Die BSD-Entwickler wurden angeregt, ihren Quellcode am Beispiel des GNU-Projekts zu Freie Software zu machen, und nachdrückliche Appelle von GNU-Aktivisten halfen sie zu überzeugen, aber der Quellcode hatte kaum Überschneidungen mit GNU. BSD-Systeme nutzen heute einige GNU-Programme wie das GNU-System und seine Varianten ebenso einige BSD-Programme nutzen. Allerdings, als Ganzes betrachtet, sind sie zwei verschiedene Systeme, die separat entwickelt wurden. Die BSD-Entwickler schrieben keinen Systemkern und fügten diesen dem GNU-System hinzu, daher würde ein Name wie GNU/BSD der Situation(5) nicht gerecht werden.

Anmerkungen:

  1. Diese wenig aufregenden aber wesentlichen Komponenten umfassen den GNU Assembler (GAS) und den GNU Linker (GLD), beide nun Teil der GNU Binary Utilities, GNU Tar und vielen weiteren Paketen.
  2. Beispielsweise sind die Bourne Again SHell (BASH), der PostScript Interpreter Ghostscript und die C-Bibliothek keine Programmierwerkzeuge. Auch GnuCash, Gnome und Chess nicht.
  3. Beispielsweise die C-Bibliothek.
  4. Seitdem dieser Text verfasst wurde, ist ein nahezu-freies, Windows-ähnliches System entwickelt worden, aber technisch ist es überhaupt nicht GNU oder Unix ähnlich, so dass es nicht wirklich Einfluss auf dieses Anliegen hat. Der Großteil des Solaris-Systemkerns wurde unter einer freien Lizenz lizenziert, aber würde man daraus ein freies System machen wollen, abgesehen von der Ersetzung der fehlenden Teile des Systemkerns, würde man es auch bei GNU oder BSD machen müssen.
  5. Auf der anderen Seite wurde in den Jahren seit dieser Artikel verfasst wurde, die GNU C-Bibliothek auf mehrere Versionen des BSD-Systemkerns portiert, was es einfach machte, das GNU-System mit diesem zu kombinieren. Ebenso wie GNU/Linux sind diese in der Tat Varianten von GNU und werden daher beispielsweise GNU/kFreeBSD und GNU/kNetBSD, abhängig vom Systemkern des Systems, genannt. Gewöhnliche Benutzer mit typischen Arbeitsoberflächen können zwischen GNU/Linux und GNU/*BSD kaum unterscheiden.

Anmerkungen des Übersetzungsteams:

  1. [*] Der Name GNU ist ein rekursives Akronym für GNU’s Not Unix (‚GNU ist nicht Unix‘).