Verschiedene Derivate müssen unter einen Hut gebracht werden:

Hohe Portierbarkeit erfordert gemeinsame Basis

07.11.1986

Das Angebot an Betriebssystemen und Programmiersprachen hat in den letzten Jahren eine verwirrende Vielfalt erreicht. Mit Unix ist den Herstellern eine Möglichkeit gegeben, einen Standard zu schaffen, der ein weitgehend maschinenunabhängiges Arbeiten ermöglicht. Diese Standardisierungsbestrebungen setzen jedoch voraus, -daß die verschiedenen Versionen, Derivate und Look-alikes wieder vereint werden, um so eine möglichst hohe Portierbarkeit zu erreichen.

Mit der Entwicklung der ersten Dialogsysteme begann man auch über Betriebssysteme nachzudenken, die relativ einfach zu bedienen sind und trotzdem eine hohe Effizienz besitzen. Jeder Hardwarehersteller ging natürlich eigene Wege, was dazu führte, daß Software für gleiche Probleme auf jedem Rechner ständig neu entwickelt werden mußte und somit erhebliche Kosten verursachte. Der Kunde war für Jahre an einen Hersteller gebunden, weil er nur Peripherie dieses Anbieters benutzen konnte.

Vereinheitlichung zieht sich über Jahre hin

Parallel dazu entstand auch eine Vielzahl von Programmiersprachen. Standardisierungskommissionen bemühten sich, diese zu vereinheitlichen, was sich über Jahre hinzog. Kam eine neue Norm auf den Markt, War sie bereits veraltet. Oder die Compilerhersteller nahmen diese Standards auf, erweiterten sie aber gleichzeitig um eigene Features.

Mit einem einheitlichen Betriebssystem wären auch die Sprachprobleme gelöst. Ein wesentlicher Schritt in diese Richtung vollzog sich 1969 in den Bell-Laboratorien, als Ken Thompson die Grundlage für ein übertragbares Betriebssystem schuf. Die erste Version von Unix (Unified = einheitlich) entstand. Der Programmcode war zunächst in der Assembler-Sprache der PDP/7 - eines Minis von DEC - geschrieben und somit immer noch maschinenabhängig. Deshalb entwickelte Thompson 1970 die Programmiersprache "B". Unter Berücksichtigung einiger BCPL-Elemente entstand daraus die heutige Programmiersprache "C' von Brian Kernighan und Dennis Ritchie.

Thompson und Ritchie schrieben den größten Teil dieser Urversion von Unix in die Sprache C um und beließen nur noch den maschinen-spezifischen Teil in Assembler. Somit war 1973 das erste portierbare Betriebssystem entstanden. Es dauerte aber immerhin noch bis 1976, ehe Bell Laboratories das Betriebssystem als Unix/6 kommerziell zur Verfügung stellte.

Durch neue Technologien wurde die Entwicklung von Mikroprozessorchips ermöglicht. Zunächst kam Intel im Jahre 1972 mit dem ersten kommerziellen 8-Bit-Mikroprozessor Intel 8008 auf den Markt, 1973 folgte der Intel 8080 und 1976 der Intel 8085. Ebenfalls 1976 stellte Zilog einen erweiterten 8080, den Z80 vor.

Ein anderes Prozessorenkonzept verfolgte Motorola mit dem MC6800 und MOS Technology (heute Commodore) mit seinem 6502-Chip. Im Jahre 1978 konstruierte Chuck Paddle bei Commodore mit dem "Pet" den ersten PC. Mit der Erfindung der Mikrocomputer wurde ein neuer Prozeß eingeleitet. Der Computer wurde billiger und somit einem wesentlich breiteren Markt zugänglich.

Man dachte zunächst nicht an eine Portierung von Unix auf solche Rechner, da die Kapazität dieser Maschinen für zirka 130 KB Systembedarf nicht ausreichte. Zunächst wurden Mikrocomputer als Basic-Maschinen vertrieben, das zugehörige Basic 80 stammte von Microsoft und war in einem ROM hinterlegt.

Erst das von Digital Research entwickelte, ladbare Betriebssystem CP/M 80 (Control Program for Microcomputers) setzte sich auf dem 8-Bit-Mikrocomputermarkt durch. Ähnlichkeiten mit der Kommandosprache der PDP/ 11 -Serie von Digital Equipment lassen sich jedoch nicht verleugnen. So sind eine ganze Reihe von CP/M-Befehlen auch in Unix enthalten.

Mit diesem zum Standard gewordenen Betriebssystem für 8-Bit-Rechner wurde es auch möglich, andere Programmiersprachen zu implementieren. So standen in Kürze weitere Programmiersprachen wie Basic, Cobol, Fortran, Pascal und C zur Verfügung. Applikationen, die bisher nur auf Großrechnern verfügbar waren, wurden für Mikros umgeschrieben oder lediglich für die neue Umgebung angepaßt. Anwendungen, die bislang nur Minis und Mainframes vorbehalten waren, konnten jetzt auch von Mikros bedient werden.

Deshalb entschloß sich auch IBM, mit seinem ersten 16/8-Bit-Mikrocomputer (Intel 8088) in diesen Markt einzudringen. Dabei setzte IBM das Betriebssystem MS-DOS (Microsoft Disk Operating System) von Microsoft ein, so daß CP/M mehr und mehr an Bedeutung verlor, obwohl Digital Research sein Betriebssystem für diesen Prozessortyp (CP/ M 86) anpaßte und zu einem höheren Preis anbot.

Da sich CP/M und MS-DOS hauptsächlich im File-System unterscheiden, war abzusehen, daß die Programmiersprachen und Programme sehr bald portiert würden. Microsoft erwarb von Bell Labs die Rechte an Unix/7 und begann damit die Entwicklung von Xenix. MS-DOS, nach Herstellerangaben aufwärtskompatibel zu Xenix, wurde ständig um Unix-Features erweitert. Digital Research erweiterte CP/M zu MP/M, um damit Mehrplatzfähigkeit zu erreichen.

Um wieder mit MS-DOS in Konkurrenz treten zu können, wurde CCP/ M entwickelt. Dieses System kann MS-DOS-Programme und -Befehle verarbeiten. Mit seiner Multiuser-/ Multitaskingfähigkeit versuchte Digital Research, seine verlorenen Marktanteile zurückzugewinnen. Heute ist Concurrent CP/M auch als Concurrent DOS bekannt.

Parallel zur INTEL-Entwicklung wurde von Motorola im Jahre 1977 ein neuer Prozessor entwickelt, der MC68000. Dieser übernahm die Eigenschaften seines Vorgängers MC6800, berücksichtigte aber auch die Vorteile der Intel-Prozessoren sowie die des LSI-11 von DEC. Für eine Unix-Implementierung bot sich seine wesentlich höhere Adressierfähigkeit geradezu an.

Die erste Unix-Implementierung auf einem PC erfolgte 1979 auf einem Onyx-Computer mit einem Intel 8088.

Viele Universitäten erhielten von Bell Laboratories den Unix-Source-Code zum Selbstkostenpreis, um Tests und Weiterentwicklungen eigenständig betreiben zu können. Diese Politik wirkte sich natürlich auf Bekanntheitsgrad, Verbesserung und Erweiterung der Urversion von Unix aus. Es entstand ein regelrechter Unix-Kult. Damit die Entwicklung nicht auseinanderlief, wurden neue Ideen von Bell Laboratories streng überprüft, bevor sie in Unix einflossen. So kam es über System 7 und System III zum heutigen System V.

Es kamen aber auch Parallelentwicklungen auf. Die bekannteste ist wohl die von Unix/7 abstammende Version der Universität Berkeley, die schlicht als BSD (Berkeley Systems Distribution) beziehungsweise BSD-Unix bekannt ist.

Andere griffen die Idee von Unix auf und entwickelten eigene Betriebssysteme beziehungsweise ließen seine Vorteile in ihre bereits bestehenden Systeme einfließen: Die Mark Williams Company entwickelte "Coherent", ein Unix-Look-alike, das kompatibel zu Unix III beziehungsweise V ist. Netware von Novell übernahm die Idee des File-Systems und erweiterte sie um Netzwerkparameter. Aufbauend auf Microsofts Xenix, welches bereits File-/ Recordlocking unterstützte, wurde Sinix entwickelt.

BSD 4.2 mit virtueller Adressierung (demand paging) eignet sich besonders für CAD-Anwendungen. MS-DOS 3.x unterstützt Subdirectories, Pipes und Netzwerkfunktionen. Es wurden Unix-Versionen entwickelt, die Echtzeitverarbeitung unterstützen. Auch Grafik und Netzwerkversionen kamen auf den Markt.

In das Relase 3 von Unix V wurden auf dem Gebiet der Netzwerkfähigkeit neue Funktionen aufgenommen: So wird mit RFS (Remote-File-Sharing) und Streams (Netzwerk-Protokoll-Rahmen) System V weitgehend unabhängig von Netzwerk- und Transportprotokollen. Jedoch mit der Einführung der Shared Libraries verließ AT&T den konsequenten Weg der Portierbarkeit, obwohl dadurch eine effektivere Speichernutzung ermöglicht wird.

Im Grafikbereich bestehen Ansätze, den GKS-Standard und den Unix-Kern aufzunehmen. Durch verteilte Intelligenz (Aufteilen des Unix-Kerns auf spezialisierte Prozessoren, Plexuskonzept) erreicht man höhere Geschwindigkeiten und verläßt dabei den Standard nicht. Auch die Auslagerung von Teilen des Betriebssystems auf intelligente Workstations bewirkt eine Entlastung des eigentlichen Jobprozessors (Vektorgrafik).

Bleibt zu hoffen, daß man alle diese guten Ideen endlich zusammenfaßt, die Nachteile ausmerzt, und endlich einen Standard schafft, der allen Anforderungen genügt - auch wenn dadurch die Aufwärtskompatibilität etwas leidet.

* Paul Weingärtner ist softwaremanager bei der Plexus Computer GmbH, Hahnstätten. Der Beitrag ist eine gekürzte Fassung des Vortrages, der auf der Jahrestagung `86 der German Unix User Group (GUUG) gehalten wurde.