Betriebssysteme für Personal Computer im Vergleich:

Unix kann gegenüber OS/2 im PC-Markt viele Punkte sammeln

14.04.1989

Als Anfang der 80er Jahre der erste PC das Licht der Welt erblickte, bekam er ein neues Betriebssystem, nämlich Microsofts MS-DOS, mit auf den Weg. Dieses, das auch als PC-DOS bekannt - im folgenden kurz DOS genannt - hat in der Folgezeit einen bisher einmaligen Boom erfahren. Der PC und das DOS-System schienen ein unzertrennliches Paar zu sein. Doch die heile Welt begann zu bröckeln. Richard von Lavante* erläutert, welche Vorteile Unix gegenüber anderen Betriebssystemen auf dem PC bietet.

Das Auseinanderbrechen begann, als die ersten ATs erschienen und verstärkte sich, als die 386-Systeme folgten. Die Ursache lag im System. Die erste DOS-Version war zu geschnitten auf die Architektur des 8088-Prozessors, und hielt sich keine Tür für ein späteres Wachstum bei den Prozessor-Nachfolgern offen . Ein bis zwei FD-Laufwerke und 128k RAM schienen auszureichen. Trotz laufender Weiterentwicklung hat es DOS nicht geschafft, seine Leistung der Leistungssteigerung bei den neuen Prozessoren anzupassen.

Die Diskrepanz zwischen der Leistungsfähigkeit des Betriebssystems einerseits und der verfügbaren Hardware andererseits vergrößerte sich auch durch neue Systemkomponenten ständig. Es war schmerzlich mit anzusehen, wie ein 3 bis 4 MIPS leistender 32-Bit-Prozessor im 8086-Real-Mode betrieben wurde.

Systemerneuerung ließ auf sich warten

Diese Diskrepanz hat wohl auch der Hauptanbieter bemerkt und nahm einen Nachfolger in Angriff, aber zu spät und zu langsam. In der Zwischenzeit haben andere Software-Hersteller versucht, aus dem System mehr als unter reinem DOS herauszuholen. Die Resultate waren jedoch allesamt unbefriedigend, da sie sich eigentlich immer am DOS orientiert haben.

Im Prinzip kann man sie in vier Kategorien einordnen:

- DOS-Unterstützung/Erweiterung (zum Beispiel SW-Lösungen für EMS, Disk-Cache, BIOS-Umladen etc.).

- Mehrfache DOS-Umgebung (zum Beispiel VM386, Desqview, Windows/386, C-DOS), dies brachte nur eine DOS-Vervielfachung und Parallelisierung, aber keine echte Systemerneuerung.

- Neue Betriebssysteme (zum Beispiel PC-MOS).

- Neue 386-Compiler, die virtuelle Architektur von 80386 am DOS vorbei ausnutzen. Sie sind aber nur für 386 geeignet und in emulierter DOS-Umgebung nicht lauffähig.

Keiner dieser Lösungsansätze konnte befriedigen, denn entweder blieb eine grundlegende ganzheitliche Neuerung aus, oder Unvollständigkeiten sorgten für ein Exoten-Dasein.

Einen Lichtblick versprach dann die mit viel PR vorbereitete Ankündigung des neuen Multitasking-Betriebssystems OS/2 im April 1987. Nach anfänglicher Euphorie flaute das Interesse rasch wieder ab, da auch in diesem Fall noch keine fertigte Lösung parat war. Das System mit seinen Utilities und Tools wurde erst nach und nach ausgeliefert und befindet sich heute noch in der Entwicklung. Ferner enttäuschte die Tatsache, daß OS/2 zunächst für 80286-Prozessoren entwickelt wurde. Die 286-Systeme sind zwar sehr verbreitet, aber wegen der stark und stetig wachsenden Verbreitung von 386-Systemen entsteht wieder eine Leistungslücke zwischen Hard- und Software. Bedenkt man, daß bereits konkret über PCs, basierend auf 80486 oder i860, diskutiert wird, die noch dieses Jahr erscheinen sollen, gerät OS/2 erneut, wie sein Vorgänger, ins Hintertreffen.

Gleichzeitig mit der Entwicklung der PCs hat sich mit Unix, für den flüchtigen Beobachter fast unmerklich, ein echtes professionelles Betriebssystem, ja sogar eine Systemphilosophie, allen Unkenrufen zum Trotz zur Reife entwickelt.

Auf Basis des AT wurden mit Unix (Xenix, Microport, Venix} schon professionelle Systeme entwickelt und eingesetzt - zur großen Zufriedenheit der Anwender.

Der heute als Standard-PC anzusehende 386er bietet für Unix die Basis zur richtigen Entfaltung. Gleichzeitig hat Unix gezeigt, daß ein langes Bestehen keine Alterung, sondern vielmehr Erneuerung, Abrundung und Reife gleichzeitig bedeutet, kurz ein ernstzunehmendes und professionelles Betriebssystem. Daß Unix darüber hinaus die Vorteile der Portabilität und wachsenden Verbreitung bietet, ist eine schöne Zugabe.

Auf der einen Seite gibt es also ein Betriebssystem aus der Werkstatt der System- und SW-Anbieter IBM und Microsoft, das als der Nachfolger von DOS propagiert und in einigen Fällen auch akzeptiert wird, aber noch einige Entwicklungsstadien vor sich hat.

Auf der anderen Seite hat der Anwender ein reifes rundes, modernes und vor allem vollständiges, darüber hinaus mittlerweile sehr verbreitetes, hardwareunabhängiges System, das sich in ziemlicher Stille dafür aber mächtig, weiterentwickelt hat. Somit stehen sich für den PC-Einsatz mit OS/2 und Unix zwei ungleiche Rivalen gegenüber.

Betrachten wir zunächst die beiden Systeme im Hinblick auf ihre Ausstattung: In der Standardversion erhält der Käufer mit OS/2 das "nackte" Betriebssystem. Zusätzlich kann er natürlich Erweiterungen erwerben, die ihm einmal eine grafische Oberfläche und zum anderen die LAN-Anbindung bieten.

Das Unix-System sieht da wesentlich professioneller aus: Zum Standard-Lieferumfang gehören nicht nur Funktionen zur Systemverwaltung, die, verglichen mit ihren OS/2-Pendants, wesentlich mächtiger sind sondern auch flexible und leistungsfähige Utilities, sowie Bourne-Shell und C-Shell, die einem Benutzer den Umgang mit dem System noch leichter machen. Das gilt nicht nur für den Programmierer oder Systemverwalter. Keiner, der einmal die diversen Filter benutzt oder Shell-Scripts geschrieben hat, möchte auf diese Werkzeuge verzichten.

Mit jedem System erhält der Anwender also eine komplette Palette von Funktionen mit denen er das System vernünftig verwalten und bedienen kann. Sollte ein Neuling durch diese Vielfalt überfordert sein kann er sich auf die mit DOS vergleichbaren Funktionen beschränken, ohne die anderen zur Kenntnis zu nehmen. All diese Funktionen sucht man bei OS/2 vergebens.

Bei den Entwicklungswerkzeugen sieht die Situation ähnlich aus. Abgesehen von der Tatsache, daß bei OS/2 die Vielfalt der angebotenen Sprachen noch zu wünschen übrig läßt (zur Zeit ist eigentlich nur ein echter OS/2-C-Compiler bekannt) liegen, verglichen mit Unix, diese Tools noch im argen. Bei Unix findet der Entwickler zwar im Standard-C-Compiler keinen integrierten Editor, dafür aber einige bewährte professionelle Tools. Neben "make", das auch von DOS-Compilern mittlerweile nachgeahmt wird, stehen ihm so mächtige Werkzeuge wie "awk/newawk", "lex", "yacc" oder Versionssystemverwaltung wie "sccs" zur Verfügung.

Natürlich bietet Unix, genauso wie OS/2, Runtime- oder Shared-Libraries. Funktionen wie "terms" (früher "termcap") für programmunabhängige Terminalanpassung oder "courses" für flexible Window-orientierte Programmoberflächen am ASCII-Terminal aber auch "streams" für flexible Kommunikationsprotokolle sind in der Umgebung von OS/2 ebenfalls nicht vorhanden.

Bei den Systemfunktionen kann man, auf einen Nenner gebracht, feststellen, daß es kaum eine interne Systemfunktion gibt, die nicht schon im Unix vorhanden wäre - seien es parallele oder Hintergrund-Prozesse, Druckerspooler, residente Tasks, Task-scheduling, Prioritätsverwaltung, File- oder Recordlocking, genauso wie shared memory, pipes, semaphore/signals. Der einzige nennenswerte Unterschied liegt in der Möglichkeit von OS/2, Prozesse noch weiter in kleine parallel laufende Programmteile ("threads") zu unerteilen. Die Frage ist allerdings, ob der Aufwand für die Taskverwaltung durch eine solche Zerstückelung der Prozesse nicht zu groß wird.

Andererseits hat OS/2 den Nachteil der 286-Architektur in Kauf zu nehmen, bei der jeder Prozeß vollständig im Speicher geladen sein muß, um zu laufen. Das erhöht die Systembelastung gegenüber 386-Systemen. Dort muß ein laufendes Programm nicht vollständig geladen sein, während es abläuft. Dadurch wird viel Speicher, CPU-Zeit und Wartezeit (beim Neustart) gespart.

Ein anderer wichtiger Punkt ist die Einbindung von Device-Drivern, also Programmen, die als Bestandteil des Betriebsystems eingebunden, das Ansprechen und den Betrieb von angeschlossenen Geräten oder spezieller Erweiterungen (Karten) ermöglichen sollen. Dabei bieten sie dem Benutzer oder Programmierer eine System-einheitliche Schnittstelle. Bei OS/2 können nicht mehr wie bei DOS die mit der Hardware im Eprom mitgelieferten Treiber angesprochen werden. Vielmehr müssen auch hier, wie schon immer bei Unix, eigene Treiberfunktionen in den Systemkern verlagert werden. Die Konsequenzen:

- Es fehlt noch an Erfahrung mit solchen Treibern für OS/2.

- Jeder, der sich dieses Know-how erarbeitet, kann es wieder nur bei OS/2, also eingeschränkt, einsetzen.

- Da Unix bereits auf den PCs sehr verbreitet ist, bedeutet das für den Device-Anbieter/Hersteller, daß er, will er konkurrenzfähig bleiben, Software für beide Systeme anbieten muß. Das ist ein großer Aufwand, deshalb bieten viele zuerst einen Unix-Treiber an.

Andererseits:

- Wer die Treiber-Technologie bei Unix beherrscht, kann sie, da gleiches Prinzip, bei anderen Systemen vom Mikro bis zum Super-Mini einsetzen. Dieser Punkt gilt allerdings für jede Software-Entwicklung im Unix-Bereich.

Es kommen aber auch wirtschaftliche Überlegungen zum Tragen. Betrachten wir zunächst einmal die Palette der angebotenen Software für OS/2 und für Unix. Bei OS/2 klagen die Software-Hersteller über mangelndes Interesse der Kunden. Kein Wunder, da das Software-Angebot mäßig ist. Natürlich ist es wegen der fehlenden Entwicklungs-Werkzeuge mühsam, Software für OS/2 zu entwickeln.

Andererseits sieht sich der Anwender und Entwickler bei Unix einem stetig wachsendem Software-Angebot gegenüber. Der Grund liegt einerseits bei den Systemvoraussetzungen, und daran, daß bei OS/2-Anwendungen meist versucht wird, DOS-Programme anzupassen. Bei Unix ist das Spiel wesentlich leichter die bereits vorhandenen Programme müssen nämlich nur auf ein neues System (Unix-386) portiert werden dabei kann die Programmstruktur unverändert bleiben. Das ist sicherlich ein leichteres Unterfangen als bei OS/2. Außerdem sind die heutigen Unix-Programme, auch wenn manche Kritiker das Gegenteil behaupten, wirklich leicht portabel.

Unix-Programme sind leicht zu portieren

Darüber hinaus sind moderne Parallelprozeß-Technologien mit den Erweiterungsmöglichkeiten in Richtung Verteilter Systeme ja ohnehin seit Jahren bei Unix praktiziert worden. DOS-Programme müssen, um das gleiche unter OS/2 zu können, völlig umgearbeitet werden. Der daraus resultierende Aufwand spricht eindeutig für Unix.

Damit sind die wirtschaftlichen Vorteile von Unix aber noch nicht erschöpft Vernetzte Systeme mit verteilten Dateisystemen (NFS oder RFS) sind bei Unix mittlerweile selbstverständlich, während bei OS/2 erst über den "LAN-Manager" mehr oder weniger nachgedacht wird. Wie vernetzte Systeme unter OS/2 wirklich aussehen sollen, weiß noch niemand - ganz abgesehen davon, daß auch mehrere DOS-LAN-Anbieter ihr eigenes Süppchen kochen wollen.

Ein weiterer wichtiger Punkt bei der Software ist das Angebot an Device-Treibern. Es herrscht ein deutlicher Mangel an Geräteunterstützung unter OS/2. Die Ursache liegt neben der Jungfräulichkeit von OS/2 in der abzusehenden Knowhow-Streuung. Wer von DOS auf OS/2 umsteigt und sich einem ohnehin starkem Umdenkprozeß unterzieht, legt sich wieder auf eine spezielle Systemtechnologie fest.

Viele fragen sich dann, warum sie nicht gleich auf Unix umsteigen sollen. Einmal Gelerntes findet vom PC bis zum Mini Anwendung. Das gleiche gilt übrigens nicht nur für System- oder systemnahe Software, sondern auch für die Entwicklung von Anwendungen.

Ein wichtiger Aspekt ist, daß bereits über ein Multiuser-OS/2 diskutiert wird, ohne zu wissen, wie das realisiert werden soll. Ob sich Device-Treiber, systemnahe Software oder Anwendungen eines Multitasking-OS/2 ohne Modifikationen unter einem Multiuser-OS/2 einsetzen lassen, weiß heute keiner.

OS/2 nutzt nicht technische Möglichkeiten

Natürlich darf bei der Wirtschaftlichkeit nicht der Kaufpreis außer acht gelassen werden. Auch hier hat Unix wieder die Nase vorn. Für ein komplettes System mit Software-Entwicklungswerkzeugen und Text-System sind rund 2000 bis 3000 Mark zu veranschlagen - je nach Anbieter und Anzahl der User. Alle Utilities sind dabei inklusive.

Es gibt aber noch das gute alte DOS mit Tausenden von Programmen und programmierten Mannjahrhunderten, die noch nicht zum alten Eisen zählen sollen und wollen. Auch hier treten Unterschiede zwischen OS/2 und Unix zutage. Wie bereits erwähnt, ist OS/2 für den Prozessor 80286 konzipiert und nutzt nicht die technischen Möglichkeiten eines 80386. Das Resultat:

- unter OS/2, in der Kompatibilitäts-Box, kann auf einmal nur eine DOS-Applikation laufen,

- die DOS-Kompatibilitäts-Box: erhöht nachhaltig den ohnehin schon großen Speicherbedarf,

- EMS ist nicht möglich,

- DOS-Programme, die direkt. auf die Hardware zugreifen, sind zum Teil nicht lauffähig,

- reine DOS-Treiber lassen sich nicht einbinden,

- DOS ist nicht im Hintergrund lauffähig.

Bei 386-Unix sieht die Situation anders aus:

- DOS kann mehrfach gestartet werden, eine Einschränkung gibt es nur durch die Anzahl der Consolen / Bildschirme, der User und den Speicher. Allerdings läuft Unix-386 mit zwei Benutzern, jeder mit einem gestarteten Unix-Prozeß und zusätzlich laufenden dreifach laufenden DOS-Prozessen auch mit 2 MB noch ohne merkliche Schwierigkeiten. Das liegt

an der durch Unix unterstützten im Demand-Page-Mode arbeitenden virtuellen Adressierung des 80386, bei der nicht immer das; gesamte Programm vollständig im Speicher sein muß. Man lädt die benötigten Programmteile seitenweise. Die DOS-Programme können entweder auf virtuellen Consolen (per Tastendruck umschaltbar) oder auf Terminals laufen. Es genügt auch ein einfaches VT100, allerdings nur im Zeichen-Mode.

- DOS-Programme können im Hintergrund laufen (zum Beispiel Daten sortieren oder compilieren). Programme ohne Interaktionen, können laufen, während man weiter mit Unix arbeitet.

- Unix-Shell-Befehle können von DOS, DOS-Kommandos von Unix aufgerufen werden. DOS-Befehle können auch in Shell-scripts eingebaut und über pipes oder redirection ohne Restriktionen mit Unix-Befehlen verbunden werden.

- DOS-Programme, die EMS benutzen, werden unterstützt, ein EMS-Treiber ist vorhanden.

- Auch DOS-Programme, die direkt auf die Hardware zugreifen, sind unter Unix/DOS lauffähig, beispielsweise der Flugsimulator.

- Auch reine DOS-Treiber lassen sich einbinden. Es ist möglich, beispielsweise ein PC-LAN auf einem Unix-PC unter der DOS-Emulation zu fahren.

Es gibt übrigens auch unter Unix V-286 von Microport die DOS-Emulation, DOSmerge-286.

Für die Unterstützung der DOS/Unix-Integration werden große Anstrengungen unternommen. Auch hier ist interessant zu beobachten, daß sich diese Tools und Erweiterungen nur am Unix für PC (386) - und nicht am OS/2 orientieren. Dazu zählt. "Unterminal": Bitmap-Terminals am 386-PC unter Unix mit VP/ ix. An diesem Hercules-kompatiblen Terminal laufen Unix-Applikationen sowohl im Grafik- als auch im Zeichen-Modus, das gleiche gilt für die DOS-Emulation (auch bei der Grafik), jeder Arbeitsplatz hat seinen eigenen Bildschirm (mit zugehörigem Videospeicher), seine PC-Tastatur und Maus. Bei Unterminal werden durch einen Treiber Programmzugriffe auf den jeweiligen virtuellen Videobereich der Console in den Speicher eines Spezialadapters umgemappt. Dieser leitet alle I/Os über ein Kabel zum Arbeitsplatz (Anschluß von Monitor, Tastatur, Maus) weiter.

Das Programm "sieht" also seinen eigenen Hercules-Adapter. Pro System können so zusätzlich bis zu 16 grafische Arbeitsplätze angeschlossen werden. Unterminal ist übrigens auch schon für VGA vorhanden.

Sun River bedient sich des gleichen Prinzips, schließt aber über ein superschnelles LWL-Kabel (40 MBit pro Anschluß) eigene grafische Terminals an seine Adapter. Über die LWLs werden die Videoinformationen (der Inhalt des Videospeichers) zum Terminal geleitet. Die zur Zeit verfügbaren Terminals von SunRiver realisieren CGA/EGA/VGA/Hercules-Modi. Die Funktionsweise der Treiber unter Unix entspricht der von Unterminal.

Dieses von Locus Computing, dem "Erfinder" von DOSMerge, entwickelte Produkt PC-Interface verfolgt eine andere Philosophie. Hier wird die Vernetzung von DOS mit Unix auf der Basis Ethernet/TCP/IP realisiert. Das Unix-System dient als Server für Dateien, Programme, Printer und sonstige DOS/Unix-Dienste. Das DOS-System kann völlig diskless sein, wird mit Unix integriert und kann andererseits von Unix völlig unabhängig konfiguriert werden, darüber hinaus belastet eine DOS-Applikation das Unix nur bei Dateizugriffen. Hierbei wird ein vordefinierter Knoten des Unix-Dateibaums einem DOS-Laufwerk: zugeordnet. Das DOS-Programm greift völlig transparent auf die hier befindlichen Dateien oder Programme zu.

Wachstumspfad von DOS zu Unix

Aber auch Unix-Shell Befehle können von DOS aus aufgerufen werden. Gleichzeitig kann über VT100-Emulation unter DOS, per Tastendruck umschaltbar, mit einem Unix-Rechner gearbeitet werden. Über die optional lieferbare PC-I-Library lassen sich sogar Unix-Systemaufrufe in DOS-Applikationen einbetten. Der Wachstums- oder Umstellungspfad von DOS nach Unix ist damit offen. Aber auch umgekehrt können so Unix-Frontends auf DOS ausgelagert werden, um die Systembelastung zu reduzieren.

PC-TCP/IP sind unter DOS laufende TCP/IP-Funktionen wobei die Standarddienste (TCP, IP, UDP, ARPA, FTP, TELNET, RSH etc.) verfügbar sind. Sie werden derzeit von FTP-Software, Locus, Excelan und Micom angeboten und erfreuen sich wachsender Beliebtheit. Das liegt an der Möglichkeit, unter noch vorhandenem DOS in die Unix-Welt hineinzuwachsen. Im Speziellen handelt es sich dabei um Socket-Funktionen beziehungsweise Libraries mit entsprechenden Aufrufen. Der Programmierer kann sich schon in die Unix-LAN-Technologie einarbeiten.

Sowohl bezüglich Bitmap-Terminals als auch LAN mit TCP/IP hat OS/2 im Moment nichts Gleichwertiges anzubieten. PC-Interface und PC-TCP/IP sind übrigens unabhängig vom angeschlossenen Unix-System. Da mittlerweile auch Nicht-Unix-Systeme TCP /IP bieten, ist das ein weiterer Schritt in Richtung offener Systeme.

Berücksichtigt man, daß heute für jede PC-Klasse ein System V konformes Unix angeboten wird; für 8088/ 86 Xenix/IX und Venix, für 286 Microport V (mit DOSMerge), Xenix/ IX Venix und für 80386 Interactive, Microport, Xenix, Venix, AT&T sieht man, daß das Passende für jeden Geschmack verfügbar ist. Alle haben eines gemeinsam: gleiche Systemumgebung und gleiche Entwicklungsumgebung eines professionellen Systems. Einmal Gelerntes muß deshalb bei m Umstieg nicht über Bord geworfen werden. Auch ein kleines 86/286 auf Unix basierendes Anwendungssystem ist durchaus für den Einstieg geeignet - und das für rund 5000 bis 8000 Mark.

Die volle Unix-Leistung kann sich dann am 386-PC entfalten. Außerdem sind alle Unix-386-Systeme untereinander bis zur Treiberebene Objekt-kompatibel, ab Unix V 386 3.2 auch mit Xenix.

Wir müssen unser Augenmerk nicht mehr in die Zukunft richten, um auch für 386-Unix eine grafische Oberfläche in Form von X-Windows zu sehen, und zwar von Hercules über EGA bis VGA mit 800 mal 600 Bildpunkten in Farbe. Aber auch monochrom mit 1600 mal 1200 oder hochauflösend mit 1280 mal 1024 und 4096 Farben. Hierzu werden demnächst Open Look und Motif erwartet. Unter den ersten Systemen, für die sie verfügbar sein werden, ist 386-Unix mit X.11. Auf eine OS/2-Portierung wird man wohl etwas länger warten. OS/2 beschränkt sich bei grafischer Oberfläche auf VGA.

Unix bietet also auch in diesem Punkt die gewünschte Offenheit und Vielfalt. Ein weiterer Vorteil von X.11 ist seine Server/Client-Philosophie, die es ermöglicht, eine X.11-Applikation, die auf einem System verfügbar ist, am anderen Server und damit am Bildschirm eines anderen Systems verfügbar zu machen. Das X.11-System kann man auch mit grafischer Oberfläche mehrfach bedienen und sogar am X.11-Terminal oder X.11-Server unter DOS. Gleichwertiges hat OS/2 derzeit nicht zu bieten.

Unix hat sich auch im Steuerungsbereich unter Echtzeit etabliert. Im Echtzeitbereich bieten zwei Hersteller ein Unix-V-System an. Venturecom mit Venix, einem modifizierten Interactive-Unix-Kernel, und Alcyon mit Regulus ein System V für 386-PCs ebenfalls mit Erweiterungen. Die Echtzeiterweiterungen beinhalten unter anderem schnellen asynchronen Plattenzugriff, direkte Speicherverwaltung, Task-locking, direkte Interruptroutinen, und Prioritätssteuerung. Beide sind bereits für 80386 verfügbar.

Auch für den Bereich der kommerziellen DV haben die 386-Unix-Systeme einiges zu bieten:

- SNA (3270, SDLC, HDLS, RJE, remote-Drucker etc.)

- OLTP, nach letzten Informationen ist demnächst ein OLTP-Monitor verfügbar, der zusätzlich CICS/ COBOL/VSAM kompatibel sein soll

Alles in allem kann man abschließend sagen: OS/2 ist im Vergleich zu Unix das, was es heißt, nämlich ein "OS-Halbe" .

*Dipl.-lng. Richard von Lavante ist Teilhaber und Geschäftsführer der Tomcat Computer GmbH in Germering bei München