Totgesagte leben länger: OpenVMS erscheint für x86

OpenVMS zählt neben UNIX zu den ältesten noch aktiv entwickelten Betriebssystemen. Seit seiner Einführung im Jahr 1977 für die VAX-Architektur (Virtual Address Extension) hat es zwei große Plattformwechsel hinter sich: DEC Alpha (1992 - 1994) und Intel Itanium (2001).

Kürzlich hat VMS Software, Inc. (VSI) die ersten Ergebnisse eines lang ersehnten Meilensteins präsentiert: OpenVMS ist nun auf der x86-Plattform lauffähig. Für mich als Hobbyist könnte somit ein kleiner Traum in Erfüllung gehen - der Betrieb von OpenVMS ohne stromfressende, laute und dem Untergang geweihte Itanium-Hardware. 🙂

Geschichte

VMS (wie es urpsünglich hieß) und die VAX-Architektur sind Resultate eines Projekts zur Erweiterung des 16-bittigen PDP-11-Computers. Im Laufe der Jahre veränderte sich der Name maßgeblich durch neu eingeführte DEC-Computer. Mit dem Umbenennen der VAX 11-Computer in VAX im Jahr 1980 wurde das Betriebsystem fortan VMS/VAX genannt. Mit der Einführung der MicroVAX-Serie in 1983 wurde ein Jahr später eine speziell angepasste VMS-Version namens MicroVMS veröffentlicht. Diese war notwendig, da die Mini-Computer im Vergleich zu den herkömmlichen VAXen auf bedeutend geringere Hardware-Ressourcen zugreifen konnten und einige fehlende CPU-Features in Software umsetzen mussten. Der heute bekannte Namen OpenVMS wurde 1991 gewählt um die Unterstützung "offener Standards", wie beispielsweise POSIX- und UNIX-Kompatibilität, zu verdeutlichen. Open hat in diesem Kontext also nichts mit Open Source zu tun, wie oft fälschlicherweise angenommen wird.

Nicht nur hinsichtlich der Architekturen hat OpenVMS eine bewegte Geschichte hinter sich - auch die dahinterstehenden Firmen wechselten häufig. So wurde DEC 1998 von Compaq übernommen, welche wiederrum 2002 von Hewlett-Packard gekauft wurde. HP strukturierte sich 2015 neu und lagerte den Enterprise-Markt in HPE (Hewlett-Packard Enterprise) aus. Bereits 2014 hatte HP das OpenVMS-Geschäft exklusiv an VSI lizenziert. Einige von VSIs Mitarbeitern sind ursprüngliche DEC-Angestellte - ideale Voraussetzungen, um OpenVMS weiterzubringen.

Version Jahr Features
V1.0 1977 Erste Version für VAX
V4.0 1984 Erste Version für MicroVAX (MicroVMS)
V1.0 AXP 1992 Erste Version für Alpha
V6.1 1994 Zusammenfluss der VAX-/Alpha-Versionen
V7.0 1996 Vollständiger 64-Bit-Support für Alpha
V7.3 2001 Letzte Version mit VAX-Support
V8.2 2005 Alpha-/Itanium-Release
V8.3 2006 SMP-Support auf Itanium
V8.4 2010 Betrieb als Gast unter HP-UX (HPVM), letzte Version von HP

Seit 2010 hat sich durch VSI einiges getan - hier einige Auszüge der aktuellen Roadmap:

Version Jahr Features
V8.4-1H1 2015 Itanium Poulson-Support, erste Version durch VSI
V8.4-2 2016 Support für bis zu 64 Cores und 1.5 TB Arbeitsspeicher
V9.0 Mai 2020 x86 Early Adopter-Release für auserwählte Kunden
V9.1 H2 2020 x86 Early Adopter-Release für alle Kunden
V9.2 2021 Release für Alpha, Itanium und x86

Was macht OpenVMS besonders?

OpenVMS war zum Zeitpunkt seiner Erstveröffentlichung ausgesprochen fortschrittlich im Vergleich mit anderen Betriebssystemen. Es war 32-Bit- und multitaskingfähig und unterstützte bereits den Clusterbetrieb um Ausfallsicherheit bereitzustellen. Dabei ist es auch möglich VAX- und Alpha- bzw. Alpha- und Itanium-Knoten gemischt zu kombinieren. Es war auch eines der ersten Betriebssysteme welches eine virtuelle Speicherverwaltung bot. Mit dem Kommandozeilen-Interpreter DIGITAL Command Language (DCL) gibt es eine sehr mächtige Skriptsprache, die den Vergleich mit gängigen Shells nicht scheuen muss. Funktionen wie Quantifizierer machen DCL aus und vermeiden den Einsatz von eher unübersichtlichen Schleifen.

OpenVMS kann auch dazu verwendet werden, gängige Open Source-Software zu betreiben. Zum Umfang der Open Source-Kits zählen unter anderem:

  • Samba
  • Apache / PHP
  • Tomcat
  • MariaDB / PostgreSQL
  • Perl / Python / Ruby
  • MQTT / ActiveMQ / ZeroMQ

OpenVMS und Windows

OpenVMS zählt nicht zu den unixoiden Systemen wie oft fälschlicherweise angenommen wird. Das Gegenteil ist der Fall: es hat sogar mehr mit Windows gemeinsam - genauer gesagt - Windows NT hat mehr mit OpenVMS gemeinsam. Das ist vor allem Dave Cutler zu verdanken - einem Softwareentwickler bei DEC. Er arbeitete im Rahmen von Project Starlet an einer Reihe neuer Konzepte für ein neues Betriebssystem für die 32-bit-Erweiterung der PDP-11 (Project Star). Die Entwicklungen flossen in das spätere VMS ein. Cutler wechselte 1988 mit 20 VMS-Entwicklern im Schlepptau von DEC zu Microsoft und leitete dort die Entwicklung von Windows NT. Bill Gates war damals überzeugt davon, dass dieser Schritt notwendig sei um ein "New Technlogy" Betriebsystem zu entwickeln, das mit UNIX konkurrieren kann. Einer der Entwicklungsgrundsätze war die Kompatibilität alter Software - ein Grundsatz, der sich auch in VMS findet. Dave Cutler war auch an der Portierung von Windows XP Professional und Server 2003 auf AMD64 beteiligt.

Zu den auffälligen Gemeinsamkeiten zwischen OpenVMS und Windows zählen unter anderem:

  • Laufwerke werden nicht als Pfad eingehängt sondern einem Buchstaben zugeordnet
  • Das FAT-Dateisystemfamilie unterscheidet - ähnlich wie das in VMS verwendete Files-11 - nicht zwischen Groß-/Kleinschreibung (case-insensitve)
  • Einige im VMS-Mikrokernel enthaltene Subsysteme (wie z. B. Process Manager, I/O Manager, Virtual Memory Manager) finden sich in überarbeiteter Form und Sprache (C anstatt Assembler) in NT wieder
  • In beiden Kerneln finden sich 32 Prioritäten für Prozesse sowie ein Leerlaufprozess
  • Beide Systeme bieten ein modulares I/O-System mit austauschbaren und kombinierbaren Treibern sowie asynchronen paketbasierten Requests
  • Die NT-Programme Performance Monitor und NT Backup sind Klone der VMS-Tools MONITOR und BACKUP
Note

Weitere Details finden sich in einem archivierten Artikel von Mark Russinovich und einem weiteren Artikel.

Heutige Relevanz

OpenVMS ist in der Regel ausschließlich bei Bestandskunden mit besonderes langen Vertragslaufzeiten und Verpflichtungen (meistens im öffentlichen oder finanziellen Sektor) anzutreffen. So findet man die Systeme durchaus bei militärischen Einrichtungen, Krankenhäusern, Banken und Börsen. Früher wurden auch oftmals SMS-Versandssysteme damit betrieben. Einer der Gründe für die Wahl auf VMS als Betriebssystem ist die hervorragende Unterstützung von Fortran, COBOL und Ada. VSI erhofft sich durch die Modernisierung von VMS allerdings auch den ein oder anderen Neukunden - ich bin gespannt, welche Entwicklungen hier zu beobachten sind.

VSI Web-Seminar

Am vergangenen 19.Mai 2020 hat VSI zu einem Web-Seminar über die x86-Entwicklungen und deren Zukunft eingeladen. Das Interesse war dabei so groß, dass die Anmeldungszahlen höher waren als die sämtlicher Online-Events der letzten zwei Jahre. Das Seminar wurde von Terry R. Holmes (Chief Revenue Officer bei VSI) moderiert; Clair Grant (Chief Technology Officer bei VSI), welcher schon bei den bisherigen Plattformwechsel mitwirkte, demonstrierte den aktuellen Entwicklungsstand in einer VirtualBox-VM.

Note

Die Aufzeichnung des Seminars gibt es inzwischen auf YouTube.

OpenVMS-Bootloader in einer VirtualBox-VM

Mit großer Freude habe ich zur Kenntnis genommen, dass VSI das bisherige OpenVMS Hobbyist-Programm weiterführt. So können Hobbyisten (wie ich) kostenlos OpenVMS im beschränkten Rahmen privat einsetzen, ohne hierfür Software-Lizenzen erwerben zu müssen. Die Lizenz ist zeitlich beschränkt, kann aber erneuert/ersetzt werden - in Zukunft sollen neben Alpha auch Itanium und x86 im Programm enthalten sein.

Beim x86-Port wurde nicht der Ansatz verfolgt, OpenVMS möglichst einfach zu virtualisieren - vielmehr soll OpenVMS dahingehend erweitert werden, um auf einigen auserwählten Hypervisoren lauffähig zu sein. Neben VirtualBox (welches VSI für Entwicklungszwecke nutzt), wurden auch KVM und VMware fokussiert. Aktuell sind VirtualBox und KVM lauffähig, während der VMware-Support noch in Arbeit ist. Hyper-V spielt derzeit noch keine große Rolle, aber VSI gibt an die Marktentwicklungen weiterhin zu beobachten und ggf. den Fokus zu erweitern. Derzeit entwickelt VSI die für die Virtualisierung notwendigen Treiber eigenständig - ob es offiziellen OpenVMS-Support bei den entsprechenden Hypervisor-Tools (z. B. VirtualBox Guest Additions, KVM guest drivers, open-vm-tools) geben wird, ist derzeit noch unklar. Konkrete Pläne, OpenVMS innerhalb eines Containers zu betreiben, beispielsweise in Docker, hat VSI derzeit nicht. Für die Zukunft plant VSI Tests mit HP und DELL, um OpenVMS auf einigen auserwählten Plattformen mit Intel- und AMD-Technologie betreiben zu können.

OpenVMS Bootvorgang unter x86

Um das Migrieren bestehender Applikationen zu erleichtern, stellt VSI ein Cross Tools Kit bereit. Mithilfe dieses Kits kann Software auf einem Itanium-basierten System kompiliert und gelinkt und anschließend auf x86 ausgeführt werden (cross-compiler). Dieses Kit unterstützt derzeit Fortran, Pascal und C. Cobol und BASIC sind in Arbeit, für C++ und Java gibt es derzeit keine Pläne. Für Alpha wird es voraussichtlich kein entsprechendes Kit geben.

Am 15.05.2020 wurde das OpenVMS 9.0 EAK (Early Adopter Kit) an den ersten Kunden ausgeliefert, bis Ende des Jahres soll das Kit sukzessive an 40 Kunden ausgeliefert werden. Das erhaltene Feedback soll in OpenVMS eingearbeitet werden, bevor Version 9.1 EAK allen Kunden zugänglich gemacht wird.

OpenVMS 9.0 EAK enthält alle internen Funktionen des Betriebssystem sowie unter anderem DCL, Pipe-Support und Batch-Jobs. Darauf aufbauende Tools (Layered Products), wie beispielsweise das Open Source-Kit, stehen noch nicht zur Verfügung. Damit richtet sich das EAK vor allem an Kunden, die mit ihren Tests beginnen wollen, bevor die benötigten Applikationen migriert werden können. Weitere Aktualisierungen in Version 9.1 EAK sind prinzipiell Neuinstallationen und keine herkömmlichen Update Kits. Diese sollen weitere Compiler und Kits enthalten - geplant sind diese Aktualisierungen ab 2021.

Zu den fehlenden Funktionen, die bis Version 9.2 noch zu implementieren sind, zählen unter anderem:

  • SMP-Support
  • Cluster-Betrieb
  • Volume Shadowing
  • Privilegierte Applikationen (z. B. Gerätetreiber, die interne Routinen kontrollieren müssen)

Darüber hinaus sollen weitere Verbesserungen der Stabilität und Netzwerk-/Storage-Performance die erste offizielle x86-Version abrunden.

Fazit

Auch wenn ich beruflich keinerlei Berührungspunkte mit OpenVMS hatte (und vermutlich auch nicht haben werde), verfolge ich OpenVMS schon seit Jahren mit großem Interesse. Meine ersten Erfahrungen habe ich 2012 gemacht, als ich das Betriebssystem auf einem Itanium-basierten Server installierte. Im Vergleich zum Alpha-Simulator, den ich vorher verwendete, lief das System deutlich runder. Da mich exotische Betriebssysteme prinzipiell interessieren, hat es mir viel Spaß gemacht, die Grundlagen des Betriebssystems zu lernen.

Aus Kostengründen verschwand der Itanium-Server einige Jahre später - aber vielleicht kann ich OpenVMS bald ja wieder nativ im Homelab benutzen. 🙂

Übersetzungen: