Emulation einer VAX mit SIMH: OpenVMS

In der dritten und letzten Runde habe ich schließlich auf meiner emulierten MicroVAX das ursprünglich von der Digital Equipment Corporation entwickelte OpenVMS installiert. OpenVMS – bis 1991 nur VMS – steht für Virtual Memory System und war zur Zeit seiner Erstveröffentlichung 1977 ein ausgesprochen fortschrittliches 32-Bit-Betriebssystem, das Mehrbenutzer- und Multitasking-fähig war. Es war zudem eines der ersten Betriebssysteme mit virtueller Speicherverwaltung, welches auch die Namensgebung begründet. Das Betriebssystem wurde gleichzeitig mit der VAX-Computerreihe veröffentlicht und für diese entwickelt. Für die Entwicklung von VMS war unter anderem David Neil Cutler verantwortlich, der 1988 von Microsoft bei DEC abgeworben wurde, um das seinerzeit neue Betriebssystem Windows NT zu entwerfen und die Entwicklung zu leiten. Das hatte zur Folge, dass es deutliche Ähnlichkeiten von VMS und Windows NT gibt.
Die Firma DEC wurde im Jahr 1998 von Compaq übernommen und damit auch die Weiterentwicklung von OpenVMS. Da Compaq selber wiederum im Jahr 2002 von Hewlett Packard übernommen wurde, gingen Weiterentwicklung und Vertrieb von OpenVMS auch an HP. Im Jahr 2014 hat HP Weiterentwicklung und Vetrieb mit OpenVMS 8.4 beendet. Dies übernimmt seitdem die eigens dafür gegründete VMS SOFTWARE INC (kurz: VSI) in Lizenz.

Seit der Veröffentlichung von VMS mit der Version 1.0 im Jahr 1977 bis zum jetzigen Zeitpunkt, hat das Betriebssystem insgesamt 4 Hardware-Plattformen unterstützt.: bis zur Version 7.3 im Jahr 2001 war dies die VAX-Architektur. Ab 1992 kam auch die von DEC entwickelte „Alpha AXP“ RISC Prozessor-Architektur hinzu, die von Anfang an auch eine 64-Bit-Architektur war. Die letzte für Alpha-Prozessoren erschienene OpenVMS-Version wurde von VSI im Jahr 2017 mit der Versionsnummer V8.4-2L2 veröffentlicht.
Durch die Übernahme von Compaq durch HP im Jahr 2001, wurde OpenVMS für die 64-Bit Itanium Architektur portiert. Die Itanium-Architektur (kurz: IA-64) wurde von HP und Intel gemeinsam entwickelt. Die Unterstützung der Itanium-Architektur soll mit dem letzten Update für OpenVMS 8.4 eingestellt werden.
Schon seit einiger Zeit wird durch HP und der VMS SOFTWARE INC an einer Portierung von OpenVMS auf die x86-64 Architektur hingearbeitet. Mit der künftig erscheinenden OpenVMS Verson 9.0 soll nur noch die 64-Bit CISC-Architektur unterstützt werden.

So viel zur Versionsgeschichte von OpenVMS. Der Betreiber der Webseite VaxHeaven (http://www.vaxhaven.com/VaxHaven) hat einige Images von CD-ROMs, Magnetbändern und Lochstreifen zusammen getragen und bietet sie wieder zum Download an. Dabei handelt es sich um Images von den OpenVMS-Installations-Medien, den Dokumentations- und Software-Produktbibliotheken.

OpenVMS 7.3 First Login
OpenVMS 7.3 First Login

Als OpenVMS Installations-Image hatte sich für mich nur die Version 7.1 für meine emulierte (Micro-) VAX angeboten. Nach der Installation hat sich aber herausgestellt, dass auf der Installations-CD von OpenVMS 7.1 nicht der TCP/IP Protokoll-Stapel von DEC mitgeliefert wurde. Version 7.1 wurde im Jahr 1996 noch von DEC veröffentlicht. Nach etwas Recherche im Internet bin ich dann doch noch auf die OpenVMS Version 7.3 fündig geworden. Dies war die letzte Version für die VAX-Architektur und wurde 2001 von Compaq veröffentlicht. Diese enthielt dann auch den TCP/IP Protokoll-Stapel.

Die Installation von (Open-) VMS läuft im Prinzip genauso ab wie diese von DECs ULTRIX. Es wird als erstes von dem Installations-Image – bei der realen Hardware also die Installations-CD oder das Magnetband – gebootet, die Ziel-Festplatte ausgewählt auf der im Anschluss alle „Sicherungssets zum Wiederherstellen“ des Systems für die Installation kopiert werden – im meinem Fall die erste mit der Bezeichnung DUA0 – und dann das System neu gestartet um von der Festplatte DUA0 die Installation und Einrichtung zu starten. Was zum Glück bei der Installation von OpenVMS im Gegensatz zu ULTRIX unter dem SIMH-Emulator wegfällt, ist der Umstand, dass man die Laufwerksbezeichnungen in einem Installations-Skript anpassen muss. OpenVMS sieht die Hardwarekennung RQ vom Emulator und kann mit diesen direkt arbeiten.
Im Verlauf des Installationsprozesses wird nach der lokalen Zeit gefragt. Es wird nochmals nach dem Quellinstallationsmedium (CD-Image) gefragt und sichergegangen, dass dieses auch gemountet wurde. Es wird auch gefragt, welche Softwarekomponenten installiert werden sollen – einschließlich DECwindows mit Motif wie bei ULTRIX. Ich habe zur Sicherheit alles mit ‚yes‘ bestätigt. Auch wird DECnet-Plus für die Netzwerkkonfiguration mit TCP/IP benötigt.
Man darf sich aber nicht wundern, die Angaben des benötigten und des zu verbleibenden Speicherplatz auf der Festplatte wird in Blöcken angegeben anstatt in Kilo-, Mega- oder Gigabyte. Da ein Block immer mit einer Größe von 512 Byte bemessen wird, lässt sich die Angabe in Byte recht schnell erahnen, beziehungsweise berechnen.
Wo es wieder einen signifikanteren Unterschied zu ULTRIX, sowie der restlichen Unix- und Linux-Welt gibt, ist die Anzahl der User-Accounts die bereits während der Installation eingerichtet werden. Zum einen gibt es den ‚SYSTEM‘-Account, der vergleichbar mit dem Root-Account bei Unix und Linux ist. Der Account SYSTEST bietet eine geeignete Umgebung zum Ausführen von UETP, einem Testpaket für Benutzerumgebungen auf eigenständigen Systemen. Darüber hinaus wird der Account FIELD angelegt, der dazu dient, ein System testen zu können.
Der Installer verlangt dann den ‚SCSNODE name‘ – also einen Hostnamen, sowie eine ‚SCSSYSTEMID‘, eine ID zur Identifikation des Rechners innerhalb eines VAX-Clusters.
Anschließend erwartet der Installer die Lizenzschlüssel, aber man kann dies auch erstmal verneinen und die Lizenzaktivierung hinterher nach der Installation durchführen. Letztendlich wird noch nach der Zeitzone gefragt und ob zurzeit die Sommerzeit vorherrscht oder nicht. Letztendlich wird noch DECnet-Plus installiert und es muss sichergestellt sein, dass das Installationsmedium gemountet ist, um die Komponenten installieren zu können. Abschließend erzeugt der Installer ein neues System-Image und fährt VMS herunter.
Nach dem ersten und jeden weiteren Bootvorgang meldet sich OpenVMS und wartet auf den Login. Der Prompt ist dabei nicht sofort zu sehen, dass heißt, vor dem Login muss immer einmal Return gedrückt werden. Ansonsten gibt OpenVMS auf der Systemkonsole immer die Auditmeldungen aus.
Insgesamt betrachtet ist die Installation von OpenVMS sehr einfach, wenn man mal beachtet, dass es sich dabei eigentlich um ein Enterprise-System handelt. Die Installation verlangt im Gegensatz zu DECs Ultrix nur sehr wenige technische Details, was sehr angenehm ist.

OpenVMS 7.3 TCP/IP Configuration
OpenVMS 7.3 TCP/IP Configuration ohne gültiger Lizenz

Danach geht es daran, das System netzwerkfähig zu bekommen. Allerdings ist es zu diesem Zeitpunkt nur möglich unter OpenVMS DECnet einzurichten. Der TCP/IP Protokoll-Stapel muss von der Installations-CD nachträglich installiert werden. Da meine eingesetzte OpenVMS Version 7.3 aus dem Jahr 2001 stammt, sind sämtliche Komponenten zum Glück mit einem heimischen IPv4-Netz kompatibel, während hingegen bei dem ULTRIX Final-Release 4.5 eine aus heutiger Sicht mit veralteten Funktionen ausgestattete Bind-Version enthalten ist und so keine Namensauflösung mehr möglich ist.
Leider ist es mir aber prinzipiell nicht mehr möglich, IPv4 unter meinem emulierten OpenVMS zu konfigurieren. Grund ist, dass für die Nutzung der Netzwerkfunktionalitäten OpenVMS mit einer gültigen Lizenz versehen werden muss. Für die Nutzung einer OpenVMS-Installation ohne kommerzielle Absichten hatte HP das OpenVMS-Hobbyist-Programm mal ins Leben gerufen gehabt. So konnte man sich nach Registrierung eine Hobbyisten-Lizenz mit einer Laufzeit von einem Jahr ausstellen lassen. Seit Mai letzten Jahres hat HP aber keine neuen Hobbyisten-Lizenzen mehr ausgestellt. Grund ist, dass man mit der Einstellung von OpenVMS 8.4 und der Veröffentlichung von Version 9.0 als ersten x86-64 Port ein neues ‚Community License Program‘ ab diesem Jahr auf die Beine stellen möchte. Die letzten von HP noch ausgestellten Hobbyisten-Lizenzen werden am 15. März dieses Jahres auslaufen. Möchte man also noch die Möglichkeit haben und in den Genuss von OpenVMS mit voller TCP/IP Netzwerkfunktionalität zu genießen, so gibt es noch im Rahmen des ‚Student Hobbyist License Programs‘ das Angebot, das FreeAXP Kit herunterzuladen. Dabei handelt es sich um die Emulation eines virtuellen Alpha-Server mit OpenVMS 8.4, welche auf einem 64-Bit Windows ausgeführt werden kann. Allerdings wird auch zum 15. März diese Lizenz ablaufen. Auch gibt es bei dem Kit keine Möglichkeit DECwindows mit Motif auszuführen. Ich bin ja mal gespannt, ob die VMS SOFTWARE INC wieder ein attraktives Lizenzierungsmodell für Leute wie mich auf die Beine stellt, die das Betriebssystem einfach nur mal ausprobieren, kennen lernen und damit ein wenig herumspielen möchten. Mich hätte es nämlich auch dringend interessiert, ob OpenVMS mit DECwindows und Motif auch so langsam auf meinem Linux-Host ist wie ULTRIX mit DECwindows und Motif, oder ob es vielleicht flüssiger läuft. – Im Internet gibt es nämlich Besitzer von originalen VAX-Computern, die berichten, das ULTRIX – wenn es überhaupt auf ihren Geräten zu installieren ist – nur sehr langsam ist im Vergleich zu (Open-) VMS.

VSI OpenVMS Student-Package
VSI OpenVMS 8.4-22 Student-Package

Auch wenn ich OpenVMS unter meiner emulierten MicroVAX leider doch nicht auf Grund der fehlenden Lizenzierunsgmöglichkeit in mein heimisches Netz integrieren kann, bin ich schon echt froh, dass ich es überhaupt zum Laufen bekommen habe.

Als Kommandozeileninterpreter und Skriptsprache steht unter OpenVMS die DIGITAL Command Language (DCL) zur Verfügung. Die Kommandos und deren Syntax unterscheiden sich deutlich denen von DOS und Linux/Unix. Bisweilen sind die Befehle sehr umständlich, wie zum Beispiel die Angabe um auf die oberste Verzeichnisebene eines Laufwerkes zu gelangen. Da steckt also viel Potenzial, das System kennenzulernen und zu erforschen. Der Hauptantrieb, weshalb ich mir OpenVMS überhaupt mal anschauen wollte, ist die Eigenschaft, dass bei der DCL alle Dateien und Verzeichnisse zwei Dateierweiterungen.
besitzen.:
Die Dateinamen und Verzeichneichnisse bestehen aus Namen, Datei-Typ und Versionsnummer (z. B. NAME.TYP;1), NAME und TYP sind jeweils Ketten von bis zu 39 alphanumerischen Zeichen. Geänderte Dateien werden als eine neue Version gespeichert, die sich in einer inkrementierenden Versionsnummer nach einem Semikolon im Dateinamen unterscheidet (NAME.TYP;1 → NAME.TYP;2). Dies wurde später auch von ISO 9660 übernommen. Die ältere Version wird vom System nicht gelöscht, dies kann der Benutzer mit den DELETE- oder PURGE-Befehlen bedarfsweise tun. Die maximal mögliche Versionsnummer ist 32767. Ist diese erreicht, kann keine neue Version der Datei mehr angelegt werden. Ein Aufräumen und Umbenennen ist selbstverständlich möglich.

Links: