Original-URL des Artikels: https://www.golem.de/news/unix-wird-50-die-wilde-jugend-von-unix-2006-149027.html    Veröffentlicht: 22.06.2020 12:07    Kurz-URL: https://glm.io/149027

Unix

Ein Betriebssystem in 8 KByte

Zwei junge Programmierer entwarfen nahezu im Alleingang ein Betriebssystem und die Sprache C. Zum 50. Jubiläum von Unix werfen wir einen Blick zurück auf die Anfangstage.

Unix ist heute bekannt als professionelles Betriebssystem und Grundlage der Entwicklung von Linux, viele seiner Prinzipien gelten immer noch - 50 Jahre nach der ersten lauffähigen Version. Der weltweite Durchbruch 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. Am Ende sollten es genau diese Hürden sein, die den Erfolg von Unix begründeten.

Diese Geschichte beginnt 1969 in den Bell Labs, ein paar Kilometer außerhalb von New York - mit einem Computerspiel.

Der 26-jährige Computerwissenschaftler Ken Thompson schrieb hier an der Raumfahrtsimulation 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 mehrerer 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 dem Projekt. So landete Ken Thompson im Team von Multics - allerdings nicht lange.

Nach vier Jahren Entwicklungszeit, ohne dass eine erste lauffähige Version absehbar war, entschied sich Bell Labs 1969, aus dem Projekt auszusteigen. 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 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 für die Entwicklung eines Betriebssystems anzuschaffen - 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.



Von Multics zu Unics zu Unix

In einer benachbarten Abteilung wurde er schließlich fündig. Er entdeckte eine ältere DEC PDP-7, die sogar mit einem Bildschirm ausgestattet war. Er schrieb in den folgenden Tagen den kompletten Code von Space Travel in Maschinensprache neu. Doch nicht einmal die Programmierung in Assembler konnte er 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.

Das beschleunigte zwar die Programmierung von Space Travel enorm, aber das eigentliche Spiel lief am Ende trotzdem zäh wie Sirup.

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. Sie nannten das Ergebnis Unics.

Über die Herkunft des Namens kursieren mehrere Geschichten, so soll es eine Anspielung auf Uniplexed statt Multiplexed oder ein Wortspiel mit dem englischen Begriff Eunuchs sein - also einer kastrierten Version von Multics. 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 System überzeugt werden - und davon, für die Weiterentwicklung endlich einen neuen Rechner für Thompsons und Ritchies Projekt anzuschaffen.

Wer B schreibt, kann auch C schreiben

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.

In den kommenden zwei Jahren konnte sich das wachsende Team endlich offiziell der Entwicklung und Dokumentation des Betriebssystems widmen. Bald liefen fast alle neu angeschafften Rechner in den Bell Labs mit der hauseigenen Software.

Ritchie und Thompson wollten neue 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. Ritchie beschrieb das Ergebnis später so: "Man kann sich B vorstellen als C ohne Datentypen, genauer: Es ist BCPL in 8 KByte Speicher gequetscht und durch Thompsons Hirn gefiltert."

Zu dieser Zeit bestand Unix aus den folgenden Komponenten: Assembler, Link Editor, Text Editor, FORTRAN Compiler, B Compiler, Debugger, Textformatierungsprogramm, Macroprozessor, TMGL Compiler-Compiler, einer Kommandozeile und verschiedenen Dateiwerkzeugen.

Um Unix auch auf anderen Rechnern lauffähig zu machen, reichte die "hirngefilterte" Programmiersprache B allerdings nicht mehr aus. Also verbesserte und erweiterte Dennis Ritchie sie. Nachdem er kurz überlegt hatte, das Ergebnis "NB" für "New B" zu taufen, entschied er sich für die elegantere Bezeichnung "C".

Programmierer werden wertvoller als Rechenzeit

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. Wenn also Programmierer monatelang über kryptischer Maschinensprache brüteten, um Bugs zu finden - und dabei einige ihren Verstand verloren, wie das Byte-Magazin in einem Artikel 1983 anmerkte -, war das akzeptabler, als wenn sie teure Ressourcen auf Großrechnern beanspruchten, um in neumodischen Hochsprachen zu coden.

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 von Thompson und Ritchie 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 war also für Bell Labs kein Geschäftsmodell. 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.

Angeblich kopierte Ken Thompson die Disketten in den Anfangstagen mitunter selbst und signierte sie sogar. Der Nachteil, dass die Anwenderschaft ohne jegliche Herstellerunterstützung auskommen musste, relativierte sich schnell. Überall gründeten sich Unix-Benutzergruppen, die Wissen und Software bereitwillig teilten. Sie bildeten die Basis für den weltweiten Siegeszug des Systems.

Unix verbreitete sich auf Grund seiner Portierbarkeit plattformübergreifend und ließ sich durch die eigene Programmiersprache C verhältnismäßig leicht anpassen. Eine Distribution, die an der kalifornischen Universität Berkeley entwickelt wurde, ist auch heute noch bekannt: BSD.

Ab den 1980er Jahren existierten viele verschiedene unixoide Systeme und lizenzierte Varianten, die nun auch im kommerziellen Bereich zum Einsatz kamen. Zunehmend bestanden nämlich die Absolventen der computerwissenschaftlichen Studiengänge, die an Unix und seine Werkzeuge gewöhnt waren, darauf, es auch im professionellen Arbeitsumfeld einzusetzen.

Um dem Wildwuchs zu begegnen, wurde 1988 der POSIX-Standard verabschiedet, der Unix-Schnittstellen vereinheitlichte. Kritik an der Fragmentierung des Betriebssystems gab es aber auch aus der Nutzerschaft, so entstand die erste Bewegung für freie Software in Reaktion auf die zunehmend proprietäre Entwicklung von Unix.

Unter dem Kürzel GNU - für GNU is not Unix - wurden erste Programme von der Free Software Foundation publiziert, die 1991 auch die Aufmerksamkeit eines finnischen Studenten namens Linus Thorvalds erregten. Sein Projekt, einen eigenen Kernel für ein unixoides Betriebssystem zu schreiben, mündete im derzeit weltweit meistverwendeten freien OS: Linux.

Unix-Urversion wiederbelebt

Ken Thompson und Dennis Ritchie arbeiteten bis in die 2000er Jahre weiter bei Bell Labs, dann verließ Thompson das Unternehmen und 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. <#youtube id="pvaPaWyiuLA"> Dennis Ritchie fasste in einem Vortrag 1979 seine Erinnerungen an die Frühzeit der Entwicklung so zusammen: "Das Tröstliche an alten Erinnerungen ist die Tendenz, dass alles einen rosigen Schimmer bekommt. Die Programmierumgebung der frühen Unix-Versionen erscheint, wie sie hier beschrieben ist, extrem rau und primitiv. (...) Trotzdem kam uns das zu dieser Zeit nicht so vor. Die Erinnerung hält sich an dem fest, was gut war und blieb - und an der Freude, Fortschritte zu machen, die das Leben verbesserten."

 (mwo)


Verwandte Artikel:
Unix-Desktop: Gnome 3.36 setzt auf Design   
(12.03.2020, https://glm.io/147208 )
Matsushita und Thomson verstärken Bildröhren-Kooperation   
(27.09.2001, https://glm.io/16057 )
AVMs Ken 4 mit Groupware-Funktionen   
(29.03.2006, https://glm.io/44335 )
Windows: Microsoft verkürzt Updatepause für Windows 10 Pro   
(29.06.2020, https://glm.io/149350 )
Microsoft: Das Mai-Update für Windows 10 ist da   
(28.05.2020, https://glm.io/148763 )

© 1997–2020 Golem.de, https://www.golem.de/