Die Reformation zum Anfassen: GNU/Linux und Open Source

Teil 1: Die Befreiung von Unix

Der folgende Beitrag ist vor 2021 erschienen. Unsere Redaktion hat seither ein neues Leitbild und redaktionelle Standards. Weitere Informationen finden Sie hier.

Linux ist für viele ein schwer erklärbares Phänomen - ein Betriebssystem für PDAs und Supercomputer, völlig kostenlos entwickelt mit der kollektiven Intelligenz seiner Nutzer. Es widerspricht in seiner Natur der klassischen ökonomischen Lehre ebenso wie den kommerziell üblichen Software-Entwicklungsmodellen. Ist Linux der Vorbote einer neuen Epoche der Massenaufklärung? Was steckt hinter der Utopie?

Der in Tokio entwickelte Isamu-Roboter läuft mit RTLinux, dem Linux für Echtzeit-Anwendungen.

Das Projekt Linux begann mehr oder weniger offiziell am 25. August 1991 mit einer Mitteilung in einer Newsgroup. Das Usenet ist ein dezentrales Diskussionsnetz, das in Gruppen unterteilt ist. News-Server synchronisieren gegenseitig den Bestand einzelner Diskussionsgruppen. Ein Beitrag (Posting) in einer Newsgroup ist damit innerhalb von Sekunden auf Hunderten von Servern auf der ganzen Welt verfügbar (siehe Schöner Tauschen IV für eine kurze Einführung). Redundanz erhöht die Zuverlässigkeit, und so funktionierte das Usenet auch an jenem Tag, als der Finne Linus Torvalds einen berühmt gewordenen Beitrag in die Gruppe "comp.os.minix" postete1:

Von: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Betreff: Was würdet Ihr am liebsten in Minix sehen?
Zusammenfassung: kleine Umfrage für mein neues Betriebssystem
Nachrichten-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Datum: 25. August 1991 20:57:08 GMT
Organisation: Universität von Helsinki

Hallo an alle da draußen, die minix benutzen -
Ich entwickle ein (freies) Betriebssystem (nur ein Hobby, wird nicht professionell und groß sein wie gnu) für 386er (486er) AT Clones. Das läuft jetzt etwa seit april und fängt langsam an, fertig zu werden. Ich hätte gerne Rückmeldung darüber, was Ihr an minix mögt oder weniger mögt, da mein Betriebssystem etwas daran erinnert (gleiches physikalisches Layout des Dateisystems (aus praktischen Gründen) neben anderen Dingen). Ich habe zur Zeit bash(1.08) und gcc(1.40) portiert, und es scheint zu funktionieren. Ich werde also in den nächsten Monaten etwas Brauchbares ans Laufen bekommen, und ich wüsste gerne, welche Funktionen Ihr gerne drin hättet. Alle Vorschläge sind willkommen, aber ich verspreche nicht, dass ich sie auch implementiere :-)
Linus (torvalds@kruuna.helsinki.fi)
PS: Ja - kein minix Code ist enthalten, und es hat ein multi-threaded Dateisystem. Es ist NICHT portabel (verwendet 386er-Taskwechsel etc), und es wird wahrscheinlich nie etwas anderes unterstützen als AT-Festplatten, weil das alles ist, was ich habe :-(.

Um diese Anfrage entziffern zu können, muss man ein wenig über Unix wissen. Um die Programmierung von großen Rechenanlagen zu erleichtern und zu standardisieren, entwickelte ein Team von Informatikern an den Bell Laboratories (Bell war bis zur staatlich erzwungenen Aufspaltung 1984 das Telefonmonopol der USA) ein Betriebssystem namens Unix, das bis heute - natürlich in stark veränderter Form, aber mit einer prinzipiell ähnlichen Architektur - den Standard auf Großrechnern setzt.

Von allen Programmen, die auf einem Computer laufen, ist das Betriebssystem das grundlegendste. Es stellt Basisfunktionen für die Ein- und Ausgabe von Daten bereit, steuert Geräte an und verwaltet die laufenden Programme. Das Betriebssystem sorgt auch dafür, dass mehrere Programme gleichzeitig laufen können, indem es einzelnen Programmen jeweils Prioritäten zuweist und je nach Priorität einen unterschiedlichen Anteil an der Rechenzeit zuteilt (man spricht hierbei auch von Prozessen - ein Prozess ist eine "Instanz" eines Programms, das ja durchaus auch mehrfach aufgerufen werden kann).

Als Unix 1974 das erste Mal in einem Paper beschrieben wurde, hatte es bereits diese als Multitasking bekannte Fähigkeit (der Name Unix leitet sich von seinem gescheiterten Vorgänger Multics ab). Unix konnte außerdem mit mehreren Nutzern auf einem Rechner umgehen: Jeder Nutzer hat ein "Heimatverzeichnis", in dem seine Dateien liegen, und kann nicht auf die Dateien anderer Nutzer zugreifen. In einer Welt, in der sich viele Menschen einen Großrechner teilen mussten, war sowohl Multitasking- als auch Multiuser-Fähigkeit ein Muss. Man konnte beliebige Programme installieren und schreiben, die, ggf. mit geringen Veränderungen, auch auf anderen Unix-Systemen lauffähig waren.

Dennis Ritchie und Ken Thompson von den Bell Labs portieren das Betriebssystem Unix auf einen PDP-11 Großrechner

Unix war ein kommerzielles Projekt, das durch Copyrights, Markenrechte und Patente "geschützt" wurde. Der Monopolist Bell/AT&T wurde aber aus Antitrust-Gründen bereits 1956 dazu gezwungen, alle seine Patente an interessierte Parteien zu lizenzieren.2 Nur so konnten Derivate von Unix überhaupt entstehen, und Unix konnte sich als Standardplattform etablieren. Mit anderen Worten: Die Abwesenheit des überlicherweise durch Patente gewährten Monopolrechts führte zu einer drastischen Steigerung des Wettbewerbs, der Innovation und der Standardisierung. Die US-Justiz hatte ja bereits Erfahrungen mit Bell: Im 19. Jahrhundert hatte "Ma Bell" durch Patente jede Konkurrenz erstickt. Als die schließlich 1893 und 1894 ausliefen, gründeten sich über 6000 unabängige Telefonfirmen in den USA.3

Was ist GNU?

Obwohl Unix zunehmend zur Standardplattform wurde, waren die existierenden Varianten immer noch durch Schutzrechte in ihrer Verwendung eingeschränkt - AT&T verlangte Lizenzgebühren für jedes installierte Unix und für Unix-Derivate. Das dürfte ein Hauptgrund sein, warum Unix heute nicht den Standard auf PCs bildet. Denn Microsoft entwickelte als Alternative zu dem extrem primitiven DOS ein eigenes Unix, Microsoft Xenix. Für die PC-Plattform wurde jedoch DOS (und später das darauf aufsetzende Windows) bevorzugt, wohl vor allem, so wurde gemutmaßt, aus Lizenzgründen. Windows wurde der Standard, Xenix an Entwicklerfirma SCO verkauft, die heute zu Caldera gehört.

Programme für Unix wurden häufig nur in Binärform weitergegeben. Das bedeutet, dass es nicht möglich war, sie zu verändern - die "binäre" (aus Einsen und Nullen bestehende) Computersprache kann von Menschen kaum noch nachvollzogen werden (selbst wenn man sie in Instruktionen und Parameter zerlegt), weshalb es eine Vielzahl von Programmiersprachen gibt, die nach dem Schreiben oder während der Ausführung in Maschinencode übersetzt werden. Wenn der Quellcode also überhaupt verfügbar war, dann meist nur unter einer Lizenz, die Weitergabe und Veränderungen einschränkte.

1983 hatte Richard Stallman, Forscher in der Abteilung für Künstliche Intelligenz des renommierten MIT, genug von den Beschränkungen, denen das Unix-Betriebssystem und die dazugehörigen Programme unterlagen. Als er 1971 am MIT anfing, wurde dort ausschließlich freie Software eingesetzt: Man konnte sie für alle Zwecke einsetzen, verändern und weitergeben. Doch mit Unix waren diese Freiheiten verschwunden. Stallman rief also zur Befreiung von Unix auf. Das neue Projekt trug den Namen GNU, eine rekursive Abkürzung für "GNU ist nicht Unix" (der erste Buchstabe steht wohl deshalb dort, weil er der einzige einsetzbare ist, der ein reales Wort ergibt).

Nach und nach kamen die einzelnen Bestandteile des freien Betriebssystems zusammen: ein Compiler für die Programmiersprache C, die dazugehörigen Bibliotheken mit Standardprogrammfunktionen, der mächtige Editor emacs, der Kommandozeilen-Interpreter bash usw. (eine vollständige Liste der offiziell zum GNU-Projekt gehörenden Programme findet sich hier). Stallman gründete die "Free Software Foundation", die freie Programme unter ihre Fittiche nimmt, rechtlichen Beistand erteilt und Medien informiert.

Aus GNU wird GNU/Linux

Was dem GNU-Projekt jedoch bis heute fehlt ist der Kernel, der die Systemhardware Programmen zugänglich macht. Seit ca. 1990 bemüht man sich darum, das GNU-Betriebssystem mit einem eigenen Kernel namens Hurd zu vervollständigen. 1991 entwickelte der finnische Student Linus Torvalds schließlich, inspiriert durch das experimentelle PC-Unix Minix, wie oben erwähnt, seinen eigenen Kernel, den er Linux nannte. Torvalds entschied sich, den Code frei zur Verfügung zu stellen, und dank des damals an vielen Universitäten bereits vorhandenen Internet erfuhren schnell Tausende von Interessierten davon.

Für Hurd gab es zu diesem Zeitpunkt kaum noch Hoffnung, auf absehbare Zeit fertig zu werden - so liefen die Entwickler in Heerscharen zu Linux über und bereicherten den Kernel um Treiber, Dateisysteme und weitere grundlegende Funktionen. Doch Linux wäre wertlos gewesen, hätte es zu diesem Zeitpunkt nicht die riesige GNU-Toolsammlung gegeben - dank des freien C-Compilers gcc, der Teil des GNU-Projekts ist, konnten z.B. sofort Programme für Linux entwickelt werden.

Richard Stallman und Linus Torvalds: Das Verhältnis zwischen den GNU/Linux-Visionären ist gestört

Als Linux und Linus bekannt wurden, erhielten Richard Stallman und das GNU-Projekt kaum die ihnen gebührende Wertschätzung. Stallman besteht deshalb seit einiger Zeit darauf, dass man nicht von Linux, sondern von GNU/Linux sprechen soll. Doch der holprige Name konnte sich bislang nicht exklusiv durchsetzen, was sicher auch mit Stallmans legendärer Sturheit zu tun hat, die viele Entwickler abschreckte. Ganz im Sinne der Konkurrenz kam es zu Grabenkämpfen innerhalb des Linux-Lagers bis hin zu Boykottaufrufen gegen GNU.