Die Vorgeschichte von Linux
Rahmenereignisse, die zur Entstehung von Linux beigetragen haben
Alles musste in Assembler programmiert werden, was ein wenig umständlich war. Ein gutes System musste laut Ken einen Fortran-Compiler haben (PL/1 war für sie nicht erhältlich). Also fingen sie an, einen zu schreiben. Allerdings entschieden sie sich dann anders und nach einem Tag hatten sie B. Dies war eine abgespeckte Version von BCPL (Basic Combined Programming Language). Es war kein wirklicher Compiler, sondern er übersetzte die Sprache in Bytecode (ähnlich wie Java es heutzutage macht). Dieser Compiler stieß aber immer an die Grenzen des Speichers. Daher musste ein neuer, besserer Computer her.
1970 entstand dann in Anspielung auf Multics der Name Unics (UNiplexed Information and Computing Service). Im Laufe der Zeit wurde dann aus Unics das heute bekannte Unix - was sprachlich ziemlich gleich klingt. Geld für einen besseren Computer, damit Unix weiterentwickelt werden konnte, gab es allerdings bei BTL nicht. Wohl aber gab es Geld für den Kauf einer PDP-11 mit dem Ziel, ein Textsatzsystem zu erstellen. Den Rest kann man sich nun denken.
Am Anfang arbeiteten vier Leute an Unix: Ken Thompson, Dennis Ritchie, Malcom Douglas McIlroy und Joseph F. Ossanna. Das Paradoxe dabei ist, dass die Unix-Entwicklung nur wegen eines Textsatzsystems (indirekt) finanziert wurde. Der Erfolg der ersten Unix-Computer basierte aber genau auf dieser Anwendung. Und dabei war das lediglich eine Portierung von RUNOFF alias roff.
Die nächsten Jahre standen dann im Zeichen der Weiterentwicklung des Betriebssystems. Dennis Ritchie schuf die Programmiersprache C. Nach anfänglichen Problemen - es gab noch keine Datentyp-Strukturen - wurde dann der Unix-Kernel komplett in C neu geschrieben. Das war ein riesiger Schritt in Richtung Portierbarkeit: Sobald der C-Compiler in der Lage war, den richtigen Code zu erstellen, konnte das meiste einfach wiederverwendet werden[6].
Die Verbreitung von Unix
Wesentliche Entwicklungen waren das Neuschreiben des Kernels in C. Dies machte die Portierbarkeit deutlich leichter. Aber auch die von McIlroy vorgeschlagenen Pipes wurden implementiert. Das war eine der größten Leistungen, obwohl es nur eine kleine Änderung war. Aber zu diesem Zeitpunkt gab es nur die Ausgabeumleitung in eine Datei. Der umgekehrte Weg, anstelle der Standard-Eingabe aus einer Datei zu lesen oder die Ausgabe eines anderen Programms dafür zu verwenden, war noch nicht möglich. Pipes machten aber gerade dies, sie nahmen die Ausgabe des ersten Programms und verwendeten sie als Eingabe für das nächste Programm.
Das führte dann recht früh zu der Unix-Philosophie:
- Schreibe Programme, die genau eine Sache machen, diese aber gut.
- Schreibe Programme, die zusammenarbeiten.
- Schreibe Programme, die Textströme bearbeiten, denn das ist eine universelle Schnittstelle.
Auf diese Weise konnten nun viele kleine Programme einfach wie in einem Baukasten miteinander verbunden werden. In der Folge konzentrierten sich die Entwickler darauf, kleine Programme zu schreiben, die nur für einen Zweck gedacht und optimiert waren. Diese ließen sich dann leicht kombinieren.
Es gab aber noch ein großes Problem bei AT&T. In einem Antitrust-Urteil von 1956 wurde AT&T auferlegt, sich von jedem Geschäftsfeld außer Kommunikationsdiensten fern zu halten. Es gab nur wenige Ausnahmen hierzu, etwa Experimente zum Zweck des Tests oder der Entwicklung neuer Kommunikationsdienste.
Klar ist, dass 1956 weder Computer noch Software erwähnt wurden. Das machte die Unix-Entwicklung außerhalb von AT&T, beziehungsweise BTL, schwierig. Eine weitere Auflage war, dass AT&T möglichen Konkurrenten Zugang zu Patenten gewähren musste.
Jetzt wird es spannend: Die Zusammenarbeit mit GE und MIT, um Multics zu schaffen, fiel in die Kategorie Forschung. Die Entwicklung und Verwendung von Unix innerhalb von AT&T stellte auch kein Problem dar. Aber ein Symposium, bei dem Ken Thompson Unix vorgestellt hatte (ACM Symposium on Operating Systems Principles, 15. bis 17. Oktober 1973), und die spätere Publikation des Textes führte zu einem Ansturm von Anfragen nach diesem System. Diese Anfragen kamen aber von Organisationen und Firmen, die nichts mit AT&T, BTL oder Western Electric zu tun hatten. Western Electric war wie AT&T in dem Antitrust-Verfahren wegen der marktbeherrschenden Stellung verurteilt worden. AT&T und Western Electric gehörten jeweils 50 Prozent von BTL.
Die Auflage, Lizenzen von Patenten zu veräußern, führte dazu, dass laut Einschätzung der Juristen bei AT&T auch Unix-Lizenzen verkauft werden mussten. Das hieß, AT&T verkaufte Unix-Lizenzen und verteilte Unix hauptsächlich an Universitäten da sie früher schon mit Universitäten viel zusammen gearbeitet hatten. Das Antitrust-Urteil bewirkte aber, dass sie selber auf diesem Gebiet nicht aktiv werden durften.
Andrew Tanenbaum, der Entwickler von Minix, fasste das Verhalten von BTL einmal so zusammen:
- no advertising
- no support
- no bug fixes
- payment in advance
Die Folge war, dass Unix weiter verbreitet und verwendet wurde. Im Laufe der Zeit entwickelten einige Lizenznehmer eigene Erweiterungen und Verbesserungen oder portierten Unix auf Hardware, die es bei BTL nicht gab. Damit entstanden dann eigenständige Unix-Versionen von anderen Anbietern. Aber allen war eines gemein: Um die anderen Varianten verwenden zu können, musste dennoch bei AT&T eine Lizenz gekauft werden. Die erste Nicht-AT&T-Variante war BSD von der Computer Science Research Group (CSRG) der Universität von Berkeley.
BSD
Eine der ersten Unix-Installationen außerhalb von BTL war in Berkeley (University of California at Berkeley, UCB). Hier gab es aber ein Problem: Die Mathematiker und Statistiker wollten lieber das Time-Sharing-System von DEC (RSTS, Resource Sharing Time-Sharing System) auf der Maschine laufen lassen. Die Informatiker hingegen bevorzugten Unix. Der Kompromiss bestand darin, dass acht Stunden Unix lief und danach 16 Stunden RSTS. Um das Chaos zu steigern, wurden die Uhrzeiten rotiert: Mal lief Unix von 8 bis 16 Uhr, am nächsten Tag dann von 16 Uhr bis Mitternacht und am dritten Tag von Mitternacht bis 8 Uhr. Trotz dieser seltsamen Zeiten zogen es die Informatikstudenten vor, ihre Projekte unter Unix laufen zu lassen.

