Die Vorgeschichte von Linux
Dieser Artikel gibt einen umfassenden Überblick über die Rahmenereignisse, die zur Entstehung von Linux beigetragen haben.
Die Anfänge
Hier ist der Überblick über die einzelnen Passagen:
Der eigentliche Beginn ist schwer zu definieren. Der Anfang könnte natürlich auch beim Abakus gesehen werden, der bereits gut 2400 Jahre vor Christus in Babylon erfunden wurde. Die erste urkundlich erwähnte Rechenmaschine wird Wilhem Schickard zugeschrieben. Diese wurde im Jahr 1623 in einem Brief an Johannes Keppler beschrieben.
- 1642
- Blaise Pascal erfindet den tragbaren Additor Pascaline. Sein Vater war Steuereintreiber.
- 1673
- Leibniz erfindet eine Rechenmaschine, die mit Hilfe von Zahnrädern multiplizieren kann.
- 1727
- Antonius Braun konstruiert eine Sprossenradrechenmaschine für den Wiener Hof
- 1770
- Pfarrer und Erfinder Philipp Matthäus Hahn konstruiert eine Rechenmaschine in Dosenform mit konzentrisch angeordneten Zahnrädern, Staffelwalzen und einer zentralen Antriebskurbel.
- 1884
- Hollerith erfindet eine mechanische Rechenmaschine, die Lochkarten verwendet. Diese kam bei der Volkszählung 1890 zum Einsatz. Die Hardware kostete nur 750.000 Dollar, allerdings wurden die Lochkarten separat verkauft. (1880 hatte die Volkszählung zirka 5 Millionen Dollar gekostet.)
- 1900
- Charles Flint gründet die International Time Recording Company, die Uhren herstellte. Daraus wurde im Jahr
- 1901
- die Computing Scale Company of America. Sie stellte Waagen her, die gleich die Gebühren anzeigten.
- 1910
- Flint und Hollerith gründen Computing Tabulating Recording (CTR).
- 1912
- Thomas Watson (ehemals NCR) wird General Manager von CTR.
- 1919
- CTR konstruiert den ersten Listendrucker, der über Hollerith-Karten erstellte Informationen ausgeben kann. In diesem Jahr wird auch der elektrische Flip-Flop-Schalter erfunden.
- 1924
- CTR wird in International Business Machines Company (IBM) umbenannt.
- 1936
- Alan Turing veröffentlicht On Computable Numbers, with an Application to the Entscheidungsproblem, die daraus resultierende (theoretische) Turingmaschine ist in der Lage, jede durch einen Algorithmus lösbare Aufgabe zu lösen.
- 1937
- Konrad Zuse baut die mechanische Rechenmaschine Z1.
- 1941-1945
- Das Department of Defense der USA sponsert Computer-Projekte.
- 1945
- John von Neumann beschreibt in A First Draft of a Report on the EDVAC[1] eine Architektur für Computer, die im wesentlichen schon früher von Konrad Zuse verwendet wurde.
- 1952
- Ken Olson & Co sowie IBM arbeiten an SAGE (Semi-Automatic Ground Environment), einem Computer für die Luftverteidigung.
- 1953
- Aufgrund der starken Bindung zu IBM muss Olson gehen. Olson will IBM mit den eigenen Waffen schlagen und gründet die Digital Equipment Corporation (DEC).
- 1959
- DEC präsentierte den ersten Prototyp: PDP-1 (Programmed Data Processor).
PDP
DEC präsentierte den ersten Prototyp PDP-1 (Programmed Data Processor) 1959. Die Eckdaten: 18 Bit, maximal 32 kB Speicher, Speicherzugriff 5 μs, 100.000 Rechenschritte pro Sekunde, 3500 Transistoren und 4300 Dioden. Es gab einen Editor, Macroassembler, ALGOL Compiler, einen Papierstreifenleser und eine IBM-Schreibmaschine für die Ausgabe. Davon wurden 53 Stück verkauft, der erste ging an Bolt, Beranek und Newman (BBN) (siehe Arpanet und TCP/IP).
Die Modelle PDP-2 (24 Bit) und PDP-3 (36 Bit) wurden nie gebaut, PDP-4 hatte 18 Bit und floppte am Markt. Dabei war das Preis/Leistung-Verhältnis eigentlich sehr gut. Sie hatte einen Assembler, Editor, Fortran und viele andere nützliche Programme installiert.
Die PDP-5 war ein 12-Bit-Frontend für die PDP-4. Das wird dann wohl als Recycling bezeichnet. PDP-6 war eine 36-Bit-Maschine und floppte ebenfalls - nur 32 Stück wurden verkauft. Die Modelle PDP-7, PDP-9 und PDP-15 waren 18-Bit-Nachfolger der PDP-4. Die PDP-8 war wieder ein 12-Bit-System und der Ursprung der Minicomputer-Revolution im Jahre 1965. Sie kostete schlappe 18.000 Dollar. Davon wurden dann zirka 50.000 Systeme verkauft. Die PDP-10 war wieder ein 36-Bit-Nachfolger der PDP-6, recht unspektakulär.
Die PDP-11 war schließlich das System, mit dem DEC zum Marktführer für Minicomputer wurde: Sie erschien 1970, hatte 16 Bit und verkaufte sich 250.000 Mal. Das war ein Computer, wie ihn sich Universitäten leisten konnten. Die PDP-11 legte die Basis für den Erfolg von Unix - und dabei ist bis hier hinsichtlich Unix noch nicht viel passiert.
CTSS
Bis Anfang der 60er Jahre liefen Programme im Batch-Modus: Die abzuarbeitenden Programme wurden meist auf Lochkarten gestanzt, im Rechenzentrum legte eine Operator genannte Person diese zur Bearbeitung im Computer ein. Die Programme liefen der Reihe nach für eine vorgegebene Zeit. Wurde diese Zeit überschritten, so wurde das Programm einfach beendet - unabhängig davon, ob es zu einem Ergebnis gekommen war oder nicht. Um auf Nummer sicher zu gehen, dass auch ein Ergebnis erzielt wurde, wurde meist mehr Rechenzeit beantragt, als notwendig war.
Die Folge war dann häufig, dass diese Programme nur in der Nacht laufen konnten, tagsüber liefen die kürzeren. Wenn nun ein Programmfehler auftrat, konnte darauf erst am nächsten Tag reagiert werden, es wurden dann neue Lochkarten gestanzt und diese zur Abarbeitung in der Nacht dem Operator im Rechenzentrum übergeben. Dies war aber auch die Zeit der Hacker[2], diese nutzten die freigewordenen Zeiten der Maschinen in der Nacht, um eigene Berechnungen anstellen zu können.
Das war natürlich eine langwierige und oft frustrierende Angelegenheit. Mit der Verbesserung der Hardware kam dann die Idee auf, ein Betriebssystem zu erstellen, das Jobs parallel abarbeiten kann: Time-Sharing oder neudeutsch Multitasking. Sogar interaktives Arbeiten sollte damit möglich sein[3]: CTSS - Compatible Time-Sharing System. CTSS wurde auf einer IBM 7090, später 7094, am MIT (Massachusetts Institute of Technology) entwickelt. Es konnten mehrere Programme parallel laufen, diese konnten zum Teil auf Band ausgelagert werden. Es gab zwei Prozessor-Modi: Einen Supervisor-Modus (heute Kernel-Modus) und einen Userprogamm-Modus. Zwischen diesen beiden konnte automatisch gewechselt werden. Ein direkter Versuch, auf die Hardware zuzugreifen, führte zu einem illegal instruction Fehler und der Supervisor-Modus wurde aktiviert. Dieser konnte dann den gewünschten Systemzugriff realisieren.