OpenVMS
Get OpenVMS essential facts below. View Videos or join the OpenVMS discussion. Add OpenVMS to your PopFlock.com topic list for future reference or share this resource on social media.
OpenVMS
OpenVMS
Vms-arrow-logo.jpg
DECwindows-openvms-v7.3-1.png
OpenVMS V7.3-1 running the CDE-based DECwindows "New Desktop" GUI
DeveloperDigital Equipment Corporation, Compaq, Hewlett-Packard, VMS Software Inc (VSI)[1]
Written inBLISS, VAX Macro, C, Ada, PL/I, Fortran, Motif User Interface Language, Pascal, Structure Definition Language (SDL)[2][3][4]C++, DCL, Message Definition Files, VAX Document[5]
OS familyDEC OS family
Working stateCurrent
Source modelClosed source, source available
Initial releaseOctober 25, 1977; 43 years ago (1977-10-25)
Latest releaseV8.4-2L2 / July 10, 2017; 3 years ago (2017-07-10)[6]
Latest previewV9.0-E / October 14, 2020; 41 days ago (2020-10-14)[7]
Marketing targetHigh-end computer server
Available inEnglish
Update methodConcurrent upgrades,
rolling upgrades
Package managerPCSI and VMSINSTAL
PlatformsVAX, Alpha, Itanium, x86-64
Kernel typeMonolithic kernel with loadable modules
Default user interfaceDCL CLI and DECwindows GUI
LicenseProprietary
Official websitewww.vmssoftware.com

OpenVMS (Virtual Memory System[8][9]) is a multi-user, multiprocessing virtual memory-based operating system designed for use in time-sharing, batch processing, and transaction processing.[10] It was first released by Digital Equipment Corporation in 1977 as VAX/VMS for its series of VAX minicomputers.[11][12][13] Since 2014 OpenVMS is developed and supported by a company named VMS Software Inc. (VSI).[14][15]

In addition to VAX systems, OpenVMS also runs on DEC Alpha systems, the Itanium-based HPE Integrity family of computers,[16] and select x86-64 hardware and hypervisors.[17] It is a proprietary operating system, but source code listings are available for purchase.[18]

The system offers high availability through clustering and the ability to distribute the system over multiple physical machines,[19] allowing clustered applications and data to remain continuously accessible while operating system software and hardware maintenance and upgrades are performed,[20] or when a whole data center is destroyed.[21] VMS cluster uptimes of 17 years have been reported.[22] Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and large-scale industrial manufacturers.[23]

History

Origin and name changes

VAXstation 4000 model 96 running OpenVMS 6.1 and DECwindows Motif

In 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[24] 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 MicroVMS versions specifically targeted for these platforms which had much more limited memory and disk capacity; e.g. the smallest MicroVAX 2000 had a 40MB RD32 hard disk and 2MB of RAM, and its CPU had to emulate some of the VAX floating point instructions in software. MicroVMS kits were released for VAX/VMS 4.4 to 4.7 on TK50 tapes and RX50 floppy disks, but discontinued with VAX/VMS 5.0.

In 1991,[25] VMS was renamed to OpenVMS as an indication for its support of "open systems" industry standards such as POSIX and Unix compatibility,[26] and to drop the hardware connection as the port to DIGITAL's 64-bit Alpha RISC processor was in process. The OpenVMS name first appeared after the version 5.4-2 release.

Port to DEC Alpha

"Vernon the Shark" logo for OpenVMS

In 1988, after the cancellation of the Prism project, Ken Olsen asked Bob Supnik to investigate ways that Digital could keep the performance of VAX/VMS systems competitive with RISC-based Unix systems.[27] A group of engineers known as the "Extended VAX" or "EVAX" task force was formed, who originally attempted to produce a RISC-like subset of the VAX architecture.[27][28] When this approach turned out to be a dead end, the group began investigating the feasibility of porting VMS and its applications to a clean-slate RISC architecture. The group decided to adopt the Prism architecture with modifications, which eventually became the Alpha.[29] The project to port VMS to the Alpha architecture began in 1989, and booted successfully on real hardware for the first time in 1991.[28]

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.[30] Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in VAX MACRO-32 assembly code. To port the MACRO-32 code, a compiler was created which translated MACRO-32 to Alpha object code.[31] Many of the dependencies on the VAX architecture, such as interrupt handling and atomic queue instructions, were emulated in PALcode - which further minimized the amount of changes required to port the VMS kernel to the Alpha.

The VMS port to Alpha resulted in the creation of a second and separate source code libraries (based on a source code management tool known as VDE) for the VAX 32-bit source code library and a second and new source code library for the Alpha (and the subsequent Itanium port) 64-bit architectures. 1992 saw the release of the first version of OpenVMS for Alpha AXP systems, designated OpenVMS AXP V1.0. 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 next platform port to the Itanium.[30]

In 1994, with the release of OpenVMS version 6.1, feature (and version number) parity between the VAX and Alpha variants was achieved. This was the so-called Functional Equivalence[32] release, in the marketing materials of the time. Some features were missing however, e.g. based shareable images, which were implemented in later versions. Subsequent version numberings for the VAX and Alpha variants of the product have remained consistent through V7.3, though Alpha subsequently diverged with the availability of the V8.2 and V8.3 releases.[33]

When VMS was ported to the Alpha, it was initially left as a 32-bit only operating system.[31] This was done to ensure backwards compatibility with software written for the 32-bit VAX. 64-bit addressing was first added for the Alpha in the V7.0 release.[34] In order to allow 64-bit code to interoperate 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.[35] This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8 TiB (a 43 bit address space), which is the maximum supported by the Alpha 21064 and Alpha 21164.[36]

Port to Intel Itanium

In 2001, just prior to its acquisition by Hewlett-Packard, Compaq announced the port of OpenVMS to the Intel Itanium architecture.[37] This port was accomplished using source code maintained in common within the OpenVMS Alpha source code library, with conditional and additional modules where changes specific to Itanium were required. The OpenVMS Alpha pool was chosen as the basis of the port as it was significantly more portable than the original OpenVMS VAX source code, and because the Alpha source code pool was already fully 64-bit capable (unlike the VAX source code pool). With the Alpha port, many of the VAX hardware-specific dependencies had been previously moved into the PALcode for OpenVMS. For Itanium, the functionality which lived in PALcode was moved into a component of the OpenVMS kernel named the Software Interrupt Services (SWIS).[30] The Extensible Firmware Interface (EFI) is used to boot VMS on the Integrity platform, taking over the role of the System Reference Manual (SRM) firmware on the Alpha.

Unlike the port from VAX to Alpha, in which a snapshot of the VAX code base circa V5.4-2[32] was used as the basis for the Alpha release and the 64-bit source code pool then diverged, the OpenVMS Alpha and I64 (Itanium) versions of OpenVMS are built and maintained using a common source code library and common tools. The core software source code control system used for OpenVMS is the VMS Development Environment (VDE).[18]

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.

Port to x86-64

When VMS Software Inc. (VSI) announced that they secured the rights to develop the OpenVMS operating system from HP, they also announced their intention to port OpenVMS to the standard x86-64 architecture.[38] 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.[39] Initial support was targeted for KVM and VirtualBox. Support for VMware was announced in 2020, and Hyper-V has been described as a future goal for VSI.[40]

The x86-64 port is built from the same codebase as the Alpha and Itanium architectures, using conditional compilation to manage the architecture-specific code needed to support the x86-64 platform.[41] 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 backend, replacing the proprietary GEM backend used in the Alpha and Itanium ports. A translator was developed to map the GEM IR to LLVM IR, allowing the existing compiler frontends to be reused. In addition, the open source Clang compiler was adopted as the officially supported C++ compiler for OpenVMS under x86-64.[42]
  • 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 a "primitive boot driver" containing a basic implementation of the filesystem, 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.[43]
  • 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.[44]

The first boot was announced on the 14th May 2019. This involved booting OpenVMS on VirtualBox, and successfully running the DIRECTORY command.[45] 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.[46] In May 2020, the V9.0 Early Adopter's Kit release was made available to certain customers. This contains the full OpenVMS operating system running in a VirtualBox VM with certain limitations - most significantly, little to no layered products are available, and code can only be compiled for x86-64 using cross compilers which run on Itanium-based OpenVMS systems.[17] Following the V9.0 release, VSI has released a series of monthly updates which add additional functionality, these are designated V9.0-A, V9.0-B, etc.[7]

Major release timeline

Version[47] Release date[48][49] End-of-life date[50] Notes
Old version, no longer maintained: V1.0 25 October 1977 ? VAX-11/780, Initial commercial release
Old version, no longer maintained: V2.0 April 1980 ? VAX-11/750
Old version, no longer maintained: V3.0 April 1982 ? VAX-11/730, VAX-11/725, VAX-11/782, ASMP
Old version, no longer maintained: V4.0 September 1984 ? VAX 8600 and MicroVMS (for MicroVAX), VAXclusters
Old version, no longer maintained: V5.0 April 1988 ? VAX 6000, SMP, License Management Facility, Modular Executive
Old version, no longer maintained: V1.0 AXP November 1992 ? first OpenVMS AXP (Alpha) specific version
Old version, no longer maintained: V6.0 June 1993 31 December 2012 VAX 7000 and 10000, NCSC Class C2 compliance
Old version, no longer maintained: V6.1 April 1994 ? merging of VAX and Alpha AXP version numbers
Old version, no longer maintained: V7.0 January 1996 31 March 1998 full 64-bit virtual addressing on Alpha
Old version, no longer maintained: V7.3 June 2001 31 December 2012 Final release for the VAX architecture.
Old version, no longer maintained: V8.0 June 2003 December 2003 Limited availability eval for Integrity
Old version, no longer maintained: V8.2 February 2005 30 April 2014 Common Alpha and Itanium production release
Older version, yet still maintained: V8.4 June 2010 31 December 2020 Virtual machine guest under HPVM. Clusters over TCP/IP. Last release from HP.[51]
Older version, yet still maintained: V8.4-1H1 May 2015 31 December 2022 Support for "Poulson" Itanium processors, first release from VSI.[52]
Older version, yet still maintained: V8.4-2L1 September 2016 31 December 2024 OpenSSL updated to 1.0.2.[53]
January 2017 TBA First Alpha architecture release from VSI.[54]
Current stable version: V8.4-2L2 July 2017 TBA Final release for the Alpha architecture.[55]
Latest preview version of a future release: V9.0 May 2020 H1 2021 x86-64 Limited Early Adopter's Kit
Future release: V8.4-2L3 Q4 2020 TBA Final release for the Itanium architecture.[55]
Future release: V9.1 H1 2021 H2 2021 x86-64 General Early Adopter's Kit[56]
Future release: V9.2 H2 2021 TBA x86-64 General Release[56]
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

Features

OpenVMS offers many features that are now considered standard requirements for any high-end server operating system. These include:

User interfaces

VMS 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. With the introduction of the VAXstation line in 1984, VMS has optionally supported graphical user interfaces for use with workstations, or graphical terminals connected to a server. Versions of VMS running on DEC Alpha workstations in the 1990s supported OpenGL[69] and Accelerated Graphics Port (AGP) graphics adapters.

Command line interfaces

OpenVMS Alpha 8.4-2L1, showing the DCL CLI in a terminal session

The DIGITAL Command Language has served as the primary command line interface (CLI) of OpenVMS since the first release.[70][10] Early versions of VAX/VMS also included the MCR CLI from RSX-11M as part of a compatibility layer named the RSX Application Migration Executive (AME). This was later made an optional layered product on the VAX (called VAX-11 RSX).[71]

Various Unix shells have been officially ported to 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 Unix utilities to VAX/VMS.[72] In 1992, Digital released the POSIX for OpenVMS layered product, which included a shell based on the Korn Shell.[73] 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.[74] Amongst other GNU tools, GNV includes a port of the Bash shell to VMS.[75]

Examples of third party CLIs for VMS include Eunice, which implemented a Unix compatibility layer on top of VAX/VMS.[76]

Graphical user interfaces

VWS 4.5 running on top of VAX/VMS 5.5-2
DECwindows XUI window manager running on top of VAX/VMS 5.5-2

Over the years, VMS 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.[77] It exposed an API called the User Interface Services (UIS).[78] It ran on a limited selection of VAX hardware.[79]
  • In 1989, DEC released a new X11-based windowing system named DECwindows.[80] It was first included in VAX/VMS 5.1.[81] Early versions of DECwindows featured an interface built on top of a proprietary toolkit named XUI. A layered product named UISX was provided to allow VWS/UIS applications to run on top of DECwindows.[82]
  • In 1991, DEC replaced XUI with the Motif toolkit, creating DECwindows Motif.[83][84] As a result, the Motif Window Manager became the default DECwindows interface in OpenVMS 6.0,[81] although the XUI window manager remained as an option.
  • In 1996, as part of OpenVMS 7.1,[81] DEC released the "New Desktop" interface for DECwindows Motif.[85] 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.

Clustering

OpenVMS supports clustering (first called VAXcluster and later VMScluster), where multiple systems share disk storage, processing, job queues and print queues, and are connected either by proprietary specialized hardware (Cluster Interconnect) or an industry-standard LAN (usually Ethernet). A LAN-based cluster is often called a LAVc, for Local Area Network VMScluster, and allows, among other things, bootstrapping a possibly diskless satellite node over the network using the system disk of a bootnode.

VAXcluster support was first added in VMS version 4, which was released in 1984. This version only supported clustering over CI. Later releases of version 4 supported clustering over LAN (LAVC), and support for LAVC was improved in VMS version 5, released in 1988.

Mixtures of cluster interconnects and technologies are permitted, including Gigabit Ethernet (GbE), SCSI, FDDI, DSSI, CI and Memory Channel adapters.

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 (Various organizations have demonstrated triple-architecture clusters and cluster configurations with up to 150 nodes, but these configurations are not officially supported).

Unlike many other clustering solutions, VMScluster offers transparent and fully distributed read-write with record-level locking, which means that the same disk and even the same file can be accessed by several cluster nodes at once; the locking occurs only at the level of a single record of a file, which would usually be one line of text or a single record in a database. This allows the construction of high-availability multiply redundant database servers.

Cluster connections can span upwards of 500 miles (800 km), allowing member nodes to be located in different buildings on an office campus, or in different cities.

Host-based volume shadowing allows volumes (of the same or of different sizes) to be shadowed (mirrored) across multiple controllers and multiple hosts, allowing the construction of disaster-tolerant environments.

Full access into the distributed lock manager (DLM) is available to application programmers, and this allows applications to coordinate arbitrary resources and activities across all cluster nodes. This includes file-level coordination, but the resources and activities and operations that can be coordinated with the DLM are completely arbitrary.

OpenVMS V8.4 offers advances in clustering technology, including the use of industry-standard TCP/IP networking to bring efficiencies to cluster interconnect technology. Cluster over TCP/IP is supported in OpenVMS version 8.4, which was released in 2010.

With the supported capability of rolling upgrades and multiple system disks, cluster configurations can be maintained on-line and upgraded incrementally. This allows cluster configurations to continue to provide application and data access while a subset of the member nodes are upgraded to newer software versions.[86][19]

File system

OpenVMS has a very feature-rich file system, with support for stream and record-oriented IO, access control lists (ACLs), and file versioning. The typical user and application interface into the file system is via the Record Management Services or RMS.[59][60][87]

Timekeeping

OpenVMS represents system time as the 64-bit number of 100 nanosecond intervals (that is, ten million units per second; also known as a 'clunk'[88][89]) since the epoch. The epoch of OpenVMS is midnight preceding November 17, 1858, which is the start of Modified Julian Day numbering.[90] The clock is not necessarily updated every 100 ns; for example, systems with a 100 Hz interval timer simply add 100000 to the value every hundredth of a second. The operating system includes a mechanism to adjust for hardware timekeeping drift; when calibrated against a known time standard, it easily achieves an accuracy better than 0.01%. All OpenVMS hardware platforms derive timekeeping from an internal clock not associated with the AC supply power frequency.

While the system is shut down, time is kept by a Time-of-Year ("TOY") hardware clock. This clock keeps time to a lower resolution (perhaps 1 second) and generally, a lower accuracy (often 0.025% versus 0.01%). When the system is restarted, the VMS 64-bit time value is recomputed based on the time kept by the TOY clock and the last recorded year (stored on the system disk).

The 100 nanosecond granularity implemented within OpenVMS and the 63-bit absolute time representation (the sign bit indicates absolute time when clear and relative time when set) should allow OpenVMS trouble-free time computations up to 31-JUL-31086 02:48:05.47. At this instant, all clocks and time-keeping operations in OpenVMS will suddenly fail, since the counter will overflow and start from zero again.

Though the native OpenVMS time format can range far into the future, applications based on the C runtime library will likely encounter timekeeping problems beyond January 19, 2038 due to the Year 2038 problem. Many components and applications may also encounter field-length-related date problems at year 10000 (see the Year 10,000 problem).[91]

Programming

Among 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 and straightforward to call a routine written in one language (Fortran) from another (COBOL), without needing to know the implementation details of the target language. OpenVMS itself is implemented in a variety of different languages (primarily BLISS, VAX Macro and C),[92] and the common language environment and calling standard supports freely mixing these languages, and Ada, PL/I, Fortran, BASIC, and others.[93] This is in contrast to a system such as Unix, which is implemented nearly entirely in the C language.

The common language programming environment is described in the OpenVMS Calling Standard[62] and the OpenVMS Programming Concepts[94] manuals. This provides mixed-language calls, and a set of language-specific, run-time library (RTL), and system service routines. The language calls and the RTLs are implemented in user-mode shareable images, while the system services calls are generally part of the operating system, or part of privileged-mode code. This distinction between languages and RTLs and system services was once fairly clean and clear, but the implementations and specifics have become rather more murky over the years.

Macro32 (an assembler on OpenVMS VAX, and a compiler on OpenVMS Alpha and on OpenVMS I64) is available within and integrated into OpenVMS. BLISS compilers are available for download,[95] as are various ports of Perl, PHP, Ruby and other languages. Java SE is provided with OpenVMS,[96] with OpenJDK available for the Integrity platform.[97] C, Fortran and other languages are commercial products, and are available for purchase.

Various utilities and tools are integrated, as are various add-on languages and tools.[16]

Many programming examples are available via the OpenVMS FAQ.[98]

Debugging

The VMS 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.[99]

Standard streams

In a manner similar to Unix, VMS defines several standard input and output channels[100] with these logical names:

SYS$INPUT - Standard input. Used interactively, this represents the terminal keyboard. Used in a batch file, it is batch file lines not preceded with a $ symbol, or specified as an input deck using the DECK command.

SYS$OUTPUT - Standard output. Used interactively, this is the terminal display. Used in a batch file, it outputs to the screen if the file is run interactively or to the log file when the file is run noninteractively.

SYS$ERROR - Standard error. Used interactively, this is the terminal display. In a batch file, it is the terminal display when the file is run interactively, or to the log file when the file is run noninteractively, or in the special case of RUN /DETACH, to the output file or device specified with the /ERROR= parameter.

SYS$COMMAND - Does not have a direct analogue in the Unix model. Used interactively, it will read from the terminal. Used in a batch file when run interactively, it will read from the terminal. Used in a batch file run noninteractively, it will read from the SYS$INPUT stream (if one is defined), otherwise it will read nothing and return end of file. /dev/tty on Unix is similar to SYS$COMMAND in interactive sessions, but is not available in non-interactive sessions.

Security

OpenVMS provides various security features and mechanisms, including security identifiers, resource identifiers, subsystem identifiers, ACLs, 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).[65]/[101] Passwords are hashed using the Purdy Polynomial.

Vulnerabilities

A 33-year-old vulnerability in VAX/VMS and Alpha OpenVMS was discovered in 2017. While it affected the defunct VAX and Alpha platforms, it was relatively inconsequential on the then-current Itanium platform. The CVE number is CVE-2017-17482.[102]

Since old production hardware or emulated systems were at risk, patches were made available for the affected platforms--except for the by then unsupported VAX platform for which only a workaround was made available that involved removing privileges to the CDU utility. On an unpatched Itanium system, the attack resulted in a simple process crash, due to the Itanium's unique architecture; however, the system could be indirectly compromised if it shared a security environment with an unprotected VAX or un-patched Alpha system, such as within a mixed VMSCluster. Overall, on a vulnerable system with a default configuration, this vulnerability allowed an attacker with access to the DCL command line to bypass system security and take full control of the system. This is analogous to a privilege escalation attack on a Unix or GNU/Linux system.

The initial point of entry of this exploit is a simple buffer overflow in the DCL command processing code that allows the attacker to gain access to supervisor mode. The subsequent step makes it possible to execute code up to and including kernel mode. This is achieved in part by exploiting the multitasking capability of DCL (associated with the CTRL-Y command) that allows DCL to interrupt a running program (image), as well as the fact that DCL retains access to the privileges of the programs (images) that it requests to be loaded into the DCL process.[103] This in turn is partially a result of the process and image activation architecture of OpenVMS, and the fact that in this case it is DCL code in supervisor mode that is responsible for toggling the privileges instead of the OpenVMS kernel.[104] The attacker thus only has to select an image with the CMKRNL privilege to carry out this final step.

Cross-platform applications

OpenVMS supports the following industry standard and open-source tools and applications:[105][106]

There are a number of community projects to port open source software to VMS, include VMS-Ports[107] and GNV (GNU's Not VMS).[108]

Documentation

Documentation for Digital Equipment Corporation's OpenVMS Operating System is remembered for their Orange Binders, Large and Small.[109][110][111][112][113]

Documentation for the OpenVMS operating system, and for various layered products, is available online at the VSI website.[114]

Software Product Descriptions (SPD) are introductory and legal descriptions of various products, listing the various supported capabilities and product features. SPD documents for many OpenVMS-related products, and for OpenVMS itself, are available from VSI.[115]

The OpenVMS Frequently Asked Questions (FAQ) contains information and pointers associated with OpenVMS, and is available in various formats at HoffmanLabs.[116]

Hobbyist programs

Despite 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.[117][118] Since then, several companies producing OpenVMS software have made their products available under the same terms, such as Process Software[119] and MVP Systems.[120]

In 2011, HP staff took over the administration of the hobbyist licences. Registration was simplified and remained zero cost. The process from registering to receiving Product Authorisation Keys typically takes about one working day. Software kits for operating system and layered products were made available on request via FTP download (previously it had to be shipped on CD which was chargeable). This process is not fully automatic and requires authorisation by HP Hobbyist Program staff.

The Living Computer Museum maintains, among other historic computer systems, a publicly accessible VAX 11/785 running OpenVMS 7.3.[121]

In March 2020, HPE announced that they were concluding the OpenVMS Hobbyist license program.[122] 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.[123] 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.[124] OpenVMS for the 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.[125]

Other development efforts

FreeVMS is an attempt to develop an open source operating system following VMS conventions.[126] 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.[127] FreeVMS supported the x86-64 architecture using an L4 microkernel.[126]

Influence

VMS is in some ways an ancestor of Windows NT, together with RSX-11 and an unreleased object-based microkernel operating system developed by Dave Cutler for DEC Prism named Mica. This lineage is made clear in Cutler's foreword to "Inside Windows NT" by Helen Custer.[128]

OpenVMS vocabulary

OpenVMS-related vocabulary include:[129]

See also

References

  1. ^ "HP gives OpenVMS new life". Computerworld. July 31, 2014.
  2. ^ Guide to the HP Structure Definition Language (PDF). October 2007.
  3. ^ "State of the Port to x86_64 July 2017" (PDF). VMS Software, Inc. Conditional Code Verification.
  4. ^ "SDL". FOLDOC.
  5. ^ "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.
  6. ^ "VMS Software, Inc. Launches VSI OpenVMS Alpha V8.4-2L2 Performance Release for Alpha". vmssoftware.com. 2017-07-10. Retrieved .
  7. ^ a b "State of the Port". vmssoftware.com. Retrieved .
  8. ^ "VAX Technical Summary" (PDF). October 1981.
  9. ^ "OpenVMS at 20 Nothing stops it". October 1997. Archived from the original (PDF) on 2017-01-22.
  10. ^ a b c "Software Product Description and QuickSpecs - VSI OpenVMS Version 8.4-2L1 for Integrity servers" (PDF). VMS Software Inc. July 2019. Retrieved .
  11. ^ Patrick Thibodeau (June 11, 2013). "OpenVMS, R.I.P. 1977-2020?". Computerworld.
  12. ^ Tom Merritt (2012). Chronology of Tech History. p. 104. ISBN 978-1300253075.
  13. ^ "VAX 11/780 - OLD-COMPUTERS.COM : HISTORY / detailed info". Retrieved .
  14. ^ "HP hands off OpenVMS development to VSI". Tech Times. August 1, 2014. Retrieved .
  15. ^ "VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System" (Press release). Retrieved 2017.
  16. ^ a b c "VSI Products". VSI.
  17. ^ a b "Rollout of V9.0 and Beyond" (PDF). 19 May 2020.
  18. ^ a b "Access to OpenVMS Source Code?". HP OpenVMS Systems ask the wizard. September 2, 1999. Archived from the original on 2017-10-28.
  19. ^ a b c "VSI Products - Clusters".
  20. ^ "Cluster Uptime". 2003-11-28. Archived from the original on 2012-02-29.
  21. ^ "Commerzbank Survives 9/11 with OpenVMS Clusters" (PDF). July 2009. Retrieved .
  22. ^ "February 2018 Business & Technical Update" (PDF). February 2018. Retrieved .
  23. ^ "VSI Business & New Products Update - April 9, 2019" (PDF). April 2019. Retrieved .
  24. ^ "Gordon Bell Biography". research.microsoft.com.
  25. ^ Michael D Duffy (2002). Getting Started with OpenVMS: A Guide for New Users. ISBN 0080507352.
  26. ^ "OpenVMS Definition from PC Magazine Encyclopedia".
  27. ^ a b "EV-4 (1992)". 2008-02-24.
  28. ^ a b Comerford, R. (July 1992). "How DEC developed Alpha". IEEE Spectrum. 29 (7): 26-31. doi:10.1109/6.144508.
  29. ^ "Managing Technological Leaps: A study of DEC's Alpha Design Team" (PDF). April 1993.
  30. ^ a b c Clair Grant (June 2005). "Porting OpenVMS to HP Integrity Servers" (PDF). OpenVMS Technical Journal. 6.
  31. ^ a b 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).
  32. ^ a b "OpenVMS Compatibility Between VAX and Alpha". May 1995.
  33. ^ OpenVMS At 20. Digital Equipment Corporation. 1997. Chapter X Building the Bridge to Alpha; Chapter XI AlphaChip--The 64-bit Breakthrough.
  34. ^ "Extending OpenVMS for 64-bit Addressable Virtual Memory" (PDF). Digital Technical Journal. 8 (2): 57-71. 1996. S2CID 9618620.
  35. ^ "The OpenVMS Mixed Pointer Size Environment" (PDF). Digital Technical Journal. 8 (2): 72-82. 1996. S2CID 14874367.
  36. ^ "VSI OpenVMS Programming Concepts Manual, Vol. 1" (PDF). vmssoftware.com. April 2020. Retrieved .
  37. ^ "Compaq OpenVMS Times" (PDF). January 2002. Archived from the original (PDF) on March 2, 2006.
  38. ^ "VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System". 31 July 2014. Archived from the original on 10 August 2014.
  39. ^ "VSI OpenVMS Rolling Roadmap December 2019" (PDF). December 2019.
  40. ^ "VSI V9.0 Q&A". 16 June 2020.
  41. ^ "State of the Port to x86_64 April 2017" (PDF). 3 April 2017. Archived from the original (PDF) on 5 November 2019.
  42. ^ "2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"". 31 October 2017.
  43. ^ "State of the Port to x86_64 January 2017" (PDF). 6 January 2017. Archived from the original (PDF) on 5 November 2019.
  44. ^ "Re-architecting SWIS for X86-64". 8 October 2017.
  45. ^ "VMS Software Inc. Announces First Boot on x86 Architecture". 14 May 2019.
  46. ^ "State of the Port". 2 November 2019. Archived from the original on 2 November 2019.
  47. ^ "VMS Software: Products: Roadmap".
  48. ^ "HP OpenVMS Systems - OpenVMS Release History". June 21, 2010. Archived from the original on October 7, 2018.
  49. ^ "OpenVMS for x86 V9.0 EAK goes to first customer on May 15, 2020". April 24, 2020. Archived from the original on April 25, 2020.
  50. ^ "HP OpenVMS Systems - Supported Software Versions - January 2014". Archived from the original on October 14, 2018.
  51. ^ "HP OpenVMS Systems - OpenVMS Version 8.4". Archived from the original on September 2, 2010.
  52. ^ "VMS Software, Inc. Launches New Version of OpenVMS Operating System Worldwide" (PDF) (Press release). June 1, 2015.
  53. ^ "VMS Software, Inc. Launches New Version 8.4-2L1 of OpenVMS Operating System Worldwide" (Press release). VMS Software, Inc. March 22, 2016.
  54. ^ "VMS SOFTWARE, INC. LAUNCHES VSI OPENVMS ALPHA V8.4-2L1 FOR ALPHA HARDWARE" (Press release). VMS Software, Inc. January 27, 2017.
  55. ^ a b "Roadmap". vmssoftware.com. September 2020. Retrieved .
  56. ^ a b "VSI OpenVMS Software Roadmap 2020" (PDF). September 2020. Retrieved .
  57. ^ "VSI Products - DECnet".
  58. ^ "VSI Products - TCP/IP".
  59. ^ a b c "OpenVMS Record Management Services Reference Manual". June 2002.
  60. ^ a b "VSI OpenVMS I/O User's Reference Manual" (PDF). August 2019.
  61. ^ "Oracle Rdb Product Center".
  62. ^ a b "VSI OpenVMS Calling Standard" (PDF). March 2020.
  63. ^ Stephen Hoffman; Paul Anagnostopoulos (1999). Writing Real Programs in DCL, second edition. ISBN 1-55558-191-9.
  64. ^ a b "HP OpenVMS Alpha Partitioning and Galaxy Guide". September 2003.
  65. ^ a b "VSI OpenVMS Guide to System Security" (PDF). August 2019.
  66. ^ "Security Configuration Checklists for IT Products - VMS - OpenVMS VAX/ALPHA Security Readiness Review Security Checklist, Version 2 Release 2". Archived from the original on September 21, 2008.
  67. ^ National Computer Security Center (NCSC) Trusted Product Evaluation List (TPEL)
  68. ^ "DefCon 9 - What I did on my summer vacation".
  69. ^ OpenGL Frequently Asked Questions (FAQ) [1/3]. Faqs.org. Retrieved on 2013-07-17.
  70. ^ "Software Product Description - VAX/VMS Operating System, Version 1.0" (PDF). September 1978.
  71. ^ "VAX-11 RSX Software Product Description".
  72. ^ "VMS Language and Tools Handbook" (PDF). 1985.
  73. ^ Digital Equipment Corporation (1994). Software Product Description - POSIX for OpenVMS 2.0.
  74. ^ "OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index". June 2002.
  75. ^ "VSI Products - GNV". Retrieved .
  76. ^ "?nix: a Unix emulator for VAX/VMS" (PDF). 1987-08-10. Archived from the original (PDF) on 2004-01-22.
  77. ^ "Digital Technical Journal Vol. 1 No. 2" (PDF).
  78. ^ "MicroVMS Workstation Graphics Programming Guide" (PDF).
  79. ^ "comp.os.vms - Dec VWS Internals".
  80. ^ "Digital Technical Journal Vol. 2 No. 3" (PDF).
  81. ^ a b c "(Open)VMS(/ VAX), Version overview".
  82. ^ "Migrating VWS/UIS Applications to DECwindows?". HP OpenVMS ask the wizard. November 9, 2004. Archived from the original on September 15, 2018.
  83. ^ "Using DECwindows Motif for OpenVMS" (PDF). vmssoftware.com. October 2019. Retrieved .
  84. ^ 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.
  85. ^ "Getting Started With the New Desktop".
  86. ^ "VSI OpenVMS Cluster Systems" (PDF). August 2019.
  87. ^ Kirby McCoy (1990). VMS File System Internals. Bedford, Mass.: Digital Press. ISBN 1-55558-056-4.
  88. ^ "README file for clunk routines". November 6, 1987.
  89. ^ "The Wombat Examiner, Vol. 3, No. 1". February 1981.
  90. ^ "Why is Wednesday, November 17, 1858 the base time for OpenVMS (VAX VMS)?". Stanford University. 24 July 1997. Archived from the original on 24 July 1997. Retrieved 2020.
  91. ^ Detailed information on time and timekeeping, and on daylight saving time and time zone differential factor operations, is contained in the OpenVMS FAQ.
  92. ^ Stephen Hoffman (June 6, 2000). "C bashing (was Re: VMS File Caching Futures". Newsgroupcomp.os.vms.
  93. ^ "OpenVMS Programming Environment Manual". March 1994. 7.1 Common Language Environment.
  94. ^ "VSI OpenVMS Programming Concepts Manual, Volume II" (PDF). March 2020.
  95. ^ "OpenVMS Freeware". hp.com.
  96. ^ "QuickSpecs - HP OpenVMS Version 8.4 for Integrity and Alpha servers" (PDF). February 14, 2011.
  97. ^ "New OpenJDK for OpenVMS announced". 2020-06-10.
  98. ^ "The OpenVMS Frequently Asked Questions (FAQ)".
  99. ^ "VSI OpenVMS Debugger Manual" (PDF). 2019.
  100. ^ "OpenVMS User's Manual" (PDF). vmssoftware.com. July 2020. Chapter 14, Advanced Programming with DCL. Retrieved .
  101. ^ "OpenVMS Guide to System Security - Appendix C".
  102. ^ "CVE-2017-17482".
  103. ^ 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.
  104. ^ "If the previous mode was user, then the CTRL/Y interrupted an image. If the image was installed with enhanced privileges, the CLI [i.e. DCL] saves those privileges and resets the process privileges to those in use before the image was activated. After setting a flag, the CLI returns to command processing." VAX/VMS Internals and Data Structures, Version 5.2, section 27.6.5.1, p. 807.
  105. ^ "OpenVMS Rolling Roadmap" (PDF). VMS Software. December 2019.
  106. ^ "VSI List of Products". VMS Software.
  107. ^ "vms-ports". Retrieved .
  108. ^ "GNU for VMS". Retrieved .
  109. ^ "Orange Notebooks... three-hole binders with individual spine labels, tables of contents, dividers and indexes." "Hindsight: The Orange Notebooks". The DEC Professional. September 1983. p. 94.
  110. ^ There were grey binders too.
  111. ^ "You should have opened those orange notebooks more often." "Uncle Al". May 19, 2003.
  112. ^ "VMS Manuals available ... The first table is manuals in grey or orange binders." "OpenVMS various versions".
  113. ^ "Prior to 5.0, the documentation came in Orange binders" "VMS 5.0 - VMS 5.5".
  114. ^ "VSI Product Documentation". www.vmssoftware.com.
  115. ^ "VSI Quickspecs & SPDs". www.vmssoftware.com.
  116. ^ "HoffmanLabs :: Home of the OpenVMS FAQ". www.hoffmanlabs.org.
  117. ^ "OpenVMS Hobbyist Program".
  118. ^ "OpenVMS News & Discussion". openvms.org. Archived from the original on 2015-03-21.
  119. ^ "Hobbyist Program". Process Software. Retrieved .
  120. ^ "MVP Systems - The OpenVMS Hobbyist Program". Archived from the original on January 6, 2009.
  121. ^ ""Request a login" page, showing list of publicly accessible systems, including VAX-11/785 running VMS".
  122. ^ "HPE sets end date for hobbyist licenses for OpenVMS".
  123. ^ "VMS Software Announces Community License".
  124. ^ "VMS Software Community License Available". 2020-07-28.
  125. ^ "VSI Announces Community License Updates".
  126. ^ a b "FreeVMS official web page". Archived from the original on September 8, 2018.
  127. ^ "The FreeVMS Archives". Archived from the original on 10 April 2019.
  128. ^ "OpenVMS on IA-32 ?".
  129. ^ For information on layered products, see the description for the product. For OpenVMS components, see the OpenVMS Base Operating System Documentation.

Further reading

External links


  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.

OpenVMS
 



 



 
Music Scenes