Next: Das Betriebssystem
Up: Grundlagen
Previous: Grundlagen
In grauer Vorzeit wurden Elektronenrechner mit Lochkarten gefüttert. Die Programme und die Daten wurden in die Karten gestanzt und als Pakete in den Kartenleser geschoben, die Ergebnisse auf dem Drucker ausgegeben. Klar, daß solche Rechner nur ein einziges Programm für einen einzigen Anwender bearbeiten konnten. Das Betriebssystem, wenn man es überhaupt so nennen kann, bestand aus den fest verdrahteten Funktionen des Rechenwerkes.
Auch als die Daten und Programme von Magnetspeichern gelesen und die Ergebnisse auf Bildschirmen statt auf Druckern ausgegeben wurden, blieb es bei der Batchverarbeitung durch den Großrechner. Zwar konnten bereits mehrere Jobs in einem Stapel (Batch) geladen werden, es blieb aber bei der sequentiellen Bearbeitung der Jobs.
Durch die wachsende Rechenleistung und vor allem durch die bessere Ausstattung mit Arbeitsspeicher können seit der dritten Rechnergeneration mehrere Jobs gleichzeitig in den Arbeitsspeicher geladen werden. Auf diese Weise kann die wertvolle Rechenzeit (CPU-Zeit) auch dann ausgenutzt werden, wenn ein Job beispielsweise auf neue Daten vom Magnetband warten muß (indem das Betriebssystem einen anderen Job im Speicher laufen läßt, bis die Daten vom Magnetband geladen sind).
Die Bearbeitung kompletter Jobs wurde in den sechziger Jahren durch das quasiparallele Bearbeiten mehrerer Programme im Timesharing-Verfahren abgelöst. Dabei werden mehrere Programme geladen und allen Programmen wird nach einem festgelegten Verfahren Rechenzeit in Zeitscheiben zugeteilt. Mit dieser auch als Multitasking bezeichneten Methode können interaktive Programme zur Datenerfassung gleichzeitig mit den rechenzeitintensiven Programmen zur Datenauswertung laufen. Durch diese Mischung wurde eine weitaus bessere Auslastung der teuren Hardware möglich.
Für die interaktive Arbeit am Großrechner werden Bildschirm-/Tastatur-Kombinationen, sogenannte Terminals, angeschlossen. Ein Großrechner, der gleichzeitig mehrere solcher Terminals bedienen kann, wird als Multiusersystem bezeichnet. Die Terminals verarbeiten die Daten nicht selber, sondern sie schicken die auf der Tastatur eingegebenen Zeichen unverändert an den Zentralrechner und stellen die von diesem Rechner gesendeten Zeichen auf dem Bildschirm dar. Die Terminals sind also ``dumme'' Arbeitsstationen. Moderne Terminals, zum Beispiel das vt100 Terminal von DEC, erkennen allerdings neben den normalen Buchstaben zusätzlich verschiedene Sonderzeichen zum Löschen eines Buchstabens oder des gesamten Bildschirms, zum Positionieren der Einfügemarke, für invertierte Darstellung und so weiter.
Das erste Unics wurde 1969 von Ken Thompson und Dennis Ritchie bei den Bell Laboratories (AT&T und Western Electric) geschrieben (um auf einer wenig benutzten DEC PDP-7 in einer Ecke Space Travel zu spielen ...). Bis 1971 war es als Version 1 auf eine PDP-11 portiert; Version 4 wurde 1973 von dem ursprünglich in Assembler geschriebenen Quelltext fast vollständig in die eigens dafür entwickelte Hochsprache C umgeschrieben.
Weil AT&T durch Verträge mit der US-Bundesregierung (per Gerichtsbeschluß?) daran gehindert war, Unix zu vermarkten, gab sie für Lehr- und Forschungszwecke Sourcelizenzen zu sehr günstigen Konditionen (ein paar hundert Dollar) an Universitäten weiter. Dieser möglicherweise gut gemeinte, jedenfalls außerordentlich geschickte Schritt führte zu einer sehr dynamischen Entwicklung von Unix. Es verbreitete sich schnell, und aus den Universitäten flossen viele Ideen in die Entwicklung des Systems ein.
Seit Version 6 (1975) hat AT&T aber auch kommerzielle Lizenzen für Unix verkauft. Spätestens seit dem Jahr 1984, als ein weiteres Gerichtsurteil AT&T die Vermarktung von Software erlaubte, wurde Unix als System V unter rein kommerziellen Gesichtspunkten verbreitet.
Gerade wegen seiner Verbreitung an den Universitäten hat es sich im kommerziellen Sektor schnell durchgesetzt. Da fast komplett in C geschrieben, ist es auf praktisch alle Großrechnerarchitekturen portiert. Für Softwareanbieter ist Unix ein (zur Hardwareseite) offenes System. Aus eifersüchtiger Sorge um die Quelltexte hat AT&T die tiefgreifendere Öffnung auf Systemebene abgeblockt.
Im Jahr 1987 hat Andrew Tanenbaum, Professor an der Freien Universität von Amsterdam, ein Lehrbetriebssystem für PC veröffentlicht, das ohne jeden AT&T Code die Funktionalität von Unix Version 7 hat und als Quelltext für wenig Geld zu kaufen ist.
Minix ist keine echte Basis für Anwenderprogramme; aber es ist ein sehr lehrreiches Spielzeug. Ein Lebensnerv von Minix ist das USENET, wo in der Gruppe comp.os.minix alle Neuigkeiten, Fragen und Antworten zu Minix ausgetauscht werden. Hier werden auch Veränderungen am Betriebssystem (dem Kernel) veröffentlicht und gelegentlich ganze Programme verschickt. Hier tummelt sich eine weltweit aktive Minix-Gemeinde und entwickelt das Betriebssystem und die Anwendungen drumherum.
Minix wurde auf den Atari ST, den Amiga und den Apple Macintosh portiert; und es wurde an die erweiterten Möglichkeiten des Intel-386-Prozessors angepaßt. Auf diese Weise konnte die lästige Beschränkung auf 64 Kilobytes Speicher je Prozeß überwunden werden.
Es sollten und sollen aber andere Beschränkungen für Minix bestehen bleiben, auf denen Andrew Tanenbaum als Autor besteht. So ist Minix preiswert, aber nicht frei kopierbar. Und es werden keine grundlegenden Veränderungen am Kernel zugunsten von Anwendungen vorgenommen, was zum Beispiel die Portierung der unter Unix weit verbreiteten grafischen Benutzeroberfläche, des X Window Systems, ausschließt.
Diese Einschränkungen sind im Sinne eines Lehrbetriebssystems sinnvoll, das Bedürfnis nach einem vollwertigen und freien Betriebssystem für die modernen 386-PC's bleibt aber unerfüllt.
Im März 1991 fing Linus Benedict Torvalds in Helsinki damit an, die Möglichkeiten des Intel-386-Prozessors in seinem neuen PC zu studieren. Er hatte das 386er Minix installiert - und damit das C-Entwicklungssystem der Free Software Foundation.
Nur ein halbes Jahr später war aus den Assemblerstudien ein kleines, lauffähiges Betriebssystem entstanden. Als Linus im September 1991 die erste Version (0.01) von Linux an interessierte Minixer verschickte, mußte es noch unter Minix übersetzt und installiert werden. Diese Verbindung von Minix und Linux hat sich aber nicht im Quelltext niedergeschlagen.
Linus Torvalds hat seine eigene Entwicklung von Anfang an frei angeboten. Jeder kann die Quelltexte bekommen und daran mitarbeiten.
Die im Januar 1992 herausgegebene Version 0.12 war bereits ein stabil laufender Kernel. Es gab den GNU C-Compiler, die bash, uemacs und viele der GNU Utilities. Dieses Betriebssystem wurde in comp.os.minix angekündigt und per anonymous FTP weltweit verteilt.
Die Zahl der Programmierer, Tester und Unterstützer wuchs in diesen Tagen so schnell, daß die Kommunikation per eMail nicht mehr ausreichte und nach dem Beispiel von comp.os.minix die Rubrik alt.os.linux im USENET eingerichtet wurde. Dieses Medium und der anonyme FTP Service im Internet ermöglichten eine Programmentwicklung, wie sie in den Vorstandsetagen der mächtigen Softwareschmieden erträumt wird. Innerhalb weniger Monate wurde aus dem weitgehend in Assembler geschriebenen Minikernel ein ausgewachsenes Betriebssystem mit vollständiger Unix Funktionalität.
Die weitgehende POSIX-Konformität von Linux und die umfangreichen C-Bibliotheken des GNU-C-Compilers erleichtern die Portierung von Unix- oder BSD-Software auf ein Maß, das diesen Namen eigentlich nicht verdient. Praktisch das gesamte Angebot an freier Software läuft auch unter Linux. Dank der enormen Leistungen, die bereits seit vielen Jahren von der Free Software Foundation, dem X Consortium, den Universitäten und ungezählten Organisationen und Einzelpersonen in diesem Bereich erbracht wurden, haben die Linux-Distributionen heute einen Umfang erreicht, der die Angebote kommerzieller Unixe leicht in den Schatten stellt.Das Linux Anwenderhandbuch