Wortspiel
C, TCP/IP, GNU, Linux, Windows NT – vieles, was der IT von heute seinen Stempel aufgedrückt hat, ist unlösbar mit einem System verbunden, das von Anfang an anders sein sollte als alles Bisherige: aufs Wesentliche beschränkt – eben Unix.
"Emasculated Multics is Unics" hieß der Standardwitz in Anspielung auf das homofone "eunuchs". Brian Kernighan: "I suggested Unics for Ken's new system, because it was small and had at most one of anything. (Multi and uni are both Latin roots, so it was a very weak pun.) Someone else spelled it with the letter X; no one can remember who." Damit wäre die Geschichte von Unix erzählt, hätte es nicht der IT ein neues Gesicht gegeben. Also zurück ins Jahr 1961: Überall herrscht die Stapelverarbeitung. Nein, nicht überall. Am MIT Computation Center (Massachusetts Institute of Technology) demonstrieren Forscher ihr erstes Mehrbenutzersystem, das Compatible Time-Sharing System (CTSS).
Eine zweite Kopie besitzt das MIT-Projekt MAC (Mathematics and Computation), das 1964 zu dem tollkühnen Plan eines umfangreiches Nachfolgesystems ansetzt: Multiplexed Information and Computing Service, kurz Multics. Auf der Joint Computer Conference im Herbst 1965 präsentieren seine Mitglieder zusammen mit Entwicklern der Bell Laboratories und General Electric (GE – später Honeywell, jetzt Bull) die technischen Details.
Doch Multics erntet schnell Kritik. Innerhalb des MIT distanziert sich die AI Group (Artificial Intelligence) von der Zielrichtung des Projekts und entwickelt ihr eigenes Incompatible Timesharing System (ITS), das heute noch auf virtuellen PDP-10-Sytemen läuft.
Auch die Bell-Labs-Mutter AT&T zweifelt immer stärker an Multics, inzwischen berüchtigt für seinen enormen Umfang und gewaltigen Ressourcenhunger. 1969 zieht AT&T seine Mitarbeiter ab – unter ihnen Ken Thompson, Dennis Ritchie, Doug McIlroy und Joseph Ossanna. 10 Jahre später resümiert Ritchie: "The problem was the increasing obviousness of the failure of Multics to deliver promptly any sort of usable system."
Vor Unix herrschte Chaos – danach auch
Vor allem Ken Thompson ist von der Idee eines eigenen Multi-User-Systems als Umgebung für künftige Arbeiten beseelt. Als das Lab den Entwicklern dafür einen eigenen Rechner verweigert, beginnen sie mit Entwürfen des Dateisystems auf Kreidetafeln und Notizzetteln. Rudd Canaday ruft den neuen Lab-eigenen Diktierservice an. Als dessen Mitschrift am nächsten Tag eintrifft, sind sämtliche Akronyme verpfuscht. Dennoch wird sie zur Arbeitsgrundlage.
Zuvor hatte Thompson auf Multics das Computerspiel Space Travel entwickelt, das die Bewegungen der Planeten simuliert, die der Spieler bereisen kann. In Fortran für GECOS (General Electric Comprehensive Operating System) transkribiert, lief es auf einer GE 635, deren Rechenzeit teuer war.
Bald findet sich eine wenig benutzte PDP-7 von DEC, auf die Thompson und Ritchie das Spiel portieren, dazu ein Gleitkomma-Mathematik-Paket, eine Spezifikation zur Pixel-Adressierung und ein Debugging-Subsystem. Da sie keine Entwicklungsumgebung besitzen, nehmen sie einen Cross-Assembler unter GECOS. Zudem ist die PDP-7 ideal für die Entwicklung des Dateisystems, das Ritchie wegen seiner Herkunft gern als Chalk File System bezeichnet.
Auch das erste Skript mit read-, write- und create-Befehlen – den späteren System Calls – sowie die ersten Tools samt Shell, über exec auf dem Dateisystem aufgerufen, finden noch auf Lochkarten ihren Weg auf die PDP-7. Den August 1969, in dem Frau und Sohn verreisen, reserviert sich Thompson für das Übertragen des Codes: je eine Woche für Betriebssystem, Shell, Editor und Assembler. Im Dezember 1970 beginnt der Umzug des Unics genannten Systems auf eine neu erworbene PDP-11.
Schnell findet sich eine kommerzielle Anwendung: Die Patentabteilung der Bell Labs sucht ein System zum Erstellen, Bearbeiten und Formatieren von Patentformularen. Mit dem auf die PDP-11 portierten und um Zeilennummerierung erweiterten Text-Prozessor roff bestückt, nimmt Unics Mitte 1971 seinen ersten "Job" als Text Processing System an. Währenddessen arbeiten die Entwickler an Erweiterungen und neuen Programmen auf derselben Maschine. Am 3. November 1971 ist das Unix Time-Sharing System First Edition (V1) fertig.
Von Anfang an wollte Thompson das System in eine – hardwareunabhängige – Hochsprache transkribieren. Sein Vorhaben eines "System Fortran" gibt er nach einem Tag auf und entwickelt eine einfache Sprache auf Basis von BCPL (Basic Combined Programming Language), die er schlicht B nennt. Doch: Erstens ist B als Interpreter-Sprache für ein Betriebssystem nicht performant genug, zweitens passt sie als wortorientierte nicht zur byteorientierten PDP-11. Dennis Ritchie übernimmt: Er erweitert die Syntax um strukturierte Typen (New B) und schreibt 1971 den fehlenden Compiler. Brian Kernighan, späterer Koautor von AWK (Aho, Weinberger, Kernighan) und AMPL (A Mathematical Programming Language), steuert die Dokumentation zur neuen Sprache bei: C.
Währenddessen beschäftigt sich Doug McIlroy aufgrund langjähriger Erfahrung mit Koroutinen und Makros noch immer mit der Frage, wie man Prozesse zum Datenaustausch so miteinander verknüpfen kann, dass sich die Syntax von den zahlreichen Argumenten abhebt. Nach zwei Jahren des Insistierens greift Thompson 1972 einen seiner Vorschläge auf – über Nacht sind Programme umgeschrieben und die Shell um die Pipe reicher. Unix nimmt seine endgültige Gestalt an: die Toolbox.
Im Sommer 1972 beginnt Thompson mit dem Transkribieren des Unix-Kernels in C. Erst nach einigen Verbesserungen gelingt das Mitte 1973: Unix V4 – die Wanderschaft über die Hardware-Plattformen kann beginnen. Der erste Unix-Vortrag auf einem ACM-Symposium 1973 ebnet den Weg außerhalb der Bell Labs. Kurz darauf erhält die UCB (University of California, Berkeley) eine Kopie von Unix V4 und beginnt umgehend mit Erweiterungen.
Zugleich verzweigt sich Unix in den AT&T-Abteilungen. Mit MERT (Multi-Environment Real-Time Operating System) und PWB/UNIX (Programmer's Workbench) entstehen 1974 die ersten Spin-offs – und mit troff und dem neuen Typesetter die Begeisterung für Kapitälchen. Während sich PWB/UNIX als Zentrum für Programmierer mit 1000 Usern zur größten Unix-Site der 70er mausert, geht MERT als erstes Real-Time- und Micro-Kernel-Unix in den technischen Dienst. Sein Bruder DMERT (Duplex Multi Environment Real Time) steuert den 3B20D-Minicomputer der AT&T-Telefonvermittlung.
Da das 1956 erlassene Consent Decree AT&T kommerzielle Aktivitäten außerhalb des Telefonmarktes verbietet, gibt der Riese 1975 Unix-V6-Quellen und -Binaries zum geringen Preis an Universitäten ab. 1977 veröffentlicht der Student Bill Joy die Berkeley-Erweiterungen als Berkeley Software Distribution (BSD) auf Tape, 1978 folgt 2BSD samt vi. Durch einen Vertrag zwischen UCB und DARPA (Defense Advanced Research Project Agency) werden 3- und 4BSD zur Grundlage für die DARPA-Entwicklungen, unter ihnen TCP/IP. Die für Universitäten erschwinglichen PDP-Nachfolger VAX (Virtual Address Extension) und das darauf portierte 4.xBSD lassen die Zahl der Internet-Hosts schnell ansteigen. Kommerzielle Versionen von Sun (SunOS), DEC (Ultrix) und NeXT (NeXTStep) folgen.
Als 1979 nach der Freigabe von Unix V7 das Consent Decree fällt, will AT&T Unix kommerziell nutzen. Erstes Opfer wird der Professor John Lions, dem AT&T die weitere Verbreitung seiner 1976 veröffentlichten Kommentare zum V6-Quellcode, genannt Lions Book, untersagt. Das veranlasst Andrew Tanenbaum, Minix als Material für seine Vorlesungen zu entwickeln.
Der Weg ist das Ziel
Als eine der ersten Firmen lizenziert Microsoft 1979 den Code von UNIX V7. Seine Portierungen auf Intels 8086 erscheinen 1980 unter dem Namen Xenix OS. Obwohl Microsoft bereits 1987 Xenix an SCO verkauft, die es als SCO Xenix, SCO UNIX System V/368, Open Desktop und Open Server weiterführen, hat diese kurze Liaison weitreichende Folgen: Die Unix-Erfahrungen bilden – nach dem OS/2-Experiment mit IBM – die Grundlage für Windows NT.
AT&T seinerseits nimmt sein CB Unix als Grundlage für die kommerziellen Unixe System III, IV und V. Ihnen entstammen Derivate wie CXOS/Unicos (Cray), HP-UX (HP), PC/IX und 386/ix (ISC), IRIS/IRIX (SGI), AIX (IBM) und NonStop-UX (Tandem). Auch Sun (Solaris) und DEC (OSF/1 AXP, Digital UNIX, Tru64) schwenken um. Zwar entwickelt AT&T die freien UNIXe V8, V9 und V10 weiter, doch ohne sich um die Verbreitung zu bemühen. Die Nachfolge tritt 1987 Plan 9 an.
Obwohl AT&T 4.3BSD-Code mit dem von SunOS und Xenix 1989 in sein SVR4 (System V Release 4) integriert, um dem Auseinanderdriften der Zweige entgegenzuwirken, verlangt es noch hohe Lizenzgebühren von BSD-Nutzern. 1991, mit der Networking Release/2, ist BSD deswegen komplett "entunixt". Auch an der Ostküste sorgt die Behinderung des freien Austausches für Unmut. Der im MIT-AI-Labor arbeitende Richard Stallman reagiert darauf mit dem GNU Manifesto (GNU's Not Unix), der Gründung der FSF (Free Software Foundation) und der Entwicklung der GPL (GNU General Public License). Unter die stellt Linus Torvalds seinen durch Minix inspirierten Kernel Linux.
Im Jahr 2000 bekommt Unix seinen bisher letzten großen Nachwuchs. Mit Darwin als Unterbau und Mach als Kernel schließt sich Mac OS X samt Apple TV und iPhone OS der Familie an.
Nicht nur das Betriebssystem, auch seine deutschen Benutzer feiern Geburtstag. Auf 25 Jahre als offene Plattform kann die German Unix User Group (GUUG) zurückblicken. Ihr Hauptanliegen: offene Schnittstellen und Standards, ebenso wie die Chance "to have a look deep into the system". Doch an dem Ringen um Open und Closed Systeme sind nicht nur Entwickler, User, Institute und Firmen beteiligt, sondern auch Gerichte. So wie das Consent Decree von 1956 und dessen Rücknahme nach 25 Jahren die erste Verbreitung und spätere Kommerzialisierung mitbestimmten, fand das kraftraubendste Tauziehen in dem seit 2003 geführten Prozess SCO versus IBM statt. Und es wird sicherlich an anderen Schauplätzen weitergeführt.