Video: Die Entstehung von Unix (Golem Geschichte)
Zwei Programmierer entwarfen nahezu im Alleingang eines der wichtigsten Betriebssysteme.
Unix ist heute bekannt als professionelles Betriebssystem und Grundlage der Entwicklung von Linux, viele seiner Prinzipien gelten noch immer - 50 Jahre nach der ersten lauffähigen Version. Der weltweite Erfolg von Unix war aber keineswegs absehbar. Dies ist die Geschichte von zwei Programmierern, die ein System schrieben, das keiner wollte, auf einem Rechner, der für eine solche Aufgabe hoffnungslos unterdimensioniert war - und deren fertiges Produkt ihre Firma nicht verkaufen durfte.
Diese Geschichte beginnt 1969 in den Bell Labs, ein paar Kilometer außerhalb von New York - mit einem Videospiel.
Der 26-jährige Computerwissenschaftler Ken Thompson schrieb hier an der Raumfahrtsimluation Space Travel für den tonnenschweren Mainframe-Computer GE 635. Das Programm ermöglichte es, sich im Sonnensystem fortzubewegen und auf Planeten zu landen. Die simple 2D-Grafik wurde auf einem Bildschirm ausgegeben, damals keine Selbstverständlichkeit.
Das Spiel sollte als Test auf einem neuen Betriebssystem mit dem Namen Multics laufen. Die Abkürzung steht für Multiplexed Information and Computing Service und deutet an, was von dem neuen OS erwartet wurde: die gleichzeitige Bedienung durch mehrere Benutzer. Diese Art, mit den knappen Rechenressourcen der Computerfrühzeit umzugehen, war nicht neu. Aber Ideen wie die nahtlose Verknüpfung von Festspeicher und Arbeitsspeicher, prozessübergreifender Zugriff auf Daten und die Möglichkeit, das System zu warten, während es lief, machten Multics zu einem attraktiven Projekt. Es beteiligten sich unter anderem das MIT, General Electric und Bell Labs an der Entwicklung. So landete Ken Thompson im Team von Multics - allerdings nicht lange.
1969 entschied sich Bell Labs nämlich, aus dem Projekt auszusteigen, weil es auf absehbare Zeit keine realistische Chance auf eine lauffähige erste Version hatte. Die Anforderungen an die verfügbare Hardware waren schlichtweg zu hoch. Ken Thompson hingegen sah Potenzial in den Ideen von Multics. Er wollte weiter an einem Mehrbenutzersystem arbeiten, und wenn es sein musste, dann würde er es eben selbst schreiben.
Immerhin hatte er noch sein Spiel, das inzwischen auf dem Großrechner funktionierte. Aber eine Stunde Rechen- oder besser Spielzeit auf dem GE 635 kostete 75 US-Dollar., das sind inflationsbereinigt fast 500 Euro. Warum also nicht beide Projekte kombinieren und eine eigene Umgebung für das Programm schreiben, die auch auf einem billigeren Computer lief?
Seine Vorgesetzten waren von der Idee alles andere als begeistert. Denn billig hieß in diesem Fall, einen mehrere Zehntausend Dollar teuren Computer anzuschaffen - für ein Projekt, von dem man sich gerade verabschiedet hatte. Das mit dem Spiel hatte Thompson wohlweislich verschwiegen.
Also machte er sich selbst auf die Suche nach einem Rechner. In einer benachbarten Abteilung wurde er schließlich fündig. Er entdeckte eine ältere PDP 7, die sogar mit einem Bildschirm ausgestattet war. Also schrieb er den kompletten Code von Space Travel in Maschinensprache neu, denn für Hochsprachen wie Fortran war der Computer nicht leistungsstark genug. Nicht nur das, auch die Programmierung in Assembler konnte er nicht auf der PDP 7 selbst vornehmen. Er musste den Code auf dem GE 635 Mainframe eintippen, dann auf Lochkarten ausgeben und damit die PDP 7 füttern. Nach kurzer Zeit hatte er die Nase voll von diesem Prozess und beschloss, einen eigenen Assembler für die PDP 7 zu schreiben.
Hilfe kam in Form eines Kollegen von Thompson. Der 29-jährige Dennis Ritchie hatte sich im Rahmen der Entwicklung von Multics mit den neuen Ideen für Dateisysteme beschäftigt. Zusammen entwarfen sie in nur einem Monat eine komplette Entwicklungsumgebung inklusive eines Editors, eines Kommandozeileninterpreters und einer Dateiverwaltung - und sogar das Spiel Space Travel funktionierte. Sie nannten das Ergebnis Unics.
Über die Herkunft des Namens kursieren mehrere Geschichten, sicher ist nur, dass er schon Anfang der 1970er Jahren zu Unix verkürzt wurde.
Die Limitationen der leistungsschwachen PDP-7 hatten die Programmierer zu ressourcenschonendem Arbeiten gezwungen. Das Ergebnis war ein rudimentäres, aber funktionierendes Betriebssystem, das im Gegensatz zu Multics mit der existierenden Hardware problemlos lief. Jetzt musste nur noch Bell Labs von dem neuen System überzeugt werden - und davon, für die Weiterentwicklung endlich einen neuen Rechner für Thompsons und Ritchies Projekt anzuschaffen.
Bell Labs wollte 1970 zwar immer noch kein Betriebssystem, was man aber dringend brauchte, war ein Textverarbeitungsprogramm, um Patentanmeldungen per Computer zu erledigen. Die beiden Programmierer versprachen, eine solche Funktion in Unix zu implementieren und bekamen eine ziemlich moderne PDP 11/20 für den heutigen Gegenwert von über 130.000 US-Dollar. Innerhalb von nur drei Monaten hatten sie ein funktionierendes Textformatierungsprogramm namens roff, einen einfachen Editor - und nun auch die volle Aufmerksamkeit ihrer Vorgesetzten für Unix.
Bald liefen fast alle neu angeschafften Rechner in den Bell Labs mit der hauseigenen Software.
Ritchie und Thompson wollten folgende Versionen aber nicht mehr in Assembler schreiben und sahen sich nach einer Alternative um. Die zunächst favorisierte Sprache BCPL war zwar verfügbar, aber dummerweise nicht dokumentiert. Thompson sah sich den Quellcode an und beschloss, alles für ihre Zwecke Unbrauchbare zu entfernen und seine eigene Version zu schreiben, die er konsequenterweise "B" nannte.
Dennis Ritchie verbesserte und erweiterte sie. Nachdem er kurz überlegt hatte, das Ergebnis "NB" für "New B" zu taufen, entschied er sich für die elegantere Bezeichnung "C". Dabei ist beachtenswert, dass Thompson und Ritchie mit ihrer Entscheidung, UNIX nicht in Assembler zu schreiben, ein neues Paradigma schufen. Zuvor galt es als ausgemacht, dass Rechenzeit wertvoller war als die Arbeitszeit von Entwicklern.
Thompsons und Ritchies Herangehensweise entspricht dem modernen Ansatz, dass Computer stets schneller und preiswerter werden und im Gegensatz dazu die Kosten für menschliche Arbeit ansteigen. Aber es war nicht nur dieses neue, arbeitserleichternde Paradigma, das Unix ab Mitte der 1970er Jahre besonders für Universitäten weltweit attraktiv machte. Es war auch noch kostenlos.
Bell Labs hatte mit Unix ein sehr fortschrittliches, stabiles Multitasking und mehrbenutzerfähiges Betriebssystem - aber Geld verdienen ließ sich mit dem Projekt nicht. Das lag an einem Gerichtsentscheid aus dem Jahr 1956. Seit dieser Zeit war es Bell Labs' Muttergesellschaft AT&T untersagt, sich in anderen Märkten als Telekommunikation zu betätigen. Softwareverkauf stellte also für Bell Labs kein Geschäftsmodell dar. Trotzdem war das Unternehmen verpflichtet, alle Produkte auf Anfrage zu lizenzieren. So konnten Lehreinrichtungen das Betriebssystem inklusive Quellcode für lediglich den Preis der Datenträger erwerben. Das sorgte dafür, dass bereits 1978 über 600 Universitäten und Schulen Unix einsetzten.
Unix verbreitete sich auf Grund seiner Portierbarkeit plattformübergreifend und ließ sich durch die eigene Programmiersprache C verhältnismäßig leicht anpassen. Ab den 1980er Jahren existierten weltweit viele verschiedene unixoide Systeme und lizenzierte Varianten, die nun auch im kommerziellen Bereich zum Einsatz kamen. Unix hatte den Durchbruch geschafft.
Ken Thompson und Dennis Ritchie arbeiteten bis in die 2000er Jahre weiter bei Bell Labs, dann verließ Thompson das Unternehmen. Dennis Ritchie ging in den Ruhestand. Er verstarb 2011 im Alter von 70 Jahren.
Von den Unix-Ursprüngen lässt sich 50 Jahre später erstaunlich wenig online erleben. Das Spiel Space Travel wurde bislang nicht erfolgreich emuliert, die erste Version des Betriebssystems konnte aber immerhin 2019 auf einer restaurierten PDP-7 zum Laufen gebracht werden.
Den Einfluss von Unix spüren wir aber alle auch heute noch - weil seine Prinzipien in den Betriebssystemen unserer Bankautomaten, Server, Spielkonsolen und Smartphones weiterleben.