VOICE Homepage: http://de.os2voice.org | August 2001 [Inhaltsverzeichnis] [Vorherige Seite] [Nächste Seite] [Artikelverzeichnis] editor@os2voice.org

## Eine OS/2-Geschichtsstunde - Vor zehn Jahren

Von Michal Necasek © August 2001, Übersetzung: Carsten Kettner

Vor zehn Jahren war die Welt von OS/2 deutlich anders als heute. Zum einen gab es nicht nur IBM OS/2 - Microsoft OS/2 war ebenfalls erhältlich. Sogar nach der Trennung von MS und IBM verkaufte Microsoft nach wie vor OS/2 Version 1.3, die hauptsächlich von IBM entwickelt wurde (das Microsoft Top-Management hatte schon längst das Interesse an OS/2 verloren). OS/2 Version 1.3 war fast identisch mit OS/2 1.2 soweit es die technischen Grundzüge betraf, aber es enthielt eine Anzahl von Leistungsoptimierungen und einige Benutzungserweiterungen. Die Ähnlichkeit von OS/2 1.2 zu 1.3 ist dadurch begründet, daß fast alle OS/2-Anwendungen dieser Zeit auf beiden Versionen liefen - obwohl sie in IBM/MS-"Tradition" normalerweise die Versionen 1.21 bzw. 1.31 benötigten, weil die ursprünglichen Ausgaben zu wackelig waren.

Ich möchte nun eine Tour durch OS/2 1.3 starten - das war die OS/2-Version von vor 10 Jahren. Meines Wissens gab es 1991 drei erhältliche OS/2-Pakete:

- Microsoft OS/2 1.3
- IBM OS/2 1.3 SE (Standard Edition)
- IBM OS/2 1.3 EE (Extended Edition)

IBMs SE-Version und die MS OS/2-Version waren nahezu identisch, der einzige Unterschied bestand in zumeist verschiedenen Treibern (MS OS/2 enthielt einige zusätzliche SCSI-Treiber). MS OS/2 wurde hauptsächlich von OEMs wie Compaq oder NCR vertrieben. OS/2 EE war IBMs "Schwergewicht"-Version, die den Communications Manager, den Datenbank-Manager (den Vorgänger von DB2/2) und den LAN Requester enthielt. Diese Version zielte natürlich auf Industriekunden, insbesondere auf die, die auf die Schnittstelle zu IBMs Big Iron [die so bezeichneten Großrechner, zu denen bspw. der Cray, aber auch die konventionellen IBM-Mainframes gezählt wurden - Anm.d.Übers.], ab.

Ich habe mich auf die Basisversion von OS/2 konzentriert, namentlich MS OS/2 1.31. Microsoft positionierte es als ein Server-BS (zur Erinnerung: 1991 war Windows NT noch in weiter Ferne und DOS ist keine echte Server-Plattform) und die OEMs bundelten es häufig mit dem MS LAN Manager - was MS/IBMs (meistens pathetische) Antwort auf Novell NetWare war. Zu bemerken sei, daß die Basiskonzepte und große Teile der Benutzer-Schnittstelle (z.B. das NET-Kommando) immer noch in zumeist unveränderter Form in den heutigen Ausgaben von sowohl Microsoft als auch IBM vorhanden sind.

Nun wollen wir mal einen Blick auf das Paket werfen: MS OS/2 1.31 befindet sich auf 10 3.5" HD-Disketten. Diese enthalten das Basis-Betriebssystem, den Presentation Manager, Schriftarten, Grafikkarten- und Druckertreiber (jedoch in nicht großer Auswahl). Es gab keine Netzwerk-Unterstützung im Basispaket - man konnte entweder einen kompletten LAN Manager bekommen (einschließlich einigen Goodies wie HPFS368) oder nur den LAN Manager Client (der wahrscheinlich immer noch auf MS' FTP-Server liegt [Das stimmt in der Tat! - Anm.d.Hrsg.]).
Mal sehen, was OS/2 1.3 schon hatte:

- Preemptives Multitasking
- Multithreading (max. 512 threads im ganzen System)
- komplett geschützten Speicher
- keine 640K Speichergrenze für OS/2-Anwendungen
- Virtueller Speicher (konnte theoretisch 1 GB virtuellen Speicher nutzen)
- Graphische Benutzerschnittstelle (Presentation Manager)
- Fenster- und Vollbildschirm-OS/2-Sitzungen
- Installierbare Dateisysteme einschließlich HPFS
- Unterstützung für die REXX-Skriptsprache

Aber OS/2 1.3 hatte auch viele Einschränkungen, die vor allen Dingen durch die Anpassung an den 286er Prozessor verursacht wurden:

- Unterstützung von nur 16MB physikalischem Speicher
- Ausschließliche Unterstützung von 16-Bit-Applikationen
- Nur eine einzige Vollbild-DOS-Sitzung mit einer nicht besonders guten Kompatibilität (doppelter "Strafraum", die sogenannte Penalty-Box)

Interessanterweise durchbrach (meines Wissens nach) Microsofts HPFS386-Treiber, der zusammen mit dem LAN Mananger vertrieben wurde, die ersten beiden Einschränkungen (natürlich nur auf 386er Maschinen) OS/2 2.0 berichtigte all diese Restriktionen - obwohl die 16MB-Einschränkung 1991 kein echtes Problem war.

Nebenbei: Die DOS-Unterstützung in OS/2 1.x war technisch sehr interessant. Der 286er-Chip war nicht dafür ausgelegt, Real Mode-DOS-Programmen die Virtualisierung zu erlauben (anders als der 386er). Die Intel-Entwickler hatten wahrscheinlich keine Ahnung, daß DOS sich so lange halten würde (das Wort "Pest" drängt sich geradezu auf) und erwarteten, daß es durch full-protected Betriebssyteme ersetzt werden würde. Also unterstützte der 286er den Real Mode und den Protected Mode, aber keine einfache Möglichkeit, zwischen beiden hin- und herzuschalten. Das Umschalten vom Real zum Protected Mode war einfach (gerade mal ein bißchen herumschalten im Machine Status Word (MSW), einem CPU-Register auf dem 286er und neueren Chips), aber es gab keinen Weg zurückzuschalten - nun ja, keinen einfachen Weg. Bekanntlich können Ingenieure manchmal ziemlich schlau sein und kümmern sich nicht um Dinge, die "nicht gemacht werden können". Einer dieser Ingenieure ist Gordon Letwin (einer der ersten 10 Microsoft-Arbeitnehmer, Chef-Entwickler von OS/2 auf Seiten von Microsoft und Entwickler von HPFS neben anderen Errungenschaften), der ein Workaround für dieses Problem fand. Dieses ist durch einen erzwungenen Hardware-Reset auf der CPU implementiert (entweder durch Einsatz eines Schaltkreises außerhalb der CPU oder durch eigenständiges Zurücksetzen durch dreifachen Fehler) - nach dem Neustart starten alle Intel x86 CPUs im Real Mode. Diese Methode wurde als "Ein- und Ausschalten des Autos zum Schalten bei 60 Meilen pro Stunde" bezeichnet und wurde standardmäßig mehr oder weniger erfolgreich von OS/2 1.x, Windows/286 und Windows 3.x durchgeführt. Der 386er bietet eine viel bessere Real Mode-Unterstützung (durch den virtuellen 8086-Modus).

### Das Basis-OS/2

Ich bin sicher, daß die ursprünglichen MS/IBM-Ingenieure geschockt wären, wenn sie hörten, auf welcher Hardware ich OS/2 1.3 laufen habe: Intel PIII-600 CPU, 256MB RAM, Matrox G400/32MB Grafikkarte. Ich mußte nur meine 40GB-Festplatte gegen ein 4GB-Laufwerk austauschen - aber das ist keine Überraschung, denn sogar viel jüngere Betriebssysteme (wie Warp 4 und Windows NT4, beide Baujahr 1996) stürzten genauso wie das antike OS/2 auf dem 40GB-Laufwerk ab. Bedenken Sie, daß dies ein IDE-Laufwerk ist, obwohl OS/2 1.3 SCSI-Hardware der frühen 1990er wie den Adaptec 154x mit angeschlossenden Festplatten und CD-ROMs unterstützte.

Ich installierte OS/2 auf einer kleinen 512MB HPFS-Partition (es sieht so aus, als gäbe es ein Problem mit Partitionen größer als ein 1GB - denken Sie daran, daß 1991 die typische Festplatte sicherlich kleiner als 100MB war). Die Installation verlief ziemlich glatt, obwohl es nicht so viel zu installieren gab. Die unterstützen Grafiktreiber waren auf Standard CGA/EGA/VGA/XGA limitiert (einige Hersteller damals hatten Treiber für hohe Auflösungen für ihre Hardware) und Multimedia-Unterstützung gab es nicht. OS/2 1.3 hatte keine Probleme mit meiner PS/2-Maus.

OK, nun wollen wir mal ein paar Bilder ansehen. Dies ist die OS/2 1.3 Standard-Arbeitsoberfläche:

Ziemlich langweilig, nicht? Beachten Sie das DOS-Icon in der linken unteren Ecke. Es war immer vorhanden, weil die DOS-Box immer geöffnet war - obwohl die DOS-Box solange nicht lief, bis sie in den Vordergrund (also Vollbild) kam. Genauso lief auch der Drucker-Manager immer. Die Schnittstelle ähnelte sehr stark Windows 3.0 sowohl grafisch (die GUI-Objekte) als auch konzeptionell - es gab keine erwähnenswerten Verzeichnisse, nur Programmgruppen, die Programmicons enthielten. Der einzige "große" Unterschied bestand darin, daß die Shell nicht als Programm-Manager wie in Windows, sondern Arbeitsplatz-Manager bezeichnet wurde:

Es lagen OS/2 keine schlauen kleine Anwendungen wie Solitär bei. Eins der wenigen mitgelieferten GUI-Programme, das der Datei-Manager, der seinem Windows-Widerpart etwas ähnelte:

Heutigen Benutzer von OS/2 (oder eComStation) könnten einige treffende Ähnlichkeiten zwischen OS/2 1.3 und dem zehn Jahre späteren OS/2 4.5 auffallen. Eine davon ist das Hilfe-Untersystem:

Die Konfiguration wurde mittels des Kontrollfeldes erledigt (wieder analog zu Windows). Wenn Sie sich (wie ich mich) gefragt haben, woher einige der schlechter aussehenden Diaologe, die im gegenwärtigen OS/2 immer noch vorhanden sind, herkommen, dann wissen Sie es jetzt:

Die Einfügen/Ausschneiden-Fontdialoge sind die ältesten (im wesentlichen seit OS/2 1.1 nicht geändert). Ein andere fast unveränderte Erscheinung ist die Sperren-Funktion (ich frage mich, woher dieses OS/2-Logo kommt):

Noch ein anderes bekanntes Feature (aber zeitlos, weil's nichts zu verbessern gibt) sind die Kommandozeilen-Fenster:

Und hier ist der letzte Screenshot der OS/2-Arbeitsoberfläche, der beweist, daß OS/2 schon immer ein echtes Betriebssystem gewesen ist und nicht nur eine protzige Fassade wie Windows - der Shutdown-Dialog:

Vor allem bei Nutzung des HPFS (das erstmals in OS/2 1.2 erschien) war ein sauberes Herunterfahren sehr wichtig für die Datenintegrität und zum Schutz vor ärgerlichen und langen CHKDSKs.

### Anwendungen

Wie Sie vielleicht schon an den Screenshots bemerkt haben, gab es mehrere populäre Office-Anwendungen für OS/2. Ich testete kurz zwei von diesen, Microsoft Word für OS/2 (Version 1.1) und Microsoft Excel 3.0. Diese beiden Anwendungen waren den Windows-Versionen sehr ähnlich - ich werde später erklären, warum.

Wollen wir zunächst einen Blick auf MS Word werfen. Es kam auf 4 HD-Disketten und enthielt das aktuelle Word-Programm, Filter für verschiedene Text- und Grafikformate und ein Tutorial. Das Anwendungsfenster unterschied sich nicht sonderlich von dem späterer Versionen:

Beachten Sie, daß diese die seltene 1.1 'B'-Version ist, die unverändert unter den heutigen OS/2-Versionen läuft - nicht, daß sie heutzutage irgendeiner noch nutzt, aber sie zeigt, daß die Rückwärts-Kompatibilität in OS/2 wirklich bemerkenswert ist.

Wie ich bereits erwähnte, wurde Word mit einem interaktiven Tutorial geliefert, das meiner Meinung nach ganz nett ist, vor allem unter Berücksichtigung des Baujahres:

Wie die heutigen Textverarbeitungsprogramme litt Word vor zehn Jahren noch nicht so unter einer zu großer Anzahl von Funktionen, sondern war ein ganz brauchbarer Textverarbeiter - wenn man fit ist in der Word-artigen Textverarbeitung (ich bin's nicht):

Eine andere größere, für OS/2 erhältliche Microsoft-Anwendung war Excel. Auch diese war dem Windows-Pendant sehr änhnlich:

Beachten Sie die angezeigte genutzte Speichergröße - ich bin fast sicher, daß während der Berechnung manche Variable überlief, weil die ursprünglichen Entwickler dies niemals auf einer 256MB-Maschine getestet haben.

Genauso wie Word war Excel ganz brauchbar und konnte ziemlich alles, was man von einer Tabellenkalkulation erwartete:

Eine interessante Excel-Funktion war die Online-Hilfe:

Falls Sie jemals Windows 3.0 benutzt haben, sollte Ihnen das Hilfe-Fenster sehr bekannt vorkommen. Tatsächlich könnten Sie, wenn Sie nicht ganz genau hinschauen, den Screenshot irrigerweise für Windows 3.0 halten. Es sah diesem sehr ähnlich.

Microsoft war natürlich nicht der einzige Anwendungsprogramm-Hersteller. Lotus verkaufte ebenfalls eine OS/2-Version der berühmten 1-2-3-Tabellenkalkulation. Aber im großen und ganzen waren nicht viele GUI-Anwendungen verfügbar. Einige Office-Anwendungen wie Microsoft Word 5.5 (lief sowohl unter DOS als auch unter OS/2), Lotus 1-2-3 oder (ich glaube) WordPerfect gab es auch für den Text-Modus.

###

### Anwendungs-Entwicklung

OS/2 1.x war eine großartige Entwicklungs-Plattform. Aufgrund des guten Multitasking erlaubte es den Entwicklern gleichzeitig, ein großes Projekt zu kompilieren, einen Quellcode zu schreiben und eine Datei beispielsweise von einer BBS herunterzuladen. Windows 3.x versprach genau dasselbe, aber scheiterte daran - zumindest nach Meinung der Power-User. Meines Wissens nutzten die Microsoft-Programmierer intern OS/2 sehr stark, um OS/2-, DOS- und Windows-Anwendungen zu entwickeln - Kreuzkompilierung war mit Microsoft-Tools kein Problem.

OS/2 1.x hat eine interessante Eigenschaft - es erlaubte den Entwicklern, "familien-übergreifende" Anwendungen zu bauen, die unverändert genauso auf DOS wie auf OS/2 laufen konnten - bedenken Sie, daß dies nicht das gleiche ist wie "gebundene" Anwendungen, die im Grunde genommen andere Executables für DOS und OS/2 enthalten. Die Familien-API war eine Untergruppe der OS/2 API. Eine Familien-Anwendung war ein OS/2-Programm (eine NE-Format-Executable), das auf OS/2 ohne besondere Rücksichten lief. Aber der DOS-Stub war ungewöhnlich groß (ungefähr 11K) und enthielt einen OS/2 API-Mini-"Emulator", der "oben auf" DOS lief. Viele OS/2-Kommandos nutzten diese Eigenschaft, genauso wie einige Microsoft-Programmiertools (Linker, Bibliothekentools etc.).

Die Familien-API war ziemlich leistungsfähig, wie der nächste Screenshot beweist:

Dies ist - ganz offensichtlich - Microsoft Word 5.5 (verstehen Sie deren Versionsnummern? Ich nicht!) für DOS und OS/2. Es ist eine familien-artige Anwendung und die Executables laufen sowohl unter DOS als auch unter OS/2. Es kann im Text-Modus und im "Pseudo-Text"-Modus laufen - einem Grafik-Modus, der so aussieht wie Text-Modus, aber kursive oder fette oder sonstige Schriftzeichen darstellen kann. Diese Textverarbeitung bietet eine interessante Möglichkeit: sie ist als ein freies Y2K-Upgrade für DOS Word 5.0-Nutzer von Microsofts Office-Webseite herunterladbar.

Eine ganze Anzahl Hersteller boten OS/2-Compiler an (C war die beliebteste Sprache). Einige von ihnen werde ich hier aufführen:

- IBM - verkaufte umgelabelte Versionen von MASM und Microsoft C als IBM Macro Assembler/2 und IBM C/2.
- Lattice C
- Watcom C und FORTRAN - die einzigen Compiler, die noch 16-Bit OS/2-Entwicklung unterstützen (jetzt Open Watcom).
- Zortech C (später Symantec C, jetzt Digital Mars)

Es gab noch viele andere. Aber der bei weitem größte Sprachen-Hersteller war Microsoft selbst. Deren OS/2-Compiler enthielten folgendes:

- Microsoft C Versionen 5.1 und 6
- Microsoft Macro Assembler (MASM) Versionen 5.x und 6.0
- Microsoft FORTRAN Version 5.1
- Microsoft Pascal Version 4.0
- Microsoft Basic Version 7

Alle diese Compiler unterstützten sowohl DOS- als auch OS/2-Entwicklung und erlaubten Kreuz-Kompilationen in beide Richtungen. Alle unterstützten Tools waren strikt text-orientiert. Die meisten Compiler kamen mit einem Programmier-Arbeitsplatz, der als IDE [=integrated development environment, also Entwicklungsumgebung - Anm.d.Übers.] diente:

Der mitgelieferte Debugger war das klassische CodeView (die Protected-Mode-Version - CVP). Die OS/2-Versionen von CodeView sahen fast genauso aus wie die DOS-Versionen, es war sozusagen nicht sehr ansehnlich. Besonders die frühen Versionen von CodeView (vor 1989) waren ziemlich häßlich:

Schauen Sie sich die Daten im "About"-Kasten an. So viel zur Y2K-Hysterie! Die späteren Versionen von CodeView waren noch immer im Text-Modus, aber sie hatten eine etwas nettere fensterbasierende Schnittstelle:

Alle Microsoft-Sprachen enthielten auch eine umfassende Online-Hilfe und einem TSR- Hilfe-Fenster, QuickHelp:

Beachten Sie, daß diese Schnittstelle immer noch in der DOS-Version von QBASIC, das mit OS/2 geliefert wird, und in EDIT.EXE in Windows 9.x vorhanden ist.

Eine komplette 16-Bit-Programmierung war natürlich eine Strafe - wenn Sie nicht wissen, warum, dann fragen Sie auch nicht. Aber aufgrund seiner Schutzmechanismen und dem virtuellen Speicher war die Programmierung für OS/2 immer noch besser als eine Windows- oder gar DOS-Entwicklung. Viele der 16-Bit-Beschränkungen waren zwar vorhanden, aber zumindest war die Plattform stabil.

###

### Interessantes Zeugs

Während meiner Suche nach alter OS/2-Software stieß ich auf eine sehr interessante Software - Microsofts WLO oder Windows Libraries für OS/2. Ich bin nicht sicher, ob dieses Produkt jemals offiziell freigegeben wurden, weil es in der Zeit der MS/IBM-Trennung fertiggestellt wurde. Einfach gesagt ist WLO "Windows für OS/2" - die Portierung der 16-Bit Windows 3.x-API nach OS/2 1.x. WLO wurde als ein Satz von Bibliotheken und DLLs ausgeführt, die entworfen wurde, um Entwicklern die Möglichkeit zu geben, Anwendungen zu programmieren, die unverändert auf Windows 3.x und OS/2 (mit WLO DLLs) laufen. Microsoft benutzte frühere Versionen von WLO, um OS/2-Versionen von Word und Excel zu entwickeln. Dies erklärt, warum sie den Windows-Versionen so ähnlich waren und warum Excel mit dem Windows-Hilfefenster kommt. Ich kenne keine nicht-Microsoft-Anwendung, die WLO nutzte.

Alles in allem war WLO ziemlich vollständig. Um dies zu beweisen, machte ich einige Screenshots von WLO-gestützten Anwendungen. Hier ist der erste:

Dies ist tatsächlich OS/2, es ist keine Täuschung! Und es ist auch nicht Win-OS/2. Es ist das Original MS OS/2 1.3. Natürlich ist dies Windows Paintbrush mit einem darin geöffneten Screenshot von Windows Write. Hier ist ein anderes Beispiel:

Lassen Sie sich wieder nicht von der Tatsache täuschen, daß dies exakt wie Windows aussieht - es ist's nicht! In Wirklichkeit sieht der "About"-Kasten etwas anders aus als in Windows 3.x. Dies hier ist natürlich das überaus beliebte Solitär-Kartenspiel. Es funktioniert auch ganz gut:

Ja, ich bin darin ziemlich gut...

Und was die OS/2-Rückwärtskompatiblität angeht, sollte es nicht überraschen, daß WLO noch heute funktioniert:

Dieser Screenshot wurde in OS/2 4.5 gemacht - es gibt anscheinend einige graphische Pannen, aber das Hilfe-Fenster arbeitet ganz nett. Niedlich, was?

#### Danksagungen

Ich möchte mich gerne bei mehreren OS/2-Veteranen bedanken, die mich mit der hier vorgestellten Software versorgt haben. Sie wissen, wer sie sind.

Einige der hier vorgestellten Informationen stammen aus dem hervorragenden Buch "Inside OS/2" von Gordon Letwin, veröffentlicht 1988 von Microsoft Press.

Die meisten Screenshot wurden mit PMCamera aufgenommen, einem IBM EWS-Utility von Juerg von Kaenel. Die Text-Modus Screenshots wurden mit PMView unter Warp 4.5 erstellt.

Alle diese Informationen sind nach bestem Wissen zusammengestllt. Ich habe niemals selbst OS/2 1.x benutzt, von daher gibt es im Text sicherlich Lücken. Falls Sie aus den 1.x-Tagen stammen und noch zusätzliche Informationen haben, würde ich mich über Anmerkungen an <MichalN@prodigy.net> freuen.

[Artikelverzeichnis]
editor@os2voice.org
[Vorherige Seite] [Inhaltsverzeichnis] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org