35 Jahre Linux 0.01: Die erste Version war eine Einladung zum Lesen

Am 17. September 1991 erschien Linux 0.01. Zum 35. Jahrestag lohnt der Blick auf ein überraschendes Versprechen: Quellcode lesen, Grenzen verstehen und daran mitarbeiten, dass aus einem unfertigen Kernel mehr werden kann.

Pixel-Art-Jugendzimmer aus der Draufsicht mit offenem beigefarbenem Computer, Disketten und Schaltungsheft neben einem leuchtenden Röhrenmonitor

Stell dir einen Rechner vor, der noch keine Erfolgsgeschichte kennt. Kein komfortabler Installer wartet auf seinen Einsatz, keine Distributionsauswahl hilft beim Einstieg. Stattdessen gibt es Quellcode, einige sehr konkrete Hardwareannahmen und eine Anleitung, die offen über fehlende Funktionen spricht. War das schon eine Veröffentlichung, die einen Jahrestag verdient?

Ja, denn veröffentlicht wurde auch eine Möglichkeit: Andere konnten die Konstruktion untersuchen. Linux 0.01 machte ein Experiment überprüfbar, lange bevor daraus eine bequeme Arbeitsumgebung wurde. Zum Eintrag im Nerd-Kalender schauen wir deshalb auf das, was im September 1991 tatsächlich vorlag — und auf die späteren Entwicklungen, die häufig versehentlich mit in dieses Datum rutschen.

Warum Linux mehrere Geburtstage hat

Der 25. August, der 17. September und der 5. Oktober 1991 stehen für unterschiedliche Schritte. Im August fragte Linus Torvalds in einer MINIX-Newsgroup nach Wünschen und Rückmeldungen. Der Septembertermin bezeichnet die erste Veröffentlichung des Quellcodes als Version 0.01. Im Oktober folgte eine öffentliche Ankündigung eines bereits besser nutzbaren Systems. Wer daraus einen einzigen Produktstart macht, überspringt die Entwicklung zwischen Idee, zugänglichem Code und praktischer Benutzbarkeit.

Der historische Archiveintrag zu Linux 0.01 führt den 17. September 1991. Zugleich zeigt er einen Git-Import aus dem Jahr 2007. Das ist kein Widerspruch: Eine spätere Archivierung kann ein älteres Veröffentlichungsdatum bewahren. Es gab selbstverständlich keinen Git-Commit dieses Projekts im Jahr 1991.

In seinem Rückblick von 1992 mit den frühen Newsgroup-Beiträgen erinnerte sich Torvalds ungefähr an Mitte September. Präziser Archiveintrag und ungefähre Erinnerung sind verschiedene Belegarten. Der heutige Jahrestag bezieht sich auf die erste Quellcodefassung, nicht auf die erste öffentliche Erwähnung von Linux.

Was bekam man mit Version 0.01?

Die ursprünglichen Release Notes beschreiben einen Kernel für AT-Rechner mit 386-Prozessor. Interessierte mussten die Konfiguration anpassen und den Code selbst übersetzen. VGA- oder EGA-Bildschirm, ein passender Festplattencontroller und sogar eine fest eingebaute finnische Tastaturbelegung gehörten zu den konkreten Voraussetzungen. Torvalds berichtete von einem funktionierenden Kernel auf zwei Rechnern.

Solche Einzelheiten zeigen, wie weit ein erfolgreicher Versuch von einem allgemein nutzbaren Produkt entfernt sein kann. Funktionierende Hardware im eigenen Zimmer ersetzt weder eine breite Geräteunterstützung noch ein verständliches Installationsverfahren. Jede weitere Umgebung bringt Annahmen ans Licht, die vorher unsichtbar blieben.

Ein Kernel verwaltet zentrale Ressourcen und vermittelt zwischen Programmen und Hardware. Für ein benutzbares Betriebssystem braucht es zusätzlich Programme, Bibliotheken und Werkzeuge. Die damaligen Hinweise trennen diese Bestandteile ausdrücklich und nennen GNU-Software als wichtige Werkzeugquelle. Linux 0.01 als fertige Distribution im heutigen Sinn zu beschreiben, würde daher die eigentliche Leistung falsch einordnen.

Warum Linux MINIX brauchte, ohne MINIX-Code zu sein

Auf den ersten Blick klingt es widersprüchlich: Laut Release Notes enthielt Linux keinen MINIX-Code, benötigte aber MINIX als Starthilfe. Der Widerspruch verschwindet, sobald man Implementierung und Entwicklungsumgebung auseinanderhält. Ein neues Programm kann auf einem vorhandenen System vorbereitet und gebaut werden, ohne dessen Code zu übernehmen.

Eine Werkbank ist ein brauchbares Bild dafür. Wer auf einer geliehenen Werkbank ein eigenes Gerät baut, hat das Gerät nicht aus dem Holz dieser Werkbank geschnitzt. Das frühe Linux benötigte eine Umgebung für die Vorbereitung seiner Dateien und den Bau des Kernels. Die Kompatibilität zum MINIX-Dateisystem erleichterte zudem den Umgang mit denselben Daten.

Diese Unterscheidung hilft auch bei heutigen Softwaredebatten. „Unabhängig“ kann bedeuten, dass ein Projekt eigenen Quellcode besitzt, sich ohne fremde Werkzeuge bauen lässt, selbstständig installierbar ist oder von einer eigenen Gemeinschaft gepflegt wird. Das sind vier verschiedene Fragen. Die erste Linux-Veröffentlichung musste nicht alle gleichzeitig beantworten, um einen eigenständigen Entwurf zugänglich zu machen.

Lief die erste Linux-Version überhaupt?

Die Quellen liefern darauf keine widerspruchsfreie Kurzantwort. Die zeitgenössischen Hinweise berichten von zwei funktionierenden Rechnern und betonen zugleich, dass die Veröffentlichung hauptsächlich zum Lesen gedacht sei. Torvalds bezeichnete die Quellen von 0.01 in seinem späteren Rückblick dagegen als nicht wirklich lauffähig. Beide Aussagen gehören zur Geschichte.

Belastbar ist die engere Schlussfolgerung: 0.01 war eine Quellcodeveröffentlichung mit erheblichen praktischen Grenzen, kein verlässliches Installationspaket für beliebige Interessierte. Welche Vorbereitungen, lokalen Anpassungen oder unterschiedlichen Erwartungen die abweichende Formulierung erklären, lässt sich aus diesen Dokumenten allein nicht abschließend bestimmen.

Gerade darin steckt eine nützliche Lektion. „Beim Autor läuft es“, „das Archiv lässt sich bauen“ und „jemand Fremdes kann das Ergebnis reproduzieren“ sind unterschiedliche Behauptungen. Gute Dokumentation macht deutlich, welche davon geprüft wurde. Beim Blick auf eine spätere Erfolgsgeschichte sollten wir diese Unterschiede nicht nachträglich einebnen.

Die spätere Portabilität war kein fertiger Ausgangspunkt

Das frühe Linux nutzte die Möglichkeiten des 386 gezielt aus. Die Release Notes räumen ein, dass dadurch die Übertragung auf andere Prozessoren schwierig wurde. Sie beschreiben außerdem Kernel, Dateisystem und Speicherverwaltung als gemeinsam laufenden Code in einem Daten- und Codebereich — ein frühes Merkmal der monolithischen Architektur.

Damit wird „unfertig“ genauer: Manches fehlte noch, anderes war eine bewusste technische Abwägung. Wer zunächst einen konkreten Rechner unterstützt, kann echte Abläufe ausprobieren. Wer später viele Rechner unterstützen möchte, muss prüfen, welche Hardwareannahmen tief in den Entwurf eingegangen sind.

Unser Beitrag über Dennis Ritchie, C und die Portabilität von Unix erklärt den größeren Zusammenhang. Linux 0.01 ergänzt ihn um ein anschauliches Gegenstück: Viel Code in C zu schreiben beseitigt nicht automatisch jede Prozessorabhängigkeit. Eine Sprache kann das Anpassen erleichtern, während die Architektur weiterhin sehr konkrete Eigenschaften einer Maschine voraussetzt.

Die GPL kam erst später hinzu

Auch die Lizenzgeschichte lässt sich nicht vollständig auf den September 1991 zurückdatieren. Die Bedingungen von 0.01 verlangten zugänglichen Quellcode und erhaltene Urheberrechtshinweise. Gleichzeitig untersagten sie, für die Weitergabe Geld zu verlangen — selbst Bearbeitungsgebühren waren ausgeschlossen. Das war noch nicht die spätere GPL-Regelung.

In den Release Notes zu Linux 0.12 schlug Torvalds vor, diese Einschränkung zu entfernen und zu den GNU-Copyleft-Bedingungen zu wechseln. Er räumte Mitwirkenden die Möglichkeit zum Widerspruch ein und nannte den 1. Februar als vorgesehenen Beginn. Im Kontext dieser Veröffentlichung Anfang 1992 ist das ein späterer Meilenstein.

Für den Jahrestag genügt diese historische Unterscheidung: Quellcode veröffentlichen und Regeln für seine Weitergabe festlegen sind zwei Entscheidungen. Solche Regeln beeinflussen, wie andere Menschen mitarbeiten und Ergebnisse verbreiten können. Die Bedeutung der ersten Veröffentlichung wird klarer, wenn wir ihre Entwicklungsschritte einzeln betrachten.

Ein guter Geburtstag beginnt mit den Release Notes

Wer Linux 0.01 kennenlernen möchte, kann zunächst drei Dinge in der ursprünglichen Beschreibung markieren: Was soll funktionieren? Was fehlt ausdrücklich? Welche Voraussetzungen betreffen nur bestimmte Rechner? Anschließend lohnt der Vergleich mit Torvalds' späterer Erinnerung. Dafür muss niemand historische Software auf seinem Alltagsrechner installieren.

Die besondere Leistung von Linux 0.01 war, einen unfertigen Entwurf zur Untersuchung freizugeben. Seine Grenzen blieben sichtbar, und andere konnten anfangen, ihn zu verstehen, zu hinterfragen und zu verbessern. Nach 35 Jahren ist genau diese Öffnung einen Blick wert: Eine erste Version muss die Zukunft noch nicht enthalten, damit der nächste Schritt möglich wird.


Deine tägliche Nebenquest

Jeder Tag hat Lore.

Entdecke im Nerd-Kalender Jahrestage, Veröffentlichungen und herrlich schräge Feiertage, die sich vor aller Augen verstecken.

Heutige Nerd-Events entdecken

Folge dem Signal

Nerdtalk zwischen den Posts.

Kurze Gedanken, frische Funde und die gelegentliche völlig unnötige Tatsache — gesendet auf X.

NerdSpot auf X folgen