VMS
INTRODUCTIONI found an article on the Internet that describes quite well the OpenVMS operating system. I have not been able to identify the author. As well, I have only found two references to the article. Before it disappears entirely from the Internet as other VAX/VMS sites have (e.g. Hoffman Labs, etc.). I'm copying the verbatim text of the article (with some minor changes). The original author wrote an excellent summary and research of the VMS operating system. It's preserved here for those who would like a great introduction to OpenVMS.
The VMS Operating SystemOpenVMS, often referred to as just VMS, is a multi-user, multiprocessing virtual memory-based operating system designed to support time-sharing, batch processing, transaction processing and workstation applications. It was first announced by Digital Equipment Corporation (DEC) as VAX/VMS (Virtual Address eXtension/Virtual Memory System) with the VAX-11/780 minicomputer in 1977. OpenVMS has subsequently been ported to run on DEC Alpha systems, the Itanium-based HPE Integrity family of computers, and select x86-64 hardware and hypervisors. Since 2014, OpenVMS is developed and supported by a company named VMS Software Inc. (VSI).
VMS offers high availability through clustering and the ability to distribute the system over multiple physical machines, allowing clustered applications and data to remain continuously accessible while operating system software and hardware maintenance and upgrades are performed, or when a whole data center is destroyed. VMS cluster up-times of up to 17 years have been reported. Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers. During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide. Among the many uses were integrated circuit fabrication running VMS systems, many Canadian financial firms ran VAX/VMS systems (Scotia McLeod, Royal Bank of Canada, etc.) and flight simulator manufacturer CAE used many VMS based systems in their simulators.
HistoryIn April 1975, Digital Equipment Corporation embarked on a hardware project, code named Star, to design a 32-bit virtual address extension to its PDP-11 computer line. A companion software project, code named Starlet, was started in June 1975 to develop a totally new operating system, based on RSX-11M, for the Star family of processors. These two projects were tightly integrated from the beginning. Gordon Bell was the VP lead on the VAX hardware and its architecture. Roger Gourd was the project lead for the Starlet program, with software engineers Dave Cutler (who would later lead development of Microsoft's Windows NT), Dick Hustvedt, and Peter Lipman acting as the technical project leaders, each having responsibility for a different area of the operating system. The Star and Starlet projects culminated in the VAX-11/780 computer and the VAX/VMS operating system. The Starlet name survived in VMS as a name of several of the main system libraries, including STARLET.OLB and STARLET.MLB.

With the introduction of the MicroVAX range such as the MicroVAX I, MicroVAX II and MicroVAX 2000 in the mid-to-late 1980s, DIGITAL released a MicroVMS version specifically targeted for these platforms which had much more limited memory and disk capacity. MicroVMS kits were released for VAX/VMS 4.0 to 4.7 on TK50 tapes and RX50 floppy disks, but discontinued with VAX/VMS V5.0.
Beginning in 1989, a short lived distribution of VMS named Desktop-VMS was sold with VAXstation systems. It consisted of a bundle of VMS, DECwindows, DECnet, VAXcluster support, and software that was designed to help non-technical users set up their workstation without assistance. Desktop-VMS had its own versioning scheme beginning with V1.0, which corresponded to the V5.x releases of VAX/VMS.
In July 1992, Digital renamed VAX/VMS to OpenVMS as an indication for its support of "open systems" industry standards such as POSIX and Unix compatibility, and to drop the VAX connection since the port to Alpha was underway. The OpenVMS name was first used with the OpenVMS AXP V1.0 release in November 1992. Digital began using OpenVMS VAX instead of VAX/VMS with the V6.0 release in June 1993
OpenVMS Port to AlphaDuring the 1980s, Digital planned to replace the VAX platform and the VMS operating system with the PRISM architecture and the MICA operating system. When these projects were canceled in 1988, a team was set up to design new VAX/VMS systems of comparable performance to RISC-based Unix systems. After a number of failed attempts to design a faster VAX-compatible processor, the group demonstrated the feasibility of porting VMS and its applications to a RISC architecture based on PRISM. This led to the creation of the Alpha architecture. The project to port VMS to Alpha began in 1989, and first booted on a prototype Alpha EV3-based Alpha Demonstration Unit in early 1991. Prior to the availability of Alpha hardware, OpenVMS was developed and booted on an emulator named Mannequin, which implemented many of the Alpha instructions in custom microcode on a VAX 8800 system.
The main challenge in porting VMS to a new architecture was that VMS and the VAX were designed together, meaning that VMS was dependent on certain details of the VAX architecture. Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in VAX MACRO assembly code. Some of the changes needed to decouple VMS from the VAX architecture included:
- The creation of the MACRO-32 compiler, which treated VAX MACRO as a high-level language, and compiled it to Alpha object code.
- The creation of a VAX to Alpha binary translator, known as the VAX Environment Software Translator (VEST), which was capable of translating VAX executables when it was not possible to recompile the code for Alpha.
- The emulation of certain low-level details of the VAX architecture in PALcode, such as interrupt handling and atomic queue instructions. This decreased the amount of VAX-dependent code which had to be rewritten for Alpha.
- The conversion of VMS' compilers, many of which had their own bespoke VAX code generators, to use a common compiler backend named GEM.
The VMS port to Alpha resulted in the creation of two separate source code libraries (based on a source code management tool known as the VMS Development Environment, or VDE) for VAX, and for Alpha. The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2. 1992 saw the release of the first version of OpenVMS for Alpha AXP systems, designated OpenVMS AXP V1.0. In 1994, with the release of OpenVMS V6.1, feature (and version number) parity between the VAX and Alpha variants was achieved, this was the so-called Functional Equivalence release. The decision to use the 1.x version numbering stream for the pre-production quality releases of OpenVMS AXP caused confusion for some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms.
When VMS was ported to Alpha, it was initially left as a 32-bit only operating system. This was done to ensure backwards compatibility with software written for the 32-bit VAX. 64-bit addressing was first added for Alpha in the V7.0 release. In order to allow 64-bit code to inter-operate with older 32-bit code, OpenVMS does not create a distinction between 32-bit and 64-bit executables, but instead allows for both 32-bit and 64-bit pointers to be used within the same code. This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TB (a 43-bit address space), which is the maximum supported by the Alpha 21064 and Alpha 21164.
One of the more noteworthy Alpha-only features of OpenVMS was OpenVMS Galaxy - which allowed the partitioning of a single SMP server to run multiple instances of OpenVMS. Galaxy supported dynamic resource allocation to running partitions, and the ability to share memory between partitions.
OpenVMS Port to Intel ItaniumIn 2001, just prior to its acquisition by Hewlett-Packard, Compaq announced the port of OpenVMS to the Intel Itanium architecture. The Itanium port was the result of Compaq's decision to discontinue future development of the Alpha architecture in favour of adopting the then-new Itanium architecture.The porting began in late 2001, and the first boot on took place on the 31st of January 2003. The first boot consisted of booting a minimal system configuration on a HP i2000 workstation, logging in as the SYSTEM user, and running the DIRECTORY command.
The Itanium port was accomplished using source code maintained in common within the OpenVMS Alpha source code library, with the addition of conditional code and additional modules where changes specific to Itanium were required. Whereas the VAX and Alpha architectures were specifically designed to support the low-level needs of OpenVMS, Itanium was not. This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included:
- The Extensible Firmware Interface (EFI) is used to boot OpenVMS on the Integrity platform, taking over the role of the System Reference Manual (SRM) firmware on Alpha. Support for ACPI was also added to OpenVMS, since this is used to discover and manage hardware devices on the Integrity platform.
- For Itanium, the functionality which was implemented using PALcode for Alpha was moved into a component of the OpenVMS kernel named the Software Interrupt Services (SWIS).
- The Itanium port adopted a new calling standard based on Intel's Itanium calling convention, with extensions to support the OpenVMS Common Language Environment. Furthermore, it replaced the OpenVMS-specific executable formats used on the VAX and Alpha with the standard Executable and Linking Format (ELF) and DWARF formats.
- IEEE 754 was adopted as the default floating point format, replacing the VAX floating point format that was the default on both the VAX and Alpha architectures. For backwards compatibility, it is possible to compile code on Itanium to use the VAX floating point format, but it relies on software emulation.
- The operating system's internal structures were extended to support the 50-bit physical addressing available on Itanium, allowing 1PiB of memory to be addressed. The Itanium port otherwise retained the mixed 32-bit/64-bit pointer architecture which was introduced in OpenVMS Alpha V7.0.
As with the VAX to Alpha port, a binary translator for Alpha to Itanium was made available, allowing user mode OpenVMS Alpha software to be ported to Itanium in situations where it was not possible to recompile the source code. This translator is known as the Alpha Environment Software Translator (AEST), and it also supported translating VAX executables which had already translated with VEST.
The Itanium port was officially named HP OpenVMS Industry Standard 64 for Integrity Servers, although the name OpenVMS I64 is more commonly used. Two pre-production releases, OpenVMS I64 V8.0 and V8.1, were available on June 30, 2003 and on December 18, 2003. These releases were intended for HP organizations and third-party vendors involved with porting software packages to OpenVMS I64. The first production release, V8.2, was released in February 2005. V8.2 was also released for Alpha, subsequent V8.x releases of OpenVMS have maintained feature parity between the Alpha and Itanium architectures.
OpenVMS Port to X86-64When VMS Software Inc. (VSI) announced that they had secured the rights to develop the OpenVMS operating system from HP, they also announced their intention to port OpenVMS to the x86-64 architecture. The porting effort ran concurrently with the establishment of the company, as well as the development of VSI's own Itanium and Alpha releases of OpenVMS 8.x.
The x86-64 port is targeted for specific servers from HPE and Dell, as well as certain virtual machine hypervisors. Initial support was targeted for KVM and VirtualBox. Support for VMware was announced in 2020, and Hyper-V has been described as a future target.
The x86-64 port is built from the same source code library as the Alpha and Itanium architectures, using conditional compilation to manage the architecture-specific code needed to support the x86-64 platform. As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform:
- VSI adopted the open source LLVM compiler back-end, replacing the proprietary GEM back-end used in the Alpha and Itanium ports. A translator was developed to map the GEM IR to LLVM IR, allowing the existing compiler front-ends to be reused. In addition, the open source Clang compiler was adopted as the officially supported C++ compiler for OpenVMS under x86-64.
- On x86-64, OpenVMS makes more extensive use of UEFI and ACPI to detect and initialize hardware on boot. As part of this, VMS is now booted from a memory disk, instead of the traditional VMS boot mechanism – which relied on "boot drivers" containing a basic implementation of the file system, and which was tied to specific hardware devices. The changes to the boot process necessitated the creation of a "Dump Kernel" – this is a secondary kernel which is loaded in the background at boot time, and is invoked in case OpenVMS needs to write a crash dump to disk.
- OpenVMS assumes the presence of four hardware-provided privilege levels to provide isolation between user applications, and various parts of the operating system. While x86-64 nominally provides four privilege levels, they are only equivalent to two of the privilege levels on the VAX, Alpha and Itanium. In the x86-64 port, the Software Interrupt Services (SWIS) module of the kernel is extended to emulate the missing privilege levels.
- As with the Itanium port, the calling standard for x86-64 is an extension of the platform's standard calling convention, specifically the System V AMD64 ABI. Certain characteristics of the x86-64 architecture created challenges for defining a suitable calling standard. For example, due to the small number of general purpose registers for x86-64, the MACRO-32 compiler has to store the contents of the emulated VAX registers in an in-memory "pseudo registers" structure instead of using the processor's hardware registers as is done on Alpha and Itanium.
The first boot was announced on 14 May 2019. This involved booting OpenVMS on VirtualBox, and successfully running the DIRECTORY command. Later in 2019, the first "real boot" was announced - this consisted of the operating system booting in a completely standard manner, a user logging into the system, and running the DIRECTORY command. In May 2020, the V9.0 Early Adopter's Kit release was made available to a small number of customers. This consisted of the OpenVMS operating system running in a VirtualBox VM with certain limitations - most significantly, few layered products were available, and code can only be compiled for x86-64 using cross compilers which run on Itanium-based OpenVMS systems. Following the V9.0 release, VSI released a series of updates on a monthly or bimonthly basis which added additional functionality and hypervisor support. These were designated V9.0-A through V9.0-H.
ARCHITECTUREThe OpenVMS operating system has a layered architecture, consisting of a privileged Executive, a Command Language Interpreter which runs at an intermediate level of privilege, and utilities and run-time libraries (RTLs) which run in an unprivileged mode, but can potentially run at a higher level of privilege if authorized to do so. Unprivileged code typically invokes the functionality of the Executive through system services (equivalent to system calls in other operating systems). OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:
- The availability of four processor access modes (named Kernel, Executive, Supervisor and User, in order of decreasing privilege). Each mode has its own stack, and each memory page can have memory protections specified per-mode.
- A virtual address space which is partitioned between process-private space sections, and system space sections which are common to all processes.
- 32 interrupt priority levels which are used for synchronization.
- Hardware support for delivering asynchronous system traps to processes.
These VAX architecture mechanisms are implemented on Alpha, Itanium and x86-64 by either mapping to corresponding hardware mechanisms on those architectures, or through emulation (via PALcode on Alpha, or in software on Itanium and x86-64).
Executive and KernelThe OpenVMS Executive comprises the privileged code and data structures which reside in the system space. The Executive is further subdivided between the Kernel, which consists of the code which runs at the kernel access mode, and the less-privileged code outside of the Kernel which runs at the executive access mode.
The components of the Executive which run at executive access mode include the Record Management Services, and certain system services such as image activation. The main distinction between the kernel and executive access modes is that most of the operating system's core data structures can be read from executive mode, but require kernel mode to be written to. Code running at executive mode can switch to kernel mode at will, meaning that the barrier between the kernel and executive modes is intended as a safeguard against accidental corruption as opposed to a security mechanism.
The Kernel compromises the operating system's core data structures (e.g. page tables, the I/O database and scheduling data), and the routines which operate on these structures. The Kernel is typically described as having three major subsystems: I/O, Process and Time Management, Memory Management. In addition, other functionality such as logical name management, synchronization and system service dispatch are implemented inside the Kernel.
Executive StructureIn early versions of VAX/VMS, most of the Executive's code was linked into a single executable image named SYS.EXE. VAX/VMS 5.0 introduced the Modular Executive, which split the Executive code into a number of executive images (also known as execlets) which are loaded during system bootstrap. SYS.EXE remained, but was reduced to system service dispatch vectors, static memory locations for data common to multiple executive images, and some basic support code. On OpenVMS for Alpha, Itanium and x86-64, SYS.EXE is further subdivided into SYS$BASE_IMAGE.EXE and SYS$PUBLIC_VECTORS.EXE, which contain the shared memory locations and support code, and the system service dispatch logic, respectively.
Extension MechanismsOpenVMS allows user mode code with suitable privileges to switch to executive or kernel mode using the $CMEXEC and $CMKRNL system services, respectively. This allows code outside of system space to have direct access to the Executive's routines and system services. In addition to allowing third-party extensions to the operating system, Privileged Images are used by core operating system utilities to manipulate operating system data structures through undocumented interfaces.
OpenVMS also allows Shareable Images (i.e. shared libraries) to be granted privilege, allowing the creation of "user-written system services", which are privileged routines which can be linked into a non-privileged program. User written system services are invoked using the same mechanism as standard system services, which prevents the unprivileged program from gaining the privileges of the code in the Privileged Shareable Image. Despite what the name may suggest, user-written system services are also used to implement seldom-used operating system functionality such as volume mounting.
File SystemOpenVMS provides feature-rich facilities for file management. The typical user and application interface into the file system is via the Record Management Services (RMS), although applications can interface directly with the underlying file system through the QIO system services. RMS supports multiple record-oriented file access methods and record formats (including a stream format where the file is treated as a stream of bytes, similar to Unix). RMS also supports remote file access via DECnet, and optional support for journaling.
The file systems supported by VMS are referred to as the Files-11 On-Disk Structures (ODS), which provide disk quotas, access control lists and file versioning. The most significant structure levels are ODS-2, which is the original VMS file system, and ODS-5, which extended ODS-2 with support for Unicode file names, case sensitivity, hard links and symbolic links. VMS is also capable of accessing files on ISO 9660 CD-ROMs and magnetic tape with ANSI tape labels.
Alongside the OpenVMS Alpha V7.0 release in 1995, Digital released a log-structured file system named Spiralog which was intended as a potential successor to Files-11. Spiralog shipped as an optional product, and was discontinued at the release of OpenVMS Alpha 7.2. Spiralog's discontinuation was due to a variety of problems, including issues with handling full volumes. The developers of Spiralog began work on a new file system in 1996, which was put on hold and later resumed by VSI in 2016 as the VMS Advanced File System (VAFS, not to be confused with Digital's AdvFS for Tru64). VAFS no longer appears on recent roadmaps, and instead VSI have discussed porting the open source GFS2 file system to OpenVMS. One of the major motivations for replacing the Files-11 structures is that they are limited to 2TB volumes.
Command Language Interpreter (CLI)An OpenVMS Command Language Interpreter (CLI) implements a command line interface for OpenVMS; responsible for executing individual commands, as well as command procedures (equivalent to shell scripts or batch files). The standard CLI for OpenVMS is the DIGITAL Command Language, although other options are available as well.
Unlike Unix shells, which typically run in their own isolated process and behave like any other user mode program, OpenVMS CLIs are an optional component of a process, which exist alongside any executable image which that process may run. Whereas a Unix shell will typically run executables by creating a separate process using fork-exec, an OpenVMS CLI will typically load the executable image into the same process, transfer control to the image, and ensure that control is transferred back to CLI once the image has exited and that the process is returned to its original state. A CLI gets mapped into a process' private address space through execution of the LOGINOUT image, which can either be executed manually, or automatically by certain process creation system services.
Due to fact that the CLI is loaded into the same address space as user code, and that the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into memory at supervisor access mode. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user mode code.
USER INTERFACESVMS was originally designed to be used and managed interactively using Digital's text-based video terminals such as the VT100, or hardcopy terminals such as the DECwriter series. Since the introduction of the VAXstation line in 1984, VMS has optionally supported graphical user interfaces for use with workstations or X terminals.
Command Line InterfaceThe DIGITAL Command Language (DCL) has served as the primary Command Language Interpreter (CLI) of OpenVMS since the first release. Other official CLIs available for VMS include the RSX-11 MCR (VAX only), and various Unix shells. Digital provided tools for creating text-based user interface applications – the Form Management System (FMS) and Terminal Data Management System (TDMS), later succeeded by DECforms. A lower level library, comparable to Unix curses called the Screen Management Services (SMG$) also exists.
Graphical User InterfacesVMS has gone through a number of different GUI toolkits and interfaces:
- The original graphical user interface for VMS was a proprietary windowing system known as the VMS Workstation Software (VWS), which was first released for the VAXstation I in 1984. It exposed an API called the User Interface Services (UIS). It ran on a limited selection of VAX hardware
- In 1989, DEC replaced VWS with a new X11-based windowing system named DECwindows. It was first included in VAX/VMS V5.1. Early versions of DECwindows featured an interface built on top of a proprietary toolkit named the X User Interface (XUI). A layered product named UISX was provided to allow VWS/UIS applications to run on top of DECwindows.
- In 1991, DEC replaced XUI with the Motif toolkit, creating DECwindows Motif. As a result, the Motif Window Manager became the default DECwindows interface in OpenVMS V6.0, although the XUI window manager remained as an option.
- In 1996, as part of OpenVMS V7.1, DEC released the "New Desktop" interface for DECwindows Motif. The New Desktop consisted of a significant subset of the Common Desktop Environment. On Alpha and Itanium systems, it is still possible to select the older MWM-based UI (referred to as the "DECwindows Desktop") at login time. The New Desktop was never ported to the VAX releases of OpenVMS.

Versions of VMS running on DEC Alpha workstations in the 1990s supported OpenGL and Accelerated Graphics Port (AGP) graphics adapters. VMS also provides support for older graphics standards such as GKS and PHIGS. Modern versions of DECwindows are based on X.org Server.
CLUSTERSOpenVMS supports clustering (first called VAXcluster and later VMScluster), where multiple systems run their own instance of the operating system, but share disk storage, processing, a distributed lock manager, a common management and security domain, job queues and print queues, providing a single system image abstraction. The systems are connected either by proprietary specialized hardware (Cluster Interconnect) or an industry-standard Ethernet LAN. OpenVMS supports up to 96 nodes in a single cluster, and allows mixed-architecture clusters, where VAX and Alpha systems, or Alpha and Itanium systems can co-exist in a single cluster. VMS clusters allow the creation of applications which can withstand planned or unplanned outages of part of the cluster.
NETWORKINGDigital's DECnet protocol suite is tightly integrated into VMS, allowing remote logins, as well as transparent access to files, printers and other resources on VMS systems over a network. Modern versions of VMS support both the traditional Phase IV DECnet protocol, as well the OSI-compatible Phase V (also known as DECnet-Plus). Support for TCP/IP is provided by the optional TCP/IP Services for OpenVMS layered product (originally known as the VMS/ULTRIX Connection, then as the ULTRIX Communications Extensions or UCX). TCP/IP Services is based on a port of the BSD network stack to OpenVMS, along with support for common protocols such as SSH, DHCP, FTP and SMTP. Due to the fact that the official TCP/IP stack was introduced relatively late, multiple third party TCP/IP stacks have been created for VMS. Some of these third party TCP/IP stacks remain under active development, such as TCPware and MultiNet.
Digital sold a software package named PATHWORKS (originally known as the Personal Computer Systems Architecture or PCSA) which allowed personal computers running MS-DOS, Microsoft Windows or OS/2, or the Apple Macintosh to serve as a terminal for VMS systems, or to use VMS systems as a file or print server. PATHWORKS was based on LAN Manager and supported either DECnet or TCP/IP as a transport protocol. PATHWORKS was later renamed to Advanced Server for OpenVMS, and was eventually replaced with a VMS port of Samba at the time of the Itanium port.
Digital provided the Local Area Transport (LAT) protocol which allowed remote terminals and printers to be attached to a VMS system through a terminal server.
PROGRAMMING LANGUAGESDigital (and its successor companies) provided a wide variety of programming languages for VMS. Officially supported languages on VMS, either current or historical, include:
VAX MACRO, BLISS, C, DCL, Fortran, Pascal, COBOL, BASIC, C++, Java, Common Lisp, APL, Ada, PL/I, DIBOL, CORAL 66, OPS5, RPG II, MUMPS, MACRO-11, DECTPU, VAX SCANAmong OpenVMS's notable features is the Common Language Environment, a strictly defined standard that specifies calling conventions for functions and routines, including use of stacks, registers, etc., independent of programming language. Because of this, it is possible to call a routine written in one language (for example, Fortran) from another (for example, COBOL), without needing to know the implementation details of the target language. OpenVMS itself is implemented in a variety of different languages and the common language environment and calling standard supports freely mixing these languages. Digital created a tool named the Structure Definition Language (SDL), which allowed data type definitions to be generated for different languages from a common definition.
SOFTWARE DEVELOPMENT TOOLSDigital provided a collection of software development tools in a layered product named DECset (originally named VAXset). This consisted of the Language-Sensitive Editor (LSE), a version control system (the Code Management System or CMS), a build tool (the Module Management System or MMS), a static analyzer (the Source Code Analyzer or SCA), a profiler (the Performance and Coverage Analyzer or PCA) as well as a test manager (the Digital Test Manager or DTM). In addition, a number of text editors are included in the operating system, including EDT, EVE and TECO.
The OpenVMS Debugger supports all DEC compilers and many third party languages. It allows breakpoints, watchpoints and interactive runtime program debugging either using a command line or graphical user interface. A pair of lower-level debuggers, called DELTA and XDELTA, can be used to debug privileged code in additional to normal application code.
In 2019, VSI released an officially-supported Integrated Development Environment for VMS based on Visual Studio Code. This allows VMS applications to be developed and debugged remotely from a Microsoft Windows, Apple MACOS or Linux workstation.
DATABASESDigital created a number of optional database products for VMS, some of which were marketed as the VAX Information Architecture family. These products included:
- Rdb – A relational database system which originally used the proprietary Relational Data Operator (RDO) query interface, but later gained SQL support.
- DBMS – A database management system which uses the CODASYL network model and Data Manipulation Language (DML). Digital Standard MUMPS (DSM) – an integrated programming language and key-value database.
- Common Data Dictionary (CDD) – a central database schema repository, which allowed schemas to be shared between different applications, and data definitions to be generated for different programming languages.
- DATATRIEVE – a query and reporting tool which could access data from RMS files as well as Rdb and DBMS databases.
- Application Control Management System (ACMS) – A transaction processing monitor, which allows applications to be created using a high-level Task Description Language (TDL). Individual steps of a transaction can be implemented using DCL commands, or Common Language Environment procedures. User interfaces can be implemented using TDMS, DECforms or Digital's ALL-IN-1 office automation product.
- RALLY, DECadmire – Fourth-generation programming languages (4GLs) for generating database-backed applications. DECadmire featured integration with ACMS, and later provided support for generating Visual Basic client-server applications for Windows PCs.
In 1994, Digital sold Rdb, DBMS and CDD to Oracle, where they remain under active development. In 1995, Digital sold DSM to InterSystems, who renamed it Open M, and eventually replaced it with their Caché product. Examples of third-party database management systems for OpenVMS include MariaDB, Mimer SQL and System 1032.
SECURITYOpenVMS provides various security features and mechanisms, including security identifiers, resource identifiers, subsystem identifiers, ACLs, intrusion detection and detailed security auditing and alarms. Specific versions evaluated at DoD NCSC Class C2 and, with the SEVMS security enhanced services support, at NCSC Class B1, per the NCSC Rainbow Series. OpenVMS also holds an ITSEC E3 rating (see NCSC and Common Criteria). Passwords are hashed using the Purdy Polynomial.
VulnerabilitiesA 33-year-old vulnerability in VAX/VMS and OpenVMS Alpha, was discovered in 2017 and assigned the CVE ID CVE-2017-17482. On the affected platforms, this vulnerability allowed an attacker with access to the DCL command line to bypass system security and take full control of the system. The vulnerability relies on exploiting a buffer overflow bug in the DCL command processing code, the ability for a user to interrupt a running image (program executable) with CTRL/Y and return to the DCL prompt, and the fact that DCL retains access to the privileges of the images that it requests to be loaded into the DCL process when the image is interrupted. The buffer overflow bug allowed shell code to be executed with the privileges of an interrupted image, and thus allowing an attacker to carry out a privilege escalation attack.
Cross Platform CompatibilityVAX/VMS originally included an RSX-11M compatibility layer named the RSX Application Migration Executive (AME) which allowed user mode RSX-11M software to be run unmodified on top of VMS. This relied on the PDP-11 compatibility mode implemented in the VAX-11 processors. The RSX AME played an important role on early versions of VAX/VMS, which used re-used certain RSX-11M user space utilities before native VAX versions had been developed. This was discontinued in VAX/VMS V3.0 when all compatibility mode utilities were replaced with native implementations, and RSX AME was removed from the base system. At this point, RSX AME was replaced with an optional layered product on VAX named VAX-11 RSX, which relied on software emulation to run PDP-11 code on newer VAX processors. A VAX port of the RTEM compatibility layer for RT-11 applications was also available from Digital.
Various official Unix compatibility layers were created for VMS. The first of which was DEC/Shell - which was a layered product consisting of port of the Version 7 Unix Bourne Shell and several other Unix utilities to VAX/VMS. In 1992, Digital released the POSIX for OpenVMS layered product, which included a shell based on the Korn Shell. POSIX for OpenVMS was later replaced by the open source GNV (GNU's not VMS) project, which was first included in OpenVMS media in 2002.Amongst other GNU tools, GNV includes a port of the Bash shell to VMS. Examples of third party Unix compatibility layers for VMS include Eunice.
Digital licensed SoftPC (and later SoftWindows), and sold it as a layered product for both the VAX and Alpha architectures, allowing Windows and DOS applications to run on top of VMS.
In 1995, Digital announced Affinity for OpenVMS (also known as NT Affinity) which was intended to allow OpenVMS to serve as the persistence layer for Windows NT client-server applications. As part of this initiative, an implementation of the Distributed Component Object Model (DCOM) was added to OpenVMS Alpha, which first appeared in the V7.2-1 release.
INFLUENCEDuring the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain a strong degree of backwards compatibility with VMS applications while also supporting Ultrix applications on top of the same kernel. MICA was ultimately canceled along with the rest of the PRISM platform, leading Dave Cutler to leave Digital for Microsoft. At Microsoft, Cutler led the creation of the Windows NT operating system, which was heavily inspired by the architecture of MICA. As a result, VMS is considered an ancestor of Windows NT, together with RSX-11, VAXELN and MICA, and many similarities exist between VMS and NT. This lineage is made clear in Cutler's foreword to "Inside Windows NT" by Helen Custer (see below).
FreeVMS was an attempt to develop an open source operating system following VMS conventions. As of April 2019 the associated mailing list had been totally inactive for two years and shown limited activity for some years prior to that. FreeVMS supported the x86-64 architecture using an L4 micro kernel.
HOBBYIST PROGRAMMEDespite being a proprietary commercial operating system, in 1997 OpenVMS and a number of layered products were made available free of charge for hobbyist, non-commercial use as part of the OpenVMS Hobbyist Program. Since then, several companies producing OpenVMS software have made their products available under the same terms, such as Process Software and MVP Systems. In 2012, HP staff took over the administration of the hobbyist licenses. Registration was simplified, and software kits for operating system and layered products were made available on request via FTP download (previously it had to be shipped on CD).
OPEN SOURCE APPLICATIONSSome of the open source applications which have been ported to OpenVMS include:
Samba, Apache HTTP Server, Apache Tomcat, Info-Zip, GNU Privacy Guard, Perl, Python, Ruby, Lua, PHP, git, Subversion, MariaDB, Apache ActiveMQ, OpenSSL, Redis, ZeroMQ, SWIG, Wget, cURL, OpenJDK, Apache Axis, Scala, Gearman, Memcached, Firefox, Xpdf, Erlang, RabbitMQThere are a number of community projects to port open source software to VMS, including VMS-Ports and GNV (GNU's Not VMS). Some ported software will only work on Alpha servers, not on VAX based systems.
In March 2020, HPE announced that they were concluding the OpenVMS Hobbyist license program. This was followed by an announcement from VSI in April 2020 that VSI they would launch a Community License Program (CLP) to replace the old Hobbyist Program. The CLP was launched in July 2020, and provides licenses for VSI OpenVMS releases on Alpha and Integrity systems. OpenVMS x86-64 licenses will be available later as a more stable version is released for this architecture. OpenVMS for VAX is not covered by the CLP, since there are no VSI releases of OpenVMS VAX, and the old versions are still owned by HPE.
MICROSOFT WINDOWS NT INFLUENCEThe architect of the Windows NT operating system was David Cutler (Director, Windows NT Development), the same person who led the development of VMS and RSX-11. In the book "Inside Windows NT" by Helen Custer, David authored the foreword and explained his background and the evolution of RSX-11, VMS and into Windows NT. The book is a suggested read. The following section is a verbatim extract of the book's foreword.
November 1992
"In 1965, I graduated from college with a B.A. in mathematics, a minor in physics, and an overwhelming desire to be an engineer and to build things. So I took a job with DuPont in Wilmington, Delaware, as a materials testing engineer. After about a year of absolute boredom, I was lent to the mathematics and statistics group assigned to construct a computer simulation model for a new foam-making process that the Scott Paper Company was developing. Working with machines that never did what I meant them to was humiliating, but within six months I was hooked, and what I had shunned coming out of school -- computers -- turned into my life's vocation.
Soon after, I transferred to DuPont's engineering department, where I could program full time. DuPont had a small group that built online computer system applications. My real motivation for joining this group was to get closer to computers, and in fact, I wanted to work on implementing an operating system. While in the group, I had the good fortune to work on several stand-alone real-time systems where the project involved writing the central control program that scheduled the various tasks and monitored system activity as well as writing the actual application code.
It soon became apparent that the only way I was going to get the opportunity to work on implementing a real operating system was to join a company that made computers for a business. And so in 1971 I left DuPont for a job in Maynard, Massachusetts, with Digital Equipment Corporation (DEC). As it turned out, this put me in the operating system business for quite some time to come. Little did I know that I would be fortunate enough to develop several operating systems in my lifetime; developing one is a rare opportunity for anyone.
My first operating system project was to build a real-time system called RSX-11M that ran on Digital's PDP-11 16-bit series of minicomputers. At the time, our goals seemed very ambitious. We were asked to build a multitasking operating system that would run in 32 KB of memory with a hierarchical file system, application swapping, real-time scheduling, and a set of development utilities. The operating system and utilities were to run on the entire line of PDP-11 platforms, from the very small systems up through the PDP-11/70 which had memory-mapping hardware and supported up to 4 MB of memory.
I have many fond memories of how RSX-11M took shape, I had a rubber stamp made that proclaimed "Size Is the Goal" and proceeded to stamp every last bit of correspondence to make sure that all the programmers and project managers understood how important it was to achieve our goals. We also learned the power of conditional assembly (high level language use in operating systems was in its infancy at this time), and whenever someone added a feature, we just made it a system-generation option.
While developing RSX-11M, we spent most of our time engineering solutions to memory problems. Because the system had to run in 32 KB, we generated a memory budget that divided available memory equally between the operating system and the utility programs. That left a mere 16 KB for utility programs and led to long hours tuning overlay structures to achieve acceptable performance for many of the RSX-11M system programs.
Although RSX-11M had some very stringent size and performance constraints, of the systems I've worked on it was probably the easiest one to develop. It involved re-implementing an existing system but allowed us the freedom to change and subset the programming interfaces as long as programs could be reassembled or recompiled with minimal source-code changes. RSX-11M was introduced in 1973, 18 months after we started building it. It proved to be very successful and helped make the PDP-11 the most popular 16-bit minicomputer of its time.
The PDP-11 provided better price/performance than mainframes, was affordable at the department level, and along with other popular minicomputers of the same era, led to the first wave of "downsizing" in the computer industry. Downsizing was an attempt to "bring down" mainframe applications to the minicomputer systems. Many of the mainframe programs were larger than the PDP-11 could easily accommodate, and almost immediately Digital was up what Gordon Bell has deemed the single most important reason that computer architectures become obsolete: the lack of enough address bits.
Out of this need, the VAX architecture was born, and it became one of the most popular architectures of the late '70s and remained popular throughout the '80s. The VAX architecture provided 32 bits of virtual address space and eliminated the need to wrestle programs into what seemed to be an ever-decreasing amount of virtual address space.
My second opportunity to develop an operating system arrived with the VAX. I was very fortunate to be chosen to lead the operating system effort for the VAX-11 architecture, the result of which was the VMS operating system. VMS was Digital's second general-purpose time-sharing system, developed specifically for the VAX architecture. Because the VAX architecture had grown out of the tremendous success of the PDP-11, however, this time it was mandatory to provide more than source-level compatibility for applications. Thus the VAX-11 architecture included a PDP-11 compatibility mode which PDP-11 instructions were executed directly by hardware. At that time, it was inconceivable that a single operating system could support more than "compatibility environment". Although it wasn't the best known of the PDP-11 operating systems (amazingly, Digital had no fewer the 10 PDP-11 operating systems at one time or another!), RSX-11M was chosen as the operating system interface that would be emulated in PDP-11 compatibility mode on the VAX. This decision probably didn't make sense to a number of people outside the company, but RSX-11M had the largest number of application development tools, and had the most general-purpose operating system features, supporting multitasking, and had a file system structure that could be compatibly extended. Ultimately, the VAX-11 systems ran the RSX-11M binaries right off the distribution kit; it allowed RSX-11M volumes to be directly mounted and their files to be accessed and shared between RSX-11M compatibility-mode programs and native VMS programs.
From a technical perspective, the biggest mistake we made in VMS was not writing it in a high level language. At that time, we had a group of very accomplished assembly language programmers, some stringent size constraints, and no complier with the appropriate quality for operating system development. So, to ensure that we would ship the system in a marketable time frame, we wrote it in assembly language. Looking back on what happened, it would still be hard to make the decision to write VMS in a high-level language. (Moral: The right thing to do technically isn't always the best thing to do financially.)
Early in the '80s, while minicomputers were busy absorbing mainframe and other new applications, two important technologies were emerging: the personal computer (PC) and workstations. After the VMS project, I spent a few years developing compliers and then led a group that built Digital's first MicroVAX workstation -- the MicroVAX I. Workstations like the MicroVAX provided individual, high-performance computing for applications such as computer-aided design (CAD), whereas PCs supported business applications aimed at personal productivity, such as spread sheets and word processors -- two very successful early PC products. Although workstations were relatively pricey, personal computers had to be affordable to small businesses.
In order to meet price objectives, the original PCs were built with 8-bit, and later with 16-bit, microprocessors. They were constrained in much the same way RSX-11M had been and required considerable effort on the part of programmers and operating system designers to accommodate their limitations. Hardware resources were so scarce that operating systems existed mainly to handle a few low-level hardware functions and to provide a set of file system libraries. But the personal computer offered something that minicomputers did not -- a market in which independent software developers could sell their programs at a higher volume. As a result, the breadth and variety of applications that run on PCs and exploit their capabilities is truly amazing.
In the mid-'80s, microprocessors gained 32-bit addressing, and workstations were quick to take advantage of this capability. However, because of the very large installed base of personal computers and their applications, it was not easy to simply roll in another computer and then recompile and relink all the application software. End users of PCs simply didn't have the source code for all their programs, and they demanded binary compatibility.
In the summer of 1988, I received and interesting call from Bill Gates at Microsoft. He asked whether I'd like to come over and talk about building a new operating system at Microsoft for personal computers. At the time, I wasn't too interested in working on personal computers, but I thought this would be a good time to meet Bill and discuss what he had in mind. What Bill had to offer was the opportunity to build another operating system, one that was portable and addressed some of the concerns people had about using personal computers to run mission critical applications. For me, it meant the chance to build another operating system!
Bill finally convinced me that this was an opportunity I couldn't pass up, and in October of 1988, I came to Microsoft and started to build the team that would build the new operating system. I didn't realize it at the time, but this would be the most ambitious operating system project on which I had ever embarked. Our goals for the system included portability, security, POSIX compliance, compatibility, scalable performance (multi processor support), extensibility, and the ease of internationalization. Of all these goals, by far the one that was hardest to achieve and that had the most profound effect in the structure of the system was compatibility. Hundreds of thousands of PDP-11 systems had been sold, but tens of millions of personal computers were in operation! As if that weren't enough, we needed to compatibly support three separate 16-bit operating environments and add new 32-bit capabilities to free personal computer applications from the same kind of virtual address constraints that had existed for the PDP-11. To top it off, we wanted to support the UNIX standard interface specification called POSIX.
Now almost four years later, we are on the brink of bringing this system, Windows-NT, to market. Helen Custer started work on this book when the operating system design began. As our design has matured, the book has undergone continual change to track the operating system architecture. This has been an arduous task -- keeping up-to-date and writing and rewriting the various chapters of the book as the design evolved. Although it is our design, Helen is the one who has captured the essence of that design and made it understandable to more than just serious operating system implementers. For this, we owe Helen a great debt.
It is impossible to acknowledge all the people who have contributed to the design of Windows NT. I must say that I did not design Windows NT -- I was merely one of the contributors to design the system. As you read this book, you will be introduced to some, but not all, of the other contributors. This has been a team effort and has involved several hundred-person years of effort. Perhaps the most important contribution of all was made by the people who have tested and stressed the system. Without their effort, Windows NT could not have achieved the level of quality that it has achieved."
SUMMARY
Item | Description |
---|---|
Developer | VMS Software Inc (VSI)(previously Digital Equipment Corporation, Compaq, Hewlett-Packard) |
Written in | Primarily VAX MACRO, BLISS, C, DCL. Other languages also used. |
Source Model | Closed-source with open source components |
Initial Release | October 25, 1977 |
Marketing Target Audience | Servers (originally Minicomputers,Workstations) |
Available Languages | English, Japanese. Historical support for Chinese (both Traditional and Simplified characters), Korean, Thai. |
Installation Managers | PCSI and VMSINSTAL |
Kernel Type | Monolithic kernel with loadable modules |
Platforms | VAX, Alpha, Itanium, x86-64 |
User Interface | DCL CLI and DECwindows GUI |
License | Proprietary |
Official Site | https://vmssoftware.com/ |
- Getting Started with OpenVMS, Michael D. Duffy, ISBN 1-55558-279-6
- Introduction to OpenVMS, 5th Edition, Lesley Ogilvie Rice, ISBN 1-55558-194-3
- Ruth Goldenberg; Saro Saravanan (1994). OpenVMS AXP Internals and Data Structures: Version 1.5. Digital Press. ISBN 978-1555581206.
- OpenVMS Alpha Internals and Data Structures: Memory Management, Ruth Goldenberg, ISBN 1-55558-159-5
- OpenVMS Alpha Internals and Data Structures : Scheduling and Process Control : Version 7.0, Ruth Goldenberg, Saro Saravanan, Denise Dumas, ISBN 1-55558-156-0
- VAX/VMS Internals and Data Structures: Version 5.2 ("IDSM"), Ruth Goldenberg, Saro Saravanan, Denise Dumas, ISBN 1-55558-059-9
- Writing Real Programs in DCL, second edition, Stephen Hoffman, Paul Anagnostopoulos, ISBN 1-55558-191-9
- Writing OpenVMS Alpha Device Drivers in C, Margie Sherlock, Leonard Szubowicz, ISBN 1-55558-133-1
- OpenVMS Performance Management, Joginder Sethi, ISBN 1-55558-126-9
- Getting Started with OpenVMS System Management, 2nd Edition, David Donald Miller, Stephen Hoffman, Lawrence Baldwin, ISBN 1-55558-243-5
- The OpenVMS User's Guide, Second Edition, Patrick Holmay, ISBN 1-55558-203-6
- Using DECwindows Motif for OpenVMS, Margie Sherlock, ISBN 1-55558-114-5
- Wayne Sewell (1992). Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals. Van Nostrand Reinhold. ISBN 0-442-00474-5.
- The hitchhiker's guide to VMS : an unsupported-undocumented-can-go-away-at-any-time feature of VMS, Bruce Ellis, ISBN 1-878956-00-0
- Roland Hughes (December 2006). The Minimum You Need to Know to Be an OpenVMS Application Developer. ISBN 978-0-9770866-0-3.
- Inside Windows NT by Helen Custer. Microsoft Press (385 pages), 1993. ISBN 155615481X, 9781556154812
- "HP gives OpenVMS new life". Computerworld. July 31, 2014.
- Stephen Hoffman (June 6, 2000). "C bashing (was Re: VMS File Caching Futures)". Newsgroup: comp.os.vms.
- "2.7 In what language is OpenVMS written?". The OpenVMS Frequently Asked Questions (FAQ). Hewlett Packard Enterprise. Archived from the original on 2018-08-10.
- "Access to OpenVMS Source Code?". HP OpenVMS Systems ask the wizard. September 2, 1999. Archived from the original on 2017-10-28.
- "VSI OpenVMS v8.4-2L3 Released". VSI. 2021-04-08. Retrieved 2021-04-08.
- "State of the Port". VSI. Retrieved 2021-04-16.
- "Japanese OpenVMS OS (JVMS)". VSI. Retrieved 2021-02-05.
- Michael M. T. Yau (1993). "Supporting the Chinese, Japanese, and Korean Languages in the OpenVMS Operating System" (PDF). Digital Technical Journal. 5 (3).
- "OpenVMS at 20 Nothing stops it" (PDF). Digital. October 1997. Retrieved 2021-02-12.
- "Software Product Description and QuickSpecs - VSI OpenVMS Version 8.4-2L1 for Integrity servers" (PDF). VMS Software Inc. July 2019. Retrieved 2021-01-02.
- "VAX-11/780 Hardware Handbook" (PDF). ece.cmu.edu. 1979. Retrieved 2020-12-16.
- Patrick Thibodeau (June 11, 2013). "OpenVMS, R.I.P. 1977-2020?". Computerworld.
- Tom Merritt (2012). Chronology of Tech History. p. 104. ISBN 978-1300253075.
- "VAX 11/780 - OLD-COMPUTERS.COM : HISTORY / detailed info". Retrieved 2020-04-25. "VSI Products". VSI.
- "Rollout of V9.0 and Beyond" (PDF). VSI. 19 May 2020. Retrieved 2021-05-04
- "HP hands off OpenVMS development to VSI". Tech Times. August 1, 2014. Retrieved 2016-01-29.
- "VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System" (Press release). Retrieved October 27, 2017.
- "VSI Products - Clusters". VSI. Retrieved 2021-05-04.
- "Cluster Uptime". 2003-11-28. Archived from the original on 2012-02-29. Retrieved 2020-12-20.
- "Commerzbank Survives 9/11 with OpenVMS Clusters" (PDF). July 2009. Retrieved 2020-08-14.
- "February 2018 Business & Technical Update" (PDF). VSI. February 2018. Retrieved 2021-05-04.
- "VSI Business & New Products Update – April 9, 2019" (PDF). VSI. April 2019. Retrieved 2021-05-04.
- Charles Babcock (2007-11-01). "VMS Operating System Is 30 Years Old; Customers Believe It Can Last Forever". InformationWeek. Retrieved 2021-02-19.
- Drew Robb (2004-11-01). "OpenVMS survives and thrives". computerworld.com. Retrieved 2020-12-31.
- Tao Ai Lei (1998-05-30). "Digital tries to salvage OpenVMS". computerworld.co.nz. Retrieved 2020-12-31.
- Jesse Lipcon (October 1997). "OpenVMS: 20 Years of Renewal". Digital. Archived from the original on 2006-02-17. Retrieved 2021-02-12.
- "Gordon Bell Biography". research.microsoft.com.
- Cutler, Dave (2016-02-25). "Dave Cutler Oral History". youtube.com (Interview). Interviewed by Grant Saviers. Computer History Museum. Retrieved 2021-02-26.
- Stephen Hoffman (September 2006). "What is OpenVMS? What is its history?". hoffmanlabs.com. Retrieved 2021-01-03.
- "Hello from....well what used to be SpitBrook". openvmshobbyist.com. 2007-02-27. Retrieved 2021-01-24.
- "Computer system VAX/VMS". altiq.se. Retrieved 2021-01-24.
- "Micro VMS operating system". Computerworld. June 18, 1984. p. 7. The Micro VMS operating system announced last week by Digital Equipment Corp. for its Microvax I family of microcomputers is a prepackaged version of ...
- Kathleen D. Morse. "The VMS/MicroVMS merge". DEC Professional Magazine. pp. 74–84.
- Bob McCormick (1989-01-11). "DECUServe WORKSTATIONS Conference 8". home.iae.nl. Retrieved 2020-12-22.
- "Office Archaeology". blog.nozell.com. 2004-02-24. Retrieved 2020-12-22.
- "openVMS pages of proGIS germany". vaxarchive.org. Retrieved 2020-12-22.
- "Digital Introduces First Generation of OpenVMS Alpha-Ready Systems". Digital. 1992-07-15. Retrieved 2021-01-25.
- "OpenVMS Definition from PC Magazine Encyclopedia".
- Arne Vajhøj (1999-11-29). "OpenVMS FAQ - What is the difference between VMS and OpenVMS?". vaxmacro.de. Retrieved 2021-01-25.
- "History of the Vernon the VMS shark". vaxination.ca. Retrieved 2021-01-24.
- Dave Cutler (1988-05-30). "DECwest/SDT Agenda" (PDF). bitsavers.org.
- "EV-4 (1992)". 2008-02-24.
- Comerford, R. (July 1992). "How DEC developed Alpha". IEEE Spectrum. 29 (7): 26–31. doi:10.1109/6.144508.
- "Managing Technological Leaps: A study of DEC's Alpha Design Team" (PDF). April 1993.
- Supnik, Robert M. (1993). "Digital's Alpha project". Communications of the ACM. 36 (2): 30–32. doi:10.1145/151220.151223. ISSN 0001-0782. S2CID 32694010.
- George A. Darcy III; Ronald F. Brender; Stephen J. Morris; Michael V. Iles (1992). "Using Simulation to Develop and Port Software" (PDF). Digital Technical Journal. 4 (4): 181–192.
- Clair Grant (June 2005). "Porting OpenVMS to HP Integrity Servers" (PDF). OpenVMS Technical Journal. 6.
- Nancy P. Kronenberg; Thomas R. Benson; Wayne M. Cardoza; Ravindran Jagannathan; Benjamin J. Thomas III (1992). "Porting OpenVMS from VAX to Alpha AXP" (PDF). Digital Technical Journal. 4 (4).
- "OpenVMS Compatibility Between VAX and Alpha" (PDF). itec.suny.edu. May 1995. Retrieved 2020-12-21.
- "VAX VMS going forward". Newsgroup: comp.os.vms. 2020-07-17. Retrieved 2021-01-22.
- David S. Blickstein; Peter W. Craig; Caroline S. Davidson; R. Neil Fairnan,Jr.; Kent D. Glossop; Richard B. Grove; Steven O. Hobbs; William B. Noyce (1992). "The GEM Optimizing Compiler System" (PDF). Digital Technical Journal. 4 (4).
- "OpenVMS Compatibility Between VAX and Alpha". May 1995.
- "Extending OpenVMS for 64-bit Addressable Virtual Memory" (PDF). Digital Technical Journal. 8 (2): 57–71. 1996. S2CID 9618620.
- "The OpenVMS Mixed Pointer Size Environment" (PDF). Digital Technical Journal. 8 (2): 72–82. 1996. S2CID 14874367. Archived from the original (PDF) on 2020-02-19.
- "VSI OpenVMS Programming Concepts Manual, Vol. 1" (PDF). VSI. April 2020. Retrieved 2020-10-07.
- "HP OpenVMS Alpha Partitioning and Galaxy Guide". September 2003.
- James Niccolai (1998-10-14). "Compaq details strategy for OpenVMS". Australian Reseller News. Retrieved 2021-01-14.
- "Compaq OpenVMS Times" (PDF). January 2002. Archived from the original (PDF) on March 2, 2006.
- Andrew Orlowski (2001-06-25). "Farewell then, Alpha – Hello, Compaq the Box Shifter". theregister.com. Retrieved 2020-12-21.
- Sue Skonetski (2003-01-31). "OpenVMS Boots on Itanium on Friday Jan 31". Newsgroup: comp.os.vms. Retrieved 2020-12-21.
- Thomas Siebold (2005). "OpenVMS Integrity Boot Environment" (PDF). decus.de. Retrieved 2020-12-21.
- "Re-architecting SWIS for X86-64". 8 October 2017.
- Gaitan D’Antoni (2005). "Porting OpenVMS Applications to Itanium" (PDF). hp-user-society.de. Retrieved 2020-12-21.
- "OpenVMS floating-point arithmetic on the Intel Itanium architecture" (PDF). decus.de. 2003. Retrieved 2020-12-21.
- "Upgrading Privileged-Code Applications on OpenVMS Alpha and OpenVMS I64 Systems". Hewlett Packard Enterprise. January 2005. Retrieved 2020-12-21.
- Thomas Siebold (2005). "OpenVMS Moving Custom Code" (PDF). decus.de. Retrieved 2020-12-21.
- "HP C Installation Guide for OpenVMS Industry Standard 64 Systems" (PDF). HP. June 2007. Retrieved 2021-03-02.
- Paul Lacombe (2005). "HP OpenVMS Strategy and Futures" (PDF). de.openvms.org. Retrieved 2020-12-21.
- "VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System". 31 July 2014. Archived from the original on 10 August 2014.
- "OpenVMS Rolling Roadmap" (PDF). VSI. December 2019. Archived from the original (PDF) on 2020-06-10. Retrieved 2021-05-04.
- "VSI V9.0 Q&A". VSI. 2020-06-16. Retrieved 2021-05-04.
- "State of the Port to x86_64 April 2017" (PDF). 3 April 2017. Archived (PDF) from the original on 5 November 2019.
- "2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"". 31 October 2017.
- "State of the Port to x86_64 January 2017" (PDF). 6 January 2017. Archived (PDF) from the original on 4 November 2019.
- "VSI OpenVMS Calling Standard" (PDF). January 2021. Retrieved 2021-05-04.
- "VMS Software Inc. Announces First Boot on x86 Architecture". VSI. 14 May 2019. Retrieved 2021-05-04.
- "State of the Port". 2 November 2019. Archived from the original on 2 November 2019.
- "HP OpenVMS Systems - OpenVMS Release History". June 21, 2010. Archived from the original on October 7, 2018.
- "HP OpenVMS Systems - Supported Software Versions - January 2014". Archived from the original on October 14, 2018.
- "VSI OpenVMS Software Roadmap 2021" (PDF). VSI. VSI. Retrieved 2021-04-08.
- "HP OpenVMS Systems - OpenVMS Version 8.4". Archived from the original on September 2, 2010.
- "VMS Software, Inc. Launches New Version of OpenVMS Operating System Worldwide" (PDF) (Press release). June 1, 2015.
- "VMS Software, Inc. Launches New Version 8.4-2L1 of OpenVMS Operating System Worldwide". VSI (Press release). 2016-09-23. Retrieved 2021-05-04.
- "VMS Software, Inc. Launches VSI OpenVMS Alpha V8.4-2L1 for Alpha Hardware". VSI (Press release). 2017-01-27. Retrieved 2021-05-04.
- "Roadmap Update". VSI. September 2020. Archived from the original on 2020-09-27. Retrieved 2020-09-23.
- "OpenVMS for x86 V9.0 EAK goes to first customer on May 15, 2020". VSI. 2020-04-24. Retrieved 2021-05-04.
- Ruth E. Goldenberg; Lawrence J. Kenah; Denise E. Dumas (1991). VAX/VMS Internals and Data Structures, Version 5.2. Digital Press. ISBN 978-1555580599.
- Hunter Goatley; Edward A. Heinrich. "Writing VMS Privileged Code Part I: The Fundamentals, Part 1". hunter.goatley.com. Retrieved 2021-01-31.
- Paul A. Karger; Mary Ellen Zurko; Douglas W. Benin; Andrew H. Mason; Clifford E. Kahnh (7–9 May 1990). A VMM security kernel for the VAX architecture (PDF). Proceedings. 1990 IEEE Computer Society Symposium on Research in Security and Privacy. IEEE. doi:10.1109/RISP.1990.63834. Retrieved 2021-01-31.
- Lawrence J. Kenah; Simon F. Bate (1984). VAX/VMS Internals and Data Structures. Digital Press. ISBN 978-0-932376-52-7.
- Ruth E. Goldenberg; Saro Saravanan (1994). OpenVMS AXP Internals and Data Structures: Version 1.5. Digital Press. ISBN 978-1-55558-120-6.
- "VSI OpenVMS System Services Reference Manual: A–GETUAI" (PDF). VSI. June 2020. Retrieved 2021-02-15.
- Wayne Sewell (1992). Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals. Van Nostrand Reinhold. ISBN 0-442-00474-5.
- "VSI OpenVMS I/O User's Reference Manual" (PDF). VSI. August 2019. Retrieved 2021-01-13.
- "OpenVMS Record Management Services Reference Manual". June 2002.
- "RMS Journaling". VSI. Retrieved 2021-01-13.
- Kirby McCoy (1990). VMS File System Internals. Bedford, Mass.: Digital Press. ISBN 1-55558-056-4.
- "Andy Goldstein on Files-11, the OpenVMS File Systems". VSI Official Channel. 2019-07-25. Retrieved 2021-01-03.
- "VSI OpenVMS Guide to OpenVMS File Applications" (PDF). VSI. 2019-07-23. Retrieved 2021-01-13.
- James E. Johnson; William A. Laing (1996). "Spiralog Log-Structured File System" (PDF). Digital Technical Journal. 8 (2).
- "OpenVMS Version 7.2 Release Notes". Compaq. January 1999. Retrieved 2021-01-13.
- "Why was Spiralog retired?". Hewlett Packard Enterprise Community - Operating System - OpenVMS. 2006-01-10. Retrieved 2021-01-13.
- Andy Goldstein; Robert A. Brooks; Camiel Vanderhoeven. "A detailed look at the on-disk structure of the VMS Advanced File System (VAFS)" (PDF). VSI. Retrieved 2021-01-13.
- "Andy Goldstein on the New File System for OpenVMS v.9.0". VSI. 2019-05-08. Retrieved 2021-01-14.
- "VSI OpenVMS Software Roadmap 2020" (PDF). September 2020. Archived from the original (PDF) on 2020-12-07. Retrieved 2020-09-23.
- "VSI OpenVMS Roadmap: V9.2 is x86-64 only". Newsgroup: comp.os.vms. 2020-09-23. Retrieved 2021-01-14.
- "OpenVMS User's Manual" (PDF). VSI. VSI. July 2020. Chapter 14, Advanced Programming with DCL. Retrieved 2021-04-09.
- Simon Clubley (2017-07-03). "How dangerous is it to be able to get into DCL supervisor mode?". Newsgroup: comp.os.vms. Retrieved 2021-02-01.
- Stephen Hoffman; Paul Anagnostopoulos (1999). Writing Real Programs in DCL, second edition. ISBN 1-55558-191-9.
- "Software Product Description - VAX/VMS Operating System, Version 1.0" (PDF). September 1978.
- "VAX/VMS Software Language and Tools Handbook" (PDF). bitsavers.org. 1985. Retrieved 2020-12-31.
- "Software Product Description HP DECforms for OpenVMS, Version 4.0" (PDF). Hewlett Packard Enterprise. August 2006. Retrieved 2021-01-01.
- "Software Product Description HP FMS for OpenVMS, Version 2.5" (PDF). Hewlett Packard Enterprise. January 2005. Retrieved 2021-01-01.
- "Compaq TDMS for OpenVMS VAX, Version 1.9B" (PDF). Hewlett Packard Enterprise. July 2002. Retrieved 2021-01-01.
- "OpenVMS RTL Screen Management (SMG$) Manual". Hewlett Packard Enterprise. 2001. Retrieved 2021-01-01.
- "Digital Technical Journal Vol. 1 No. 2" (PDF).
- "MicroVMS Workstation Graphics Programming Guide" (PDF).
- Fred Kleinsorge (2007-01-04). "comp.os.vms - Dec VWS Internals". Newsgroup: comp.os.vms. Retrieved 2021-02-27.
- "Digital Technical Journal Vol. 2 No. 3" (PDF).
- "(Open)VMS(/ VAX), Version overview".
- "Migrating VWS/UIS Applications to DECwindows?". HP OpenVMS ask the wizard. November 9, 2004. Archived from the original on September 15, 2018.
- "Using DECwindows Motif for OpenVMS" (PDF). VSI. October 2019. Retrieved 2020-10-21.
- S. Kadantsev; M. Mouat. Early Experience With DECwindows/Motif In the TRIUMF Central Control System (PDF). 13th International Conference on Cyclotrons and their Applications. pp. 676–677.
- "Getting Started With the New Desktop".
- OpenGL Frequently Asked Questions (FAQ) [1/3]. Faqs.org. Retrieved on 2013-07-17.
- "Software Product Description VSI Graphical Kernel System" (PDF). VSI. 2017. Retrieved 2021-01-02.
- "Software Product Description DEC PHIGS Version 3.1 for OpenVMS VAX" (PDF). Hewlett Packard Enterprise. April 1995. Retrieved 2021-01-02.
- "VSI OpenVMS Cluster Systems" (PDF). VSI. August 2019. Retrieved 2021-01-13.
- "DECnet for OpenVMS Guide to Networking" (PDF). VSI. August 2020. Retrieved 2021-01-14.
- "VSI Products - DECnet". VSI. Retrieved 2021-01-14.
- "VMS/ULTRIX System Manager's Guide". Digital. September 1990. Retrieved 2021-01-21.
- "VSI OpenVMS TCP/IP User's Guide" (PDF). VSI. August 2019. Retrieved 2021-01-14.
- Robert Rappaport; Yanick Pouffary; Steve Lieman; Mary J. Marotta (2004). "Parallelism and Performance in the OpenVMS TCP/IP Kernel". OpenVMS Technical Journal. 4.
- Neil Rieck (2020-07-20). "OpenVMS Notes: TCPware - MultiNet Tips". Retrieved 2021-01-21.
- Alan Abrahams; David A. Low (1992). "An Overview of the PATHWORKS Product Family" (PDF). Digital Technical Journal. 4 (1).
- Andy Goldstein (2005). "Samba and OpenVMS" (PDF). de.openvms.org. Retrieved 2021-01-01.
- "Local Area Transport Network Concepts" (PDF). DEC. June 1988. Retrieved 2021-01-14.
- "VSI List of Products". VSI. Retrieved 2021-05-04.
- "OpenVMS Programming Environment Manual". March 1994. 7.1 Common Language Environment.
- "VSI OpenVMS Programming Concepts Manual, Volume II" (PDF). VSI. April 2020. Retrieved 2021-05-04.
- "SDL, LANGUAGE, Data Structure/Interface Definition Language". digiater.nl. November 1996. Retrieved 2021-01-03.
- "DECset". VSI. Retrieved 2021-01-02.
- "VSI OpenVMS DCL Dictionary: A-M" (PDF). VSI. April 2020. Retrieved 2021-01-02.
- "VSI OpenVMS Debugger Manual" (PDF). VSI. June 2020. Retrieved 2021-05-04.
- "VSI OpenVMS Delta/XDelta Debugger Manual" (PDF). VSI. August 2019. Retrieved 2020-12-31.
- "VMS IDE". marketplace.visualstudio.com. Retrieved 2021-01-02.
- "VAX/VMS Software Information Management Handbook" (PDF). Digital. 1985. Retrieved 2021-01-24.
- Ian Smith (2004). "Rdb's First 20 Years: Memories and Highlights" (PDF). Archived from the original (PDF) on 2005-11-03. Retrieved 2021-01-24.
- "Compaq ACMS for OpenVMS Getting Started". Compaq. December 1999. Retrieved 2021-01-24.
- "Building Dependable Systems: The OpenVMS Approach" (PDF). Digital. March 1994. Retrieved 2021-01-24.
- "Cover Letter for DECADMIRE V2.1 MUP Kit - DECADMIRE V2.1A". Digital. 1995. Retrieved 2021-01-24.
- Kevin Duffy; Philippe Vigier (2004). "Oracle Rdb Status and Direction" (PDF). Retrieved 2021-01-24.
- Larry Goelz; John Paladino (1999-05-31). "Cover Letter re DSM". Compq. Retrieved 2021-01-24.
- Neil Rieck (2020-06-29). "OpenmVMS Notes MySQL and MariaDB". Retrieved 2021-01-24.
- Bengt Gunne (2017). "Mimer SQL on OpenVMS Present and Future" (PDF). Retrieved 2021-01-24.
- "Rocket Software System 1032". Rocket Software. Retrieved 2021-01-24.
- "VSI OpenVMS Guide to System Security" (PDF). VSI. December 2019. Retrieved 2021-04-26.
- National Computer Security Center (NCSC) Trusted Product Evaluation List (TPEL)
- "OpenVMS Guide to System Security - Appendix C".
- On the internal workings of the CTRL-Y mechanism, see: OpenVMS AXP Internals and Data Structures, Version 1.5, sections 30.6.5.1 (CTRL/Y Processing) and 30.6.5.4 (CONTINUE Command) at pp. 1074–1076.
- John Leyden (2018-02-06). "Ghost in the DCL shell: OpenVMS, touted as ultra reliable, had a local root hole for 30 years". theregister.com. Retrieved 2021-01-13.
- "VAX-11 RSX Software Product Description" (PDF). Digital. September 1985. Retrieved 2020-12-31.
- "a simple question: what the h*ll is MCR?". Newsgroup: comp.os.vms. 2004-09-14. Retrieved 2020-12-31.
- "VAX-11 RTEM RELEASE NOTES". Digital. July 1986. Retrieved 2021-01-19.
- Digital Equipment Corporation (1994). Software Product Description - POSIX for OpenVMS 2.0.
- "OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index". June 2002.
- "VSI Products - GNV". VSI. Retrieved 2020-08-19.
- "ϕnix: a Unix emulator for VAX/VMS" (PDF). 1987-08-10. Archived from the original (PDF) on 2004-01-22.
- "DEC SoftPC User's Guide for the VMS Operating System". Digital. May 1993. Retrieved 2021-01-01.
- "Software Product Description DEC Softwindows/SoftPC for OpenVMS AXP, Version 5.0". Digital. November 1994. Retrieved 2021-01-01.
- "OpenVMS Alpha V7.2-1 Release Notes". odl.sysworks.biz. January 1999. Retrieved 2021-01-01.
- Gene Cronin, Terence P. Sherlock (2000). COM Beyond Microsoft: Designing and Implementing COM Servers on Compaq Platforms. ISBN 1555582265.
- "OpenVMS Ports". de.openvms.org. Retrieved 2021-02-09.
- "vms-ports". Retrieved 2020-08-20.
- "GNU for VMS". Retrieved 2020-08-20.
- "OpenVMS Hobbyist Program".
- "OpenVMS News & Discussion". openvms.org. Archived from the original on 2015-03-21.
- "Hobbyist Program". Process Software. Retrieved 2020-04-24.
- "MVP Systems - The OpenVMS Hobbyist Program". Archived from the original on January 6, 2009.
- "HP Bringing the Hobbyist Program In-House". openvmshobbyist.com. 2012-01-25. Retrieved 2021-01-01.
- "The new OpenVMS Hobbyist license registration is in place!". openvmshobbyist.com. 2012-01-27. Retrieved 2021-01-01.
- "HPE sets end date for hobbyist licenses for OpenVMS".
- "VMS Software Announces Community License". VSI. 2020-04-22. Retrieved 2021-05-04.
- "VMS Software Community License Available". VSI. 2020-07-28. Retrieved 2021-05-04.
- "VSI Announces Community License Updates". VSI. 2020-06-11. Retrieved 2021-05-04.
- Catherine Richardson; Terry Morris; Rockie Morgan; Reid Brown; Donna Meikle (March 1987). "MICA Software Business Plan" (PDF). Bitsavers. Retrieved 2021-01-04.
- Zachary, G. Pascal (2014). Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft. Open Road Media. ISBN 978-1-4804-9484-8. Retrieved 2021-01-04.
- Mark Russinovich (1998-10-30). "Windows NT and VMS: The Rest of the Story". ITPro Today. Retrieved 2021-01-04.
- "OpenVMS on IA-32 ?".
- "FreeVMS official web page". Archived from the original on September 8, 2018.
- "The FreeVMS Archives". Archived from the original on 10 April 2019.