Edit filter log

Details for log entry 37,687,384

20:02, 8 May 2024: 2605:a601:aaf7:3700:a1d7:26c1:e273:28cf (talk) triggered filter 1,035, performing the action "edit" on OpenVMS. Actions taken: none; Filter description: Possible dead link replacement (examine | diff)

Changes made in edit

In April 1975, [[Digital Equipment Corporation]] embarked on a project to design a [[32-bit]] extension to its [[PDP-11]] computer line. The hardware component was code named ''Star''; the operating system was code named ''Starlet''. Roger Gourd was the project lead for VMS. Software engineers [[Dave Cutler]], [[Dick Hustvedt]], and Peter Lipman acted as technical project leaders.<ref>{{cite interview |last=Cutler|first=Dave|subject-link=Dave Cutler|interviewer=Grant Saviers|title=Dave Cutler Oral History|url=https://www.youtube.com/watch?v=29RkHH-psrY |archive-url=https://ghostarchive.org/varchive/youtube/20211211/29RkHH-psrY| archive-date=December 11, 2021 |url-status=live|publisher=Computer History Museum|date=February 25, 2016|website=youtube.com|access-date=February 26, 2021}}{{cbignore}}</ref> The Star and Starlet projects culminated in the [[VAX-11#VAX-11/780|VAX-11/780]] computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in the name of several of the system libraries, including <code>STARLET.OLB</code> and <code>STARLET.MLB</code>.<ref name="what-is-vms" /> VMS was mostly written in [[VAX MACRO]] with some components written in [[BLISS]].<ref name="vms-20-years"/>
In April 1975, [[Digital Equipment Corporation]] embarked on a project to design a [[32-bit]] extension to its [[PDP-11]] computer line. The hardware component was code named ''Star''; the operating system was code named ''Starlet''. Roger Gourd was the project lead for VMS. Software engineers [[Dave Cutler]], [[Dick Hustvedt]], and Peter Lipman acted as technical project leaders.<ref>{{cite interview |last=Cutler|first=Dave|subject-link=Dave Cutler|interviewer=Grant Saviers|title=Dave Cutler Oral History|url=https://www.youtube.com/watch?v=29RkHH-psrY |archive-url=https://ghostarchive.org/varchive/youtube/20211211/29RkHH-psrY| archive-date=December 11, 2021 |url-status=live|publisher=Computer History Museum|date=February 25, 2016|website=youtube.com|access-date=February 26, 2021}}{{cbignore}}</ref> The Star and Starlet projects culminated in the [[VAX-11#VAX-11/780|VAX-11/780]] computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in the name of several of the system libraries, including <code>STARLET.OLB</code> and <code>STARLET.MLB</code>.<ref name="what-is-vms" /> VMS was mostly written in [[VAX MACRO]] with some components written in [[BLISS]].<ref name="vms-20-years"/>


One of the original goals for VMS was [[Backward compatibility|backwards compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME) which allowed user mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref>
One of the original goals for VMS was [[backward compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME), which allowed user-mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user-mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility-mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref>


[[File:Vms-albert-cheshire-cat.png|thumb|right|"Albert the [[Cheshire Cat]]" mascot for VAX/VMS, used by the [[DECUS]] VAX SIG<ref>{{cite web|url=http://www.openvmshobbyist.com/forum/viewthread.php?forum_id=130&thread_id=332|title=Hello from....well what used to be SpitBrook|date=February 27, 2007|access-date=January 24, 2021|website=openvmshobbyist.com}}</ref><ref>{{cite web|url=http://www.altiq.se/vax-vms/vax-vms-eng.html|title=Computer system VAX/VMS|website=altiq.se|access-date=January 24, 2021|archive-url=https://web.archive.org/web/20210201143630/http://www.altiq.se/vax-vms/vax-vms-eng.html|archive-date=February 1, 2021|url-status=dead}}</ref>]]
[[File:Vms-albert-cheshire-cat.png|thumb|right|"Albert the [[Cheshire Cat]]" mascot for VAX/VMS, used by the [[DECUS]] VAX SIG<ref>{{cite web|url=http://www.openvmshobbyist.com/forum/viewthread.php?forum_id=130&thread_id=332|title=Hello from....well what used to be SpitBrook|date=February 27, 2007|access-date=January 24, 2021|website=openvmshobbyist.com}}</ref><ref>{{cite web|url=http://www.altiq.se/vax-vms/vax-vms-eng.html|title=Computer system VAX/VMS|website=altiq.se|access-date=January 24, 2021|archive-url=https://web.archive.org/web/20210201143630/http://www.altiq.se/vax-vms/vax-vms-eng.html|archive-date=February 1, 2021|url-status=dead}}</ref>]]
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.<ref name="ia64-port">{{cite journal|url=http://www.decus.de/events/alphamigration/vortraege/porting_openvms_to_integrity.pdf|title=Porting OpenVMS to HP Integrity Servers|author=Clair Grant|journal=OpenVMS Technical Journal|volume=6|date=June 2005}}</ref> Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in [[VAX MACRO]] assembly code.<ref name="vms-20-years" /> 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]],<ref name="axp-port">{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-04-1992.pdf|title=Porting OpenVMS from VAX to Alpha AXP|author1=Nancy P. Kronenberg|author2=Thomas R. Benson|author3=Wayne M. Cardoza|author4=Ravindran Jagannathan|author5=Benjamin J. Thomas III|journal=Digital Technical Journal|volume=4|issue=4|pages=111–120|year=1992|access-date=April 27, 2024}}</ref> and the emulation of certain low-level details of the VAX architecture in [[PALcode]], such as [[interrupt handling]] and atomic queue instructions.
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.<ref name="ia64-port">{{cite journal|url=http://www.decus.de/events/alphamigration/vortraege/porting_openvms_to_integrity.pdf|title=Porting OpenVMS to HP Integrity Servers|author=Clair Grant|journal=OpenVMS Technical Journal|volume=6|date=June 2005}}</ref> Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in [[VAX MACRO]] assembly code.<ref name="vms-20-years" /> 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]],<ref name="axp-port">{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-04-1992.pdf|title=Porting OpenVMS from VAX to Alpha AXP|author1=Nancy P. Kronenberg|author2=Thomas R. Benson|author3=Wayne M. Cardoza|author4=Ravindran Jagannathan|author5=Benjamin J. Thomas III|journal=Digital Technical Journal|volume=4|issue=4|pages=111–120|year=1992|access-date=April 27, 2024}}</ref> and the emulation of certain low-level details of the VAX architecture in [[PALcode]], such as [[interrupt handling]] and atomic queue instructions.


The VMS port to Alpha resulted in the creation of two separate codebases - one for [[VAX]], and for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> 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.<ref name="ia64-port" />
The VMS port to Alpha resulted in the creation of two separate codebases: one for [[VAX]], and another for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> The decision to use the 1.x version numbering stream for the pre-production quality releases of OpenVMS AXP confused some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms.<ref name="ia64-port" />


When VMS was ported to Alpha, it was initially left as a 32-bit only operating system.<ref name="axp-port" /> 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v08-02-1996.pdf|title=Extending OpenVMS for 64-bit Addressable Virtual Memory|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=57–71|s2cid=9618620}}</ref> 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.<ref>{{cite journal|url=https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|archive-url=https://web.archive.org/web/20200219001633/https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|url-status=dead|archive-date=February 19, 2020|title=The OpenVMS Mixed Pointer Size Environment|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=72–82|s2cid=14874367}}</ref> This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the [[Alpha 21064]] and [[Alpha 21164]].<ref name="prog-concepts-i">{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf|title=VSI OpenVMS Programming Concepts Manual, Vol. 1|date=April 2020|access-date=October 7, 2020|publisher=VSI}}</ref>
When VMS was ported to Alpha, it was initially left as a 32-bit only operating system.<ref name="axp-port" /> 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v08-02-1996.pdf|title=Extending OpenVMS for 64-bit Addressable Virtual Memory|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=57–71|s2cid=9618620}}</ref> 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.<ref>{{cite journal|url=https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|archive-url=https://web.archive.org/web/20200219001633/https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|url-status=dead|archive-date=February 19, 2020|title=The OpenVMS Mixed Pointer Size Environment|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=72–82|s2cid=14874367}}</ref> This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the [[Alpha 21064]] and [[Alpha 21164]].<ref name="prog-concepts-i">{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf|title=VSI OpenVMS Programming Concepts Manual, Vol. 1|date=April 2020|access-date=October 7, 2020|publisher=VSI}}</ref>


One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'' - which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref>
One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'', which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref>


===Port to Intel Itanium===
===Port to Intel Itanium===
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.<ref name="ia64-port" /> This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included using the [[Extensible Firmware Interface]] (EFI) to boot the operating system,<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g04.pdf|title=OpenVMS Integrity Boot Environment|date=2005|access-date=December 21, 2020|author=Thomas Siebold|website=decus.de}}</ref> reimplementing the functionality previously provided by Alpha PALcode inside the kernel,<ref name="swis" /> using new executable file formats ([[Executable and Linkable Format]] and [[DWARF]]),<ref>{{cite web|url=http://www.hp-user-society.de/events/alphamigration/vortraege/porting_openvms_applications_to_itanium.pdf|title=Porting OpenVMS Applications to Itanium|access-date=December 21, 2020|website=hp-user-society.de|date=2005|author=Gaitan D’Antoni}}</ref> and adopting [[IEEE 754]] as the default floating point format.<ref>{{cite web|url=http://www.decus.de/events/alphamigration/vortraege/i64-floating-pt-wp.pdf|title=OpenVMS floating-point arithmetic on the Intel Itanium architecture|website=decus.de|access-date=December 21, 2020|date=2003}}</ref>
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.<ref name="ia64-port" /> This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included using the [[Extensible Firmware Interface]] (EFI) to boot the operating system,<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g04.pdf|title=OpenVMS Integrity Boot Environment|date=2005|access-date=December 21, 2020|author=Thomas Siebold|website=decus.de}}</ref> reimplementing the functionality previously provided by Alpha PALcode inside the kernel,<ref name="swis" /> using new executable file formats ([[Executable and Linkable Format]] and [[DWARF]]),<ref>{{cite web|url=http://www.hp-user-society.de/events/alphamigration/vortraege/porting_openvms_applications_to_itanium.pdf|title=Porting OpenVMS Applications to Itanium|access-date=December 21, 2020|website=hp-user-society.de|date=2005|author=Gaitan D’Antoni}}</ref> and adopting [[IEEE 754]] as the default floating point format.<ref>{{cite web|url=http://www.decus.de/events/alphamigration/vortraege/i64-floating-pt-wp.pdf|title=OpenVMS floating-point arithmetic on the Intel Itanium architecture|website=decus.de|access-date=December 21, 2020|date=2003}}</ref>


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.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref>
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 been translated with VEST.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref>


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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref>
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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref>


===Port to x86-64===
===Port to x86-64===
As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with [[LLVM]],<ref>{{cite AV media|url=https://www.youtube.com/watch?v=xTaBkCBYskA |archive-url=https://ghostarchive.org/varchive/youtube/20211211/xTaBkCBYskA| archive-date=December 11, 2021 |url-status=live|title=2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"|website=[[YouTube]]|date=October 31, 2017}}{{cbignore}}</ref> changing the boot process so that OpenVMS is booted from a memory disk,<ref>{{cite web|url=http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|title=State of the Port to x86_64 January 2017.|date=January 6, 2017|archive-url=https://web.archive.org/web/20191104221854/http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|archive-date=November 4, 2019|url-status=dead}}</ref> and simulating the four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS.<ref name="swis">{{cite AV media|url=https://www.youtube.com/watch?v=U8kcfvJ1Iec |archive-url=https://ghostarchive.org/varchive/youtube/20211211/U8kcfvJ1Iec| archive-date=December 11, 2021 |url-status=live|title=Re-architecting SWIS for X86-64|date=October 8, 2017|author=Camiel Vanderhoeven|website=[[YouTube]]|access-date=October 21, 2021}}{{cbignore}}</ref>
As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with [[LLVM]],<ref>{{cite AV media|url=https://www.youtube.com/watch?v=xTaBkCBYskA |archive-url=https://ghostarchive.org/varchive/youtube/20211211/xTaBkCBYskA| archive-date=December 11, 2021 |url-status=live|title=2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"|website=[[YouTube]]|date=October 31, 2017}}{{cbignore}}</ref> changing the boot process so that OpenVMS is booted from a memory disk,<ref>{{cite web|url=http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|title=State of the Port to x86_64 January 2017.|date=January 6, 2017|archive-url=https://web.archive.org/web/20191104221854/http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|archive-date=November 4, 2019|url-status=dead}}</ref> and simulating the four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS.<ref name="swis">{{cite AV media|url=https://www.youtube.com/watch?v=U8kcfvJ1Iec |archive-url=https://ghostarchive.org/varchive/youtube/20211211/U8kcfvJ1Iec| archive-date=December 11, 2021 |url-status=live|title=Re-architecting SWIS for X86-64|date=October 8, 2017|author=Camiel Vanderhoeven|website=[[YouTube]]|access-date=October 21, 2021}}{{cbignore}}</ref>


The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref>
The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref>


===Influence===
===Influence===
During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting [[Ultrix]] applications on top of the same kernel.<ref name="mica-business-plan">{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/mica/Mica_Software_Business_Plan_Mar87.pdf|title=MICA Software Business Plan|author1=Catherine Richardson|author2=Terry Morris|author3=Rockie Morgan|author4=Reid Brown|author5=Donna Meikle|date=March 1987|access-date=January 4, 2021|website=Bitsavers}}</ref> MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the [[Windows NT]] operating system, which was heavily inspired by the architecture of MICA.<ref>{{cite book |last1=Zachary |first1=G. Pascal |title=Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft |date=2014 |publisher=Open Road Media |isbn=978-1-4804-9484-8 |url=https://books.google.com/books?id=o2IkAwAAQBAJ&q=%22Dave+Cutler%22+march+13&pg=PT9 |access-date=January 4, 2021|language=en}}</ref> 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.<ref>{{cite web|url=https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story|title=Windows NT and VMS: The Rest of the Story|author=Mark Russinovich|date=October 30, 1998|access-date=January 4, 2021|website=ITPro Today}}</ref>
During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting [[Ultrix]] applications on top of the same kernel.<ref name="mica-business-plan">{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/mica/Mica_Software_Business_Plan_Mar87.pdf|title=MICA Software Business Plan|author1=Catherine Richardson|author2=Terry Morris|author3=Rockie Morgan|author4=Reid Brown|author5=Donna Meikle|date=March 1987|access-date=January 4, 2021|website=Bitsavers}}</ref> MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the [[Windows NT]] operating system, which was heavily inspired by the architecture of MICA.<ref>{{cite book |last1=Zachary |first1=G. Pascal |title=Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft |date=2014 |publisher=Open Road Media |isbn=978-1-4804-9484-8 |url=https://books.google.com/books?id=o2IkAwAAQBAJ&q=%22Dave+Cutler%22+march+13&pg=PT9 |access-date=January 4, 2021|language=en}}</ref> 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.<ref>{{cite web|url=https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story|title=Windows NT and VMS: The Rest of the Story|author=Mark Russinovich|date=October 30, 1998|access-date=January 4, 2021|website=ITPro Today}}</ref>


A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref>
A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open-source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref>


==Architecture==
==Architecture==
[[File:Openvms-system-architecture.svg|thumb|275px|The architecture of the OpenVMS operating system, demonstrating the layers of the system, and the access modes in which they typically run]]
[[File:Openvms-system-architecture.svg|thumb|275px|The architecture of the OpenVMS operating system, demonstrating the layers of the system, and the access modes in which they typically run]]


The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately-privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems).
The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems).


OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:<ref name="idsm-5.2" /><ref name="goatley-part-1">{{cite web|url=https://hunter.goatley.com/vms/internals1.html|title=Writing VMS Privileged Code Part I: The Fundamentals, Part 1|author1=Hunter Goatley|author2=Edward A. Heinrich|website=hunter.goatley.com|access-date=January 31, 2021}}</ref>
OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:<ref name="idsm-5.2" /><ref name="goatley-part-1">{{cite web|url=https://hunter.goatley.com/vms/internals1.html|title=Writing VMS Privileged Code Part I: The Fundamentals, Part 1|author1=Hunter Goatley|author2=Edward A. Heinrich|website=hunter.goatley.com|access-date=January 31, 2021}}</ref>
The [[Kernel (operating system)|Kernel]] comprises 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.<ref name="idsm-5.2" /><ref name="goatley-part-1" /> In addition, other functionality such as [[Files-11#Logical names|logical name]] management, synchronization and system service dispatch are implemented inside the Kernel.
The [[Kernel (operating system)|Kernel]] comprises 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.<ref name="idsm-5.2" /><ref name="goatley-part-1" /> In addition, other functionality such as [[Files-11#Logical names|logical name]] management, synchronization and system service dispatch are implemented inside the Kernel.


OpenVMS allows user mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref>
OpenVMS allows user-mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref>


===File system===
===File system===
The typical user and application interface into the [[file system]] is the [[Record Management Services]] (RMS), although applications can interface directly with the underlying file system through the [[QIO]] system services.<ref name="acp-qio-doc">{{cite web|url=https://vmssoftware.com/docs/VSI_IO_REF.pdf|title=VSI OpenVMS I/O User's Reference Manual|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> The file systems supported by VMS are referred to as the [[Files-11]] ''On-Disk Structures'' (ODS), the most significant of which are ''ODS-2'' and ''ODS-5''.<ref name="andy-goldstein-files-11">{{cite web|url=https://www.youtube.com/watch?v=b0YenelPw-Y| archive-url=https://web.archive.org/web/20210112225121/https://www.youtube.com/watch?v=b0YenelPw-Y| archive-date=January 12, 2021 | url-status=dead|title=Andy Goldstein on Files-11, the OpenVMS File Systems|date=July 25, 2019|access-date=January 3, 2021|publisher=VSI Official Channel}}</ref> VMS is also capable of accessing files on [[ISO 9660]] [[CD-ROM]]s and [[magnetic tape]] with [[Tape labels#ANSI tape labels|ANSI tape labels]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_Gd_to_File_Apps_23Jul19.pdf|title=VSI OpenVMS Guide to OpenVMS File Applications|publisher=VSI|date=July 23, 2019|access-date=January 13, 2021}}</ref>
The typical user and application interface into the [[file system]] is the [[Record Management Services]] (RMS), although applications can interface directly with the underlying file system through the [[QIO]] system services.<ref name="acp-qio-doc">{{cite web|url=https://vmssoftware.com/docs/VSI_IO_REF.pdf|title=VSI OpenVMS I/O User's Reference Manual|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> The file systems supported by VMS are referred to as the [[Files-11]] ''On-Disk Structures'' (ODS), the most significant of which are ''ODS-2'' and ''ODS-5''.<ref name="andy-goldstein-files-11">{{cite web|url=https://www.youtube.com/watch?v=b0YenelPw-Y| archive-url=https://web.archive.org/web/20210112225121/https://www.youtube.com/watch?v=b0YenelPw-Y| archive-date=January 12, 2021 | url-status=dead|title=Andy Goldstein on Files-11, the OpenVMS File Systems|date=July 25, 2019|access-date=January 3, 2021|publisher=VSI Official Channel}}</ref> VMS is also capable of accessing files on [[ISO 9660]] [[CD-ROM]]s and [[magnetic tape]] with [[Tape labels#ANSI tape labels|ANSI tape labels]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_Gd_to_File_Apps_23Jul19.pdf|title=VSI OpenVMS Guide to OpenVMS File Applications|publisher=VSI|date=July 23, 2019|access-date=January 13, 2021}}</ref>


Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref>
Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open-source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref>


===Command Language Interpreter===
===Command Language Interpreter===


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 script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available as well.
An OpenVMS Command Language Interpreter (CLI) implements a [[command-line interface]] for OpenVMS, responsible for executing individual commands and ''command procedures'' (equivalent to [[shell script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available.


Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" />
Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" />


Due to the 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 the process address space at supervisor access mode - a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" />
Because the CLI is loaded into the same address space as user code, and the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into the process address space at supervisor access mode, a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user-mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" />


==Features==
==Features==
* In addition, a number of [[text editor]]s are included in the operating system, including [[EDT (Digital)|EDT]], [[EVE (text editor)|EVE]] and [[TECO (text editor)|TECO]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|title=VSI OpenVMS DCL Dictionary: A–M|date=April 2020|access-date=January 2, 2021|publisher=VSI}}</ref>
* In addition, a number of [[text editor]]s are included in the operating system, including [[EDT (Digital)|EDT]], [[EVE (text editor)|EVE]] and [[TECO (text editor)|TECO]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|title=VSI OpenVMS DCL Dictionary: A–M|date=April 2020|access-date=January 2, 2021|publisher=VSI}}</ref>


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 interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref>
The OpenVMS Debugger supports all DEC compilers and many third-party languages. It allows breakpoints, watchpoints and interactive runtime program debugging using either a [[command line interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref>


In 2019, VSI released an officially-supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref>
In 2019, VSI released an officially supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref>


====Database management====
====Database management====
===POSIX compatibility===
===POSIX compatibility===


Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref>
Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third-party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref>


==Hobbyist programs==
==Hobbyist programs==
| {{Version |o |V7.1-1H2}}
| {{Version |o |V7.1-1H2}}
| April 1998
| April 1998
| Support for booting from third party devices
| Support for booting from third-party devices
|-
|-
| {{Version |o |V7.1-2}}
| {{Version |o |V7.1-2}}

Action parameters

VariableValue
Edit count of the user ($1) (user_editcount)
null
Name of the user account ($1) (user_name)
'2605:A601:AAF7:3700:A1D7:26C1:E273:28CF'
Age of the user account ($1) (user_age)
0
Groups (including implicit) the user is in ($1) (user_groups)
[ 0 => '*' ]
Rights that the user has ($1) (user_rights)
[ 0 => 'createaccount', 1 => 'read', 2 => 'edit', 3 => 'createtalk', 4 => 'writeapi', 5 => 'viewmyprivateinfo', 6 => 'editmyprivateinfo', 7 => 'editmyoptions', 8 => 'abusefilter-log-detail', 9 => 'urlshortener-create-url', 10 => 'centralauth-merge', 11 => 'abusefilter-view', 12 => 'abusefilter-log', 13 => 'vipsscaler-test' ]
Whether or not a user is editing through the mobile interface ($1) (user_mobile)
false
Whether the user is editing from mobile app ($1) (user_app)
false
Page ID ($1) (page_id)
32736
Page namespace ($1) (page_namespace)
0
Page title without namespace ($1) (page_title)
'OpenVMS'
Full page title ($1) (page_prefixedtitle)
'OpenVMS'
Edit protection level of the page ($1) (page_restrictions_edit)
[]
Last ten users to contribute to the page ($1) (page_recent_contributors)
[ 0 => 'OAbot', 1 => 'Guy Harris', 2 => 'Citation bot', 3 => 'InternetArchiveBot', 4 => 'Vt320', 5 => 'Hairy Dude', 6 => 'Xose.vazquez', 7 => 'Funnyfarmofdoom', 8 => 'Ganeshsapkal8571', 9 => 'Liz' ]
Page age in seconds ($1) (page_age)
718406319
Action ($1) (action)
'edit'
Edit summary/reason ($1) (summary)
''
Time since last page edit in seconds ($1) (page_last_edit_age)
228564
Old content model ($1) (old_content_model)
'wikitext'
New content model ($1) (new_content_model)
'wikitext'
Old page wikitext, before the edit ($1) (old_wikitext)
'{{Short description|Computer operating system}} {{Use mdy dates|date=November 2022}} {{Infobox OS | name = OpenVMS | logo = Vsi-openvms-logo.svg | logo size = 250px | screenshot = DECwindows-openvms-v7.3-1.png | caption = OpenVMS V7.3-1 running the [[Common Desktop Environment|CDE]]-based DECwindows "New Desktop" GUI | developer = VMS Software Inc (VSI)<ref name=VSI.CW2014>{{cite news |newspaper=[[Computerworld]] |url=https://www.computerworld.com/article/2490683/operating-systems-hp-gives-openvms-new-life.html |title=HP gives OpenVMS new life |date=July 31, 2014|author=Patrick Thibodeau |access-date=October 21, 2021}}</ref> (previously [[Digital Equipment Corporation]], [[Compaq]], [[Hewlett-Packard]]) | source_model = [[Proprietary software|Closed-source]] with [[Open-source software|open-source]] components. Formerly [[source available]]<ref name="wizard-vms-source"/><ref>{{cite web|url=https://www.youtube.com/watch?v=E8X3tGlFgo8 |archive-url=https://ghostarchive.org/varchive/youtube/20211211/E8X3tGlFgo8| archive-date=December 11, 2021 |url-status=live|title=Webinar 16: x86 Update|date=October 15, 2021|publisher=VSI|access-date=November 2, 2021}}{{cbignore}}</ref> | kernel_type = [[Monolithic kernel]] with loadable modules | supported_platforms = [[VAX]], [[DEC Alpha|Alpha]], [[Itanium]], [[x86-64]] | ui = [[DIGITAL Command Language|DCL]] [[Command-line interface|CLI]] and [[DECwindows]] [[Graphical user interface|GUI]] | released = Announced: {{Start date and age|mf=yes|1977|10|25}}<br />V1.0 / {{Start date and age|mf=yes|1978|08}} | latest_release_version = V9.2-2<!-- If you update this, don't forget to update [[Comparison of operating systems]]--> | latest_release_date = {{Start date and age|2024|01|25}}<ref name="vms9.2-2">{{cite web|url=https://vmssoftware.com/about/news/2024-01-25-openvms-v922-release-availability/|access-date=2024-01-25|date=2024-01-25|title=OpenVMS V9.2-2 public availability|website=VSI}}</ref> | marketing_target = [[Server (computing)|Servers]] (historically [[Minicomputer]]s, [[Workstation]]s) | programmed_in = Primarily [[C (programming language)|C]], [[BLISS]], [[VAX MACRO]], [[DIGITAL Command Language|DCL]].<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/3SWQiRQA1Y4/m/npx29Nm-AwAJ|title=How much of VMS is still in MACRO-32?|author= Camiel Vanderhoeven|date=May 30, 2021|newsgroup=comp.os.vms|access-date=October 21, 2021}}</ref> Other languages also used.<ref>{{cite web|url=http://h41379.www4.hpe.com/faq/vmsfaq_002.html#vms8|work=The OpenVMS Frequently Asked Questions (FAQ)|title=2.7 In what language is OpenVMS written?|publisher=[[Hewlett Packard Enterprise]]|archive-url=https://web.archive.org/web/20180810010816/http://h41379.www4.hpe.com/faq/vmsfaq_002.html|archive-date=August 10, 2018}}</ref> | language = [[English language|English]], [[Japanese language|Japanese]].<ref>{{cite web|url=https://vmssoftware.com/products/jvms/|title=Japanese OpenVMS OS (JVMS)|website=VSI|access-date=February 5, 2021}}</ref> Historical support for [[Chinese language|Chinese]] (both [[Traditional Chinese|Traditional]] and [[Simplified Chinese|Simplified]] characters), [[Korean language|Korean]], [[Thai language|Thai]].<ref>{{cite journal|url=http://www.dtjcd.vmsresource.org.uk/pdfs/dtj_v05-03_1993.pdf|author=Michael M. T. Yau|title=Supporting the Chinese, Japanese, and Korean Languages in the OpenVMS Operating System|journal=Digital Technical Journal|volume=5|issue=3|pages=63–79|year=1993|access-date=October 21, 2021}}</ref> | updatemodel = Concurrent upgrades,<br />rolling upgrades | package_manager = PCSI and VMSINSTAL | working_state = Current | license = [[Proprietary software|Proprietary]] | website = {{URL|https://vmssoftware.com}} | influenced_by = [[RSX-11M]] | influenced = [[VAXELN]], [[DEC MICA|MICA]], [[Windows NT]] }} '''OpenVMS''', often referred to as just '''VMS''',<ref name="vms-20-years">{{cite web|url=https://h50146.www5.hpe.com/products/software/oe/openvms/history/vaxvms20/pdf/vmsbook.pdf|date=October 1997|title=OpenVMS at 20 Nothing stops it|publisher=Digital Equipment Corporation|access-date=February 12, 2021}}</ref> is a [[multi-user]], [[multiprocessing]] and [[virtual memory]]-based [[operating system]]. It is designed to support [[time-sharing]], [[batch processing]], [[transaction processing]] and [[workstation]] applications.<ref name="vms-8.4-spd">{{cite web | url = https://vmssoftware.com/docs/VSI_OVMS_SPDQS_OS_V842L1I_UPD1.pdf | title = Software Product Description and QuickSpecs - VSI OpenVMS Version 8.4-2L1 for Integrity servers | publisher = VMS Software Inc. | date = July 2019 | access-date = January 2, 2021 }}</ref> Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers.<ref>{{cite web|url=https://vmssoftware.com/docs/VMS_Software_Inc.-April_2019_Update_7am_Session.pdf|date=April 2019|access-date=May 4, 2021|title=VSI Business & New Products Update – April 9, 2019|publisher=VSI}}</ref><ref>{{cite magazine|url=https://www.informationweek.com/vms-operating-system-is-30-years-old-customers-believe-it-can-last-forever/d/d-id/1061051?|title=VMS Operating System Is 30 Years Old; Customers Believe It Can Last Forever |magazine=InformationWeek |date=November 1, 2007|author=Charles Babcock|access-date=February 19, 2021}}</ref> During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide.<ref>{{cite web|url=https://www.computerworld.com/article/2567299/openvms-survives-and-thrives.html|title=OpenVMS survives and thrives|author=Drew Robb|date=November 1, 2004 |publisher=computerworld.com|access-date=December 31, 2020}}</ref><ref>{{cite web|url=http://www2.computerworld.co.nz/article/516907/digital_tries_salvage_openvms/|title=Digital tries to salvage OpenVMS|author=Tao Ai Lei|date=May 30, 1998|access-date=December 31, 2020 |publisher=computerworld.co.nz}}</ref><ref>{{cite web|archive-url=https://web.archive.org/web/20060217141711/http://h71000.www7.hp.com/openvms/20th/vms20/vms20.ppt|archive-date=February 17, 2006|url=http://h71000.www7.hp.com/openvms/20th/vms20/vms20.ppt|date=October 1997|access-date=February 12, 2021|title=OpenVMS: 20 Years of Renewal|author=Jesse Lipcon|publisher=Digital Equipment Corporation}}</ref> It was first announced by [[Digital Equipment Corporation]] (DEC) as '''VAX/VMS''' (''Virtual Address eXtension/Virtual Memory System''<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/handbook/VAX_Hardware_Handbook_1979.pdf|title=VAX-11/780 Hardware Handbook|date=1979|access-date=October 17, 2022|publisher=[[Digital Equipment Corporation]]}}</ref>) alongside the [[VAX-11/780]] minicomputer in 1977.<ref name=RIP.CW1977>{{cite news |newspaper=[[Computerworld]] |author=Patrick Thibodeau |url=https://www.computerworld.com/article/1535041/openvms-r-i-p-1977-2020-2.html |title=OpenVMS, R.I.P. 1977-2020? |date=June 11, 2013 |access-date=April 27, 2024 }}</ref><ref>{{cite book |title=Chronology of Tech History |page=104 |url=https://books.google.com/books?isbn=130025307X |isbn=978-1300253075 |author=Tom Merritt |date=2012|publisher=Lulu.com }}</ref><ref name=OLD780>{{cite web |title=VAX 11/780 - OLD-COMPUTERS.COM : HISTORY / detailed info |url=https://www.old-computers.com/history/detail.asp?n=20&t=3 |access-date=April 25, 2020|archive-url=https://web.archive.org/web/20230926164342/https://www.old-computers.com/history/detail.asp?n=20&t=3|archive-date=September 26, 2023|url-status=dead}}</ref> OpenVMS has subsequently been [[ported]] to run on [[DEC Alpha]] systems, the [[Itanium]]-based [[HPE Integrity Servers]],<ref>{{cite web |url=https://vmssoftware.com/products/supported-platforms/ |title=Supported Platforms |website=VSI}}</ref> and select [[x86-64]] hardware and [[hypervisor]]s.<ref name="9.0 Rollout"/> Since 2014, OpenVMS is developed and supported by VMS Software Inc. (VSI).<ref name=NotPressRelease>{{Cite web |title=HP hands off OpenVMS development to VSI |url = https://www.techtimes.com/articles/11907/20140801/openvms-gets-a-new-leash-on-life.htm |website=Tech Times |date=August 1, 2014 |access-date=April 27, 2024}}</ref><ref name="vms-software-named-exclusive-developer">{{Cite press release |title = VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System |url=http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions |access-date=October 27, 2017}}</ref> OpenVMS offers [[high availability]] through [[computer cluster|clustering]]—the ability to distribute the system over multiple physical machines.<ref name=cluster-docs/> This allows clustered applications and data to remain continuously available while operating system software and hardware maintenance and upgrades are performed,<ref>{{cite web|archive-url=https://web.archive.org/web/20120229042903/http://www.openvms.org/stories.php?story=03%2F11%2F28%2F7758863|archive-date=February 29, 2012|url=http://www.openvms.org/stories.php?story=03/11/28/7758863|title=Cluster Uptime|date=November 28, 2003|access-date=December 20, 2020|url-status=live}}</ref> or if part of the cluster is destroyed.<ref>{{cite web|url=https://availabilitydigest.com/public_articles/0407/commerzbank.pdf|title=Commerzbank Survives 9/11 with OpenVMS Clusters|date=July 2009|access-date=April 27, 2024}}</ref> VMS cluster uptimes of 17 years have been reported.<ref>{{cite web|url=https://vmssoftware.com/docs/w1_Feb2018_Update.pdf|title=February 2018 Business & Technical Update|access-date=May 4, 2021|date=February 2018|publisher=VSI}}</ref> ==History== ===Origin and name changes=== [[File:VAX VMS logo.svg|thumb|right|Stylized "VAX/VMS" used by Digital]] In April 1975, [[Digital Equipment Corporation]] embarked on a project to design a [[32-bit]] extension to its [[PDP-11]] computer line. The hardware component was code named ''Star''; the operating system was code named ''Starlet''. Roger Gourd was the project lead for VMS. Software engineers [[Dave Cutler]], [[Dick Hustvedt]], and Peter Lipman acted as technical project leaders.<ref>{{cite interview |last=Cutler|first=Dave|subject-link=Dave Cutler|interviewer=Grant Saviers|title=Dave Cutler Oral History|url=https://www.youtube.com/watch?v=29RkHH-psrY |archive-url=https://ghostarchive.org/varchive/youtube/20211211/29RkHH-psrY| archive-date=December 11, 2021 |url-status=live|publisher=Computer History Museum|date=February 25, 2016|website=youtube.com|access-date=February 26, 2021}}{{cbignore}}</ref> The Star and Starlet projects culminated in the [[VAX-11#VAX-11/780|VAX-11/780]] computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in the name of several of the system libraries, including <code>STARLET.OLB</code> and <code>STARLET.MLB</code>.<ref name="what-is-vms" /> VMS was mostly written in [[VAX MACRO]] with some components written in [[BLISS]].<ref name="vms-20-years"/> One of the original goals for VMS was [[Backward compatibility|backwards compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME) which allowed user mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> [[File:Vms-albert-cheshire-cat.png|thumb|right|"Albert the [[Cheshire Cat]]" mascot for VAX/VMS, used by the [[DECUS]] VAX SIG<ref>{{cite web|url=http://www.openvmshobbyist.com/forum/viewthread.php?forum_id=130&thread_id=332|title=Hello from....well what used to be SpitBrook|date=February 27, 2007|access-date=January 24, 2021|website=openvmshobbyist.com}}</ref><ref>{{cite web|url=http://www.altiq.se/vax-vms/vax-vms-eng.html|title=Computer system VAX/VMS|website=altiq.se|access-date=January 24, 2021|archive-url=https://web.archive.org/web/20210201143630/http://www.altiq.se/vax-vms/vax-vms-eng.html|archive-date=February 1, 2021|url-status=dead}}</ref>]] A number of distributions of VAX/VMS were created: * '''MicroVMS''' was a distribution of VAX/VMS designed for [[MicroVAX]] and [[VAXstation]] hardware, which had less memory and disk space than larger VAX systems of the time.<ref>{{cite book |title=Getting Started with OpenVMS: A Guide for New Users |url=https://books.google.com/books?isbn=0080507352 |isbn=978-0080507354 |author=Michael D Duffy |date=2002| publisher=Elsevier }}</ref> MicroVMS split up VAX/VMS into multiple kits, which a customer could use to install a subset of VAX/VMS tailored to their specific requirements.<ref>{{cite news |newspaper=[[Computerworld]] |date=June 18, 1984 |page=7 |quote=The Micro VMS operating system announced last week by Digital Equipment Corp. for its Microvax I family of microcomputers is a prepackaged version of ... |title=Micro VMS operating system |url=https://books.google.com/books?id=aqjZTUJlyygC}}</ref> MicroVMS releases were produced for each of the V4.x releases of VAX/VMS and was discontinued when VAX/VMS V5.0 was released.<ref name=DEC.prof>{{cite magazine |magazine=DEC Professional Magazine |title=The VMS/MicroVMS merge |pages=74–84 |author=Kathleen D. Morse}}</ref><ref name="vms-5.0-rel-notes">{{cite web|url=http://bitsavers.trailing-edge.com/pdf/dec/vax/vms/5.0/AA-LB22A-TE_VMS_5.0_Release_Notes_198804.pdf|title=VMS Version 5.0 Release Notes|date=April 1988|publisher=DEC|access-date=July 21, 2021}}</ref> * '''Desktop-VMS''' was a short-lived distribution of VAX/VMS sold with [[VAXstation]] systems. It consisted of a single [[CD-ROM]] containing a bundle of VMS, DECwindows, DECnet, VAXcluster support, and a setup process designed for non-technical users.<ref>{{cite web|url=http://home.iae.nl/users/pb0aia/vax/dsvs3100.html|title=DECUServe WORKSTATIONS Conference 8|access-date=December 22, 2020|date=January 11, 1989|author=Bob McCormick|website=home.iae.nl|archive-date=July 10, 2022|archive-url=https://web.archive.org/web/20220710024529/http://home.iae.nl/users/pb0aia/vax/dsvs3100.html|url-status=dead}}</ref><ref>{{cite web|url=http://blog.nozell.com/2004/02/office-archeology.html|title=Office Archaeology|date=February 24, 2004|access-date=December 22, 2020|website=blog.nozell.com}}</ref> Desktop-VMS could either be run directly from the CD or could be installed onto a hard drive.<ref>{{cite web|url=http://www.digital.com/info/SP25F4/SP25F4PF.PDF|archive-url=https://web.archive.org/web/20000816181649/http://www.digital.com/info/SP25F4/SP25F4PF.PDF|title=Software Product Description - Desktop-VMS, Version 1.2|publisher=Digital|date=January 1991|archive-date=August 16, 2000|access-date=February 2, 2022}}</ref> Desktop-VMS had its own versioning scheme beginning with V1.0, which corresponded to the V5.x releases of VMS.<ref>{{cite web|url=http://vaxarchive.org/hardware/vms-hw.html|title=OpenVMS pages of proGIS Germany|website=vaxarchive.org|access-date=December 22, 2020}}</ref> * An unofficial derivative of VAX/VMS named '''MOS VP''' ({{lang-ru|Многофункциональная операционная система с виртуальной памятью, МОС ВП|lit=Multifunctional Operating System with Virtual Memory}})<ref>{{cite web|url=http://oldpc.su/lib/gsp/sm89.pdf|title=Computer Complexes, Technical Equipment, Software And Support Of The System Of Small Electronic Computer Machines (SM Computer)|date=May 1989|language=Russian|publisher=Soviet Union Research Institute of Information and Economics|access-date=October 16, 2021|editor=D.O. Andrievskaya}}</ref> was created in the [[Soviet Union]] during the 1980s for the [[VAX#Clones|SM 1700]] line of VAX clone hardware.<ref>{{cite journal|url=http://www.swsys.ru/index.php?page=article&id=1480#|journal=Software Systems Journal|volume=1988|issue=3|title=Basic software for 32-bit SM computer models|author1=Prokhorov N.L.|author2=Gorskiy V.E.|language=Russian|access-date=October 15, 2021}}</ref><ref>{{cite journal|url=http://www.swsys.ru/index.php?page=article&id=1491#|journal=Software Systems Journal|volume=1988|issue=4|title=Multifunctional operating system that supports virtual memory for 32-bit computers|author1=Egorov G.A.|author2=Ostapenko G.P.|author3=Stolyar N.G.|author4=Shaposhnikov V.A.|language=Russian|access-date=October 15, 2021}}</ref> MOS VP added support for the [[Cyrillic script]] and translated parts of the user interface into Russian.<ref>{{cite web|url=https://mirrors.pdp-11.ru/_vax__/_MOC-32/MOC-32M45/moc-32m-install-1.1.pdf|title=Installing OS MOS-32M|date=June 16, 2012|access-date=October 15, 2021|language=Russian|website=pdp-11.ru|archive-date=October 27, 2021|archive-url=https://web.archive.org/web/20211027181221/https://mirrors.pdp-11.ru/_vax__/_MOC-32/MOC-32M45/moc-32m-install-1.1.pdf|url-status=dead}}</ref> Similar derivatives of MicroVMS known as ''MicroMOS VP'' ({{lang-ru|МикроМОС ВП}}) or ''MOS-32M'' ({{lang-ru|МОС-32М}}) were also created. With the V5.0 release in April 1988, DEC began to refer to VAX/VMS as simply VMS in its documentation.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/5.0/AA-LB22A-TE_VMS_5.0_Release_Notes_198804.pdf|title=VMS Version 5.0 Release Notes|date=April 1988|publisher=Digital Equipment Corporation|access-date=October 27, 2021}}</ref> In July 1992,<ref name=DuffB>{{cite web|url=https://tech-insider.org/vms/research/1992/0715.html|title=Digital Introduces First Generation of OpenVMS Alpha-Ready Systems|publisher=Digital Equipment Corporation|date=July 15, 1992|access-date=January 25, 2021}}</ref> DEC renamed VAX/VMS to OpenVMS as an indication of its support of [[open system (computing)|open systems]] industry standards such as [[POSIX]] and [[Unix]] compatibility,<ref name=POSix>{{cite web |title=OpenVMS Definition from PC Magazine Encyclopedia |url=https://www.pcmag.com/encyclopedia/term/48503/openvms}}</ref> and to drop the VAX connection since a migration to a different architecture was underway. The OpenVMS name was first used with the OpenVMS AXP V1.0 release in November 1992. DEC began using the OpenVMS VAX name with the V6.0 release in June 1993.<ref>{{cite web|url=http://www.vaxmacro.de/ovmsfaq.html|title=OpenVMS FAQ - What is the difference between VMS and OpenVMS?|author=Arne Vajhøj|date=November 29, 1999|access-date=January 25, 2021|website=vaxmacro.de|archive-date=September 24, 2021|archive-url=https://web.archive.org/web/20210924175454/http://www.vaxmacro.de/ovmsfaq.html|url-status=dead}}</ref> ===Port to Alpha=== {{See also|DEC PRISM#Legacy|DEC Alpha#History}} [[Image:dec-vms-vernon.png|thumb|"Vernon the Shark" logo for OpenVMS<ref>{{cite web|url=http://www.vaxination.ca/vms/shark/history.html|title=History of the Vernon the VMS shark|website=vaxination.ca|access-date=January 24, 2021}}</ref>]] During the 1980s, DEC planned to replace the VAX platform and the VMS operating system with the [[DEC PRISM|PRISM]] architecture and the [[DEC MICA|MICA]] operating system.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/memos/880530_Cutler_PRISM_vs_MIPS.pdf|title=DECwest/SDT Agenda|author=Dave Cutler|date=May 30, 1988|website=bitsavers.org}}</ref> When these projects were cancelled in 1988, a team was set up to design new VAX/VMS systems of comparable performance to [[RISC]]-based Unix systems.<ref name="supnik-alpha">{{cite web|url=http://simh.trailing-edge.com/semi/ev4.html|title=EV-4 (1992)|date=February 24, 2008}}</ref> 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.<ref name="ieee-alpha" /> This led to the creation of the [[DEC Alpha|Alpha]] architecture.<ref>{{cite web|url=https://dspace.mit.edu/bitstream/handle/1721.1/48380/managingtechnolo00katz.pdf|date=April 1993|title=Managing Technological Leaps: A study of DEC's Alpha Design Team}}</ref> The project to port VMS to Alpha began in 1989, and first booted on a prototype [[Alpha 21064#History|Alpha EV3]]-based ''Alpha Demonstration Unit'' in early 1991.<ref name="ieee-alpha">{{cite journal|title=How DEC developed Alpha|date=July 1992|doi=10.1109/6.144508|last1=Comerford|first1=R.|journal=IEEE Spectrum|volume=29|issue=7|pages=26–31}}</ref><ref>{{cite journal|last1=Supnik|first1=Robert M.|title=Digital's Alpha project|journal=Communications of the ACM|volume=36|issue=2|year=1993|pages=30–32|issn=0001-0782|doi=10.1145/151220.151223|s2cid=32694010|doi-access=free}}</ref> 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.<ref name="ia64-port">{{cite journal|url=http://www.decus.de/events/alphamigration/vortraege/porting_openvms_to_integrity.pdf|title=Porting OpenVMS to HP Integrity Servers|author=Clair Grant|journal=OpenVMS Technical Journal|volume=6|date=June 2005}}</ref> Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in [[VAX MACRO]] assembly code.<ref name="vms-20-years" /> 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]],<ref name="axp-port">{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-04-1992.pdf|title=Porting OpenVMS from VAX to Alpha AXP|author1=Nancy P. Kronenberg|author2=Thomas R. Benson|author3=Wayne M. Cardoza|author4=Ravindran Jagannathan|author5=Benjamin J. Thomas III|journal=Digital Technical Journal|volume=4|issue=4|pages=111–120|year=1992|access-date=April 27, 2024}}</ref> and the emulation of certain low-level details of the VAX architecture in [[PALcode]], such as [[interrupt handling]] and atomic queue instructions. The VMS port to Alpha resulted in the creation of two separate codebases - one for [[VAX]], and for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> 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.<ref name="ia64-port" /> When VMS was ported to Alpha, it was initially left as a 32-bit only operating system.<ref name="axp-port" /> 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v08-02-1996.pdf|title=Extending OpenVMS for 64-bit Addressable Virtual Memory|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=57–71|s2cid=9618620}}</ref> 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.<ref>{{cite journal|url=https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|archive-url=https://web.archive.org/web/20200219001633/https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|url-status=dead|archive-date=February 19, 2020|title=The OpenVMS Mixed Pointer Size Environment|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=72–82|s2cid=14874367}}</ref> This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the [[Alpha 21064]] and [[Alpha 21164]].<ref name="prog-concepts-i">{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf|title=VSI OpenVMS Programming Concepts Manual, Vol. 1|date=April 2020|access-date=October 7, 2020|publisher=VSI}}</ref> One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'' - which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref> ===Port to Intel Itanium=== [[Image:OpenVMS logo Swoosh 30 lg.jpg|thumb|"Swoosh" logo used by HP for OpenVMS]] In 2001, prior to its acquisition by [[Hewlett-Packard]], [[Compaq]] announced the port of OpenVMS to the [[Intel]] [[Itanium]] architecture.<ref>{{cite web|url=http://h71000.www7.hp.com/openvmstimes/openvmstimes.pdf|title=Compaq OpenVMS Times|date=January 2002|archive-url=https://web.archive.org/web/20060302213751/http://h71000.www7.hp.com/openvmstimes/openvmstimes.pdf|archive-date=March 2, 2006|url-status=dead}}</ref> 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.<ref>{{cite web|url=https://www.theregister.com/2001/06/25/farewell_then_alpha_hello_compaq/|title=Farewell then, Alpha – Hello, Compaq the Box Shifter |author=Andrew Orlowski|date=June 25, 2001|access-date=December 21, 2020|website=theregister.com}}</ref> The porting began in late 2001, and the first boot on took place on January 31, 2003.<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/alWtue7YLUw/m/x1_GVv1eFfEJ|title=OpenVMS Boots on Itanium on Friday Jan 31|date=January 31, 2003|access-date=December 21, 2020|author=Sue Skonetski|newsgroup=comp.os.vms}}</ref> The first boot consisted of booting a minimal system configuration on a [[List of Hewlett-Packard products#Itanium based|HP i2000]] workstation, logging in as the <code>SYSTEM</code> user, and running the <code>DIRECTORY</code> command. The Itanium port of OpenVMS supports specific models and configurations of [[HPE Integrity Servers]].<ref name="vms-8.4-spd" /> The Itanium releases were originally named ''HP OpenVMS Industry Standard 64 for Integrity Servers'', although the names ''OpenVMS I64'' or ''OpenVMS for Integrity Servers'' are more commonly used.<ref>{{cite web|url=https://vmssoftware.com/docs/ig_bvbv.pdf|title=HP C Installation Guide for OpenVMS Industry Standard 64 Systems|date=June 2007|publisher=HP|access-date=March 2, 2021}}</ref> 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.<ref name="ia64-port" /> This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included using the [[Extensible Firmware Interface]] (EFI) to boot the operating system,<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g04.pdf|title=OpenVMS Integrity Boot Environment|date=2005|access-date=December 21, 2020|author=Thomas Siebold|website=decus.de}}</ref> reimplementing the functionality previously provided by Alpha PALcode inside the kernel,<ref name="swis" /> using new executable file formats ([[Executable and Linkable Format]] and [[DWARF]]),<ref>{{cite web|url=http://www.hp-user-society.de/events/alphamigration/vortraege/porting_openvms_applications_to_itanium.pdf|title=Porting OpenVMS Applications to Itanium|access-date=December 21, 2020|website=hp-user-society.de|date=2005|author=Gaitan D’Antoni}}</ref> and adopting [[IEEE 754]] as the default floating point format.<ref>{{cite web|url=http://www.decus.de/events/alphamigration/vortraege/i64-floating-pt-wp.pdf|title=OpenVMS floating-point arithmetic on the Intel Itanium architecture|website=decus.de|access-date=December 21, 2020|date=2003}}</ref> 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.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref> 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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref> ===Port to x86-64=== When 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.<ref>{{cite press release|url=http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions|title=VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System.|date=July 31, 2014|archive-url=https://web.archive.org/web/20140810031139/http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions#.U-bjA7xxfZt|archive-date=August 10, 2014}}</ref> 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 V8.4-x. The x86-64 port is targeted for specific servers from [[Hewlett Packard Enterprise|HPE]] and [[Dell]], as well as certain virtual machine [[hypervisor]]s.<ref name="vms-roadmap-12-2019">{{cite web|url=https://vmssoftware.com/pdfs/VSI_Roadmap_20191209.pdf|title=OpenVMS Rolling Roadmap|date=December 2019|publisher=VSI|archive-url=https://web.archive.org/web/20200610041353/https://vmssoftware.com/pdfs/VSI_Roadmap_20191209.pdf|archive-date=June 10, 2020|url-status=dead|access-date=May 4, 2021}}</ref> Initial support was targeted for [[Kernel-based Virtual Machine|KVM]] and [[VirtualBox]]. Support for [[VMware]] was announced in 2020, and [[Hyper-V]] is being explored as a future target.<ref>{{cite web|url=https://vmssoftware.com/about/v9-qa/|title=VSI V9.0 Q&A|website=VSI|access-date=April 27, 2024}}</ref> In 2021, the x86-64 port was demonstrated running on an [[Intel Atom]]-based [[single-board computer]].<ref>{{cite AV media|url=https://www.youtube.com/watch?v=3H6AJigJnNs |archive-url=https://ghostarchive.org/varchive/youtube/20211211/3H6AJigJnNs| archive-date=December 11, 2021 |url-status=live|title=OpenVMS x64 Atom Project|date=June 1, 2021|access-date=June 2, 2021|author=VSI|website=[[YouTube]]}}{{cbignore}}</ref> As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with [[LLVM]],<ref>{{cite AV media|url=https://www.youtube.com/watch?v=xTaBkCBYskA |archive-url=https://ghostarchive.org/varchive/youtube/20211211/xTaBkCBYskA| archive-date=December 11, 2021 |url-status=live|title=2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"|website=[[YouTube]]|date=October 31, 2017}}{{cbignore}}</ref> changing the boot process so that OpenVMS is booted from a memory disk,<ref>{{cite web|url=http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|title=State of the Port to x86_64 January 2017.|date=January 6, 2017|archive-url=https://web.archive.org/web/20191104221854/http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|archive-date=November 4, 2019|url-status=dead}}</ref> and simulating the four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS.<ref name="swis">{{cite AV media|url=https://www.youtube.com/watch?v=U8kcfvJ1Iec |archive-url=https://ghostarchive.org/varchive/youtube/20211211/U8kcfvJ1Iec| archive-date=December 11, 2021 |url-status=live|title=Re-architecting SWIS for X86-64|date=October 8, 2017|author=Camiel Vanderhoeven|website=[[YouTube]]|access-date=October 21, 2021}}{{cbignore}}</ref> The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref> ===Influence=== During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting [[Ultrix]] applications on top of the same kernel.<ref name="mica-business-plan">{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/mica/Mica_Software_Business_Plan_Mar87.pdf|title=MICA Software Business Plan|author1=Catherine Richardson|author2=Terry Morris|author3=Rockie Morgan|author4=Reid Brown|author5=Donna Meikle|date=March 1987|access-date=January 4, 2021|website=Bitsavers}}</ref> MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the [[Windows NT]] operating system, which was heavily inspired by the architecture of MICA.<ref>{{cite book |last1=Zachary |first1=G. Pascal |title=Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft |date=2014 |publisher=Open Road Media |isbn=978-1-4804-9484-8 |url=https://books.google.com/books?id=o2IkAwAAQBAJ&q=%22Dave+Cutler%22+march+13&pg=PT9 |access-date=January 4, 2021|language=en}}</ref> 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.<ref>{{cite web|url=https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story|title=Windows NT and VMS: The Rest of the Story|author=Mark Russinovich|date=October 30, 1998|access-date=January 4, 2021|website=ITPro Today}}</ref> A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref> ==Architecture== [[File:Openvms-system-architecture.svg|thumb|275px|The architecture of the OpenVMS operating system, demonstrating the layers of the system, and the access modes in which they typically run]] The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately-privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems). OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:<ref name="idsm-5.2" /><ref name="goatley-part-1">{{cite web|url=https://hunter.goatley.com/vms/internals1.html|title=Writing VMS Privileged Code Part I: The Fundamentals, Part 1|author1=Hunter Goatley|author2=Edward A. Heinrich|website=hunter.goatley.com|access-date=January 31, 2021}}</ref> * The availability of four [[protection ring|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 protection]]s 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 level]]s which are used for [[Synchronization (computer science)|synchronization]]. * Hardware support for delivering [[asynchronous system trap]]s 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).<ref name="swis" /> ===Executive and Kernel=== The 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.<ref name="idsm-5.2" /> 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.<ref name="goatley-part-1" /> 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.<ref>{{cite conference|url=https://www.scs.stanford.edu/nyu/04fa/sched/readings/vmm.pdf|title=A VMM security kernel for the VAX architecture|author1=Paul A. Karger|author2=Mary Ellen Zurko|author3=Douglas W. Benin|author4=Andrew H. Mason|author5=Clifford E. Kahnh|date=May 7–9, 1990|conference=Proceedings. 1990 IEEE Computer Society Symposium on Research in Security and Privacy|access-date=January 31, 2021|publisher=IEEE|doi=10.1109/RISP.1990.63834}}</ref> The [[Kernel (operating system)|Kernel]] comprises 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.<ref name="idsm-5.2" /><ref name="goatley-part-1" /> In addition, other functionality such as [[Files-11#Logical names|logical name]] management, synchronization and system service dispatch are implemented inside the Kernel. OpenVMS allows user mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref> ===File system=== {{Main|Files-11|Record Management Services}} The typical user and application interface into the [[file system]] is the [[Record Management Services]] (RMS), although applications can interface directly with the underlying file system through the [[QIO]] system services.<ref name="acp-qio-doc">{{cite web|url=https://vmssoftware.com/docs/VSI_IO_REF.pdf|title=VSI OpenVMS I/O User's Reference Manual|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> The file systems supported by VMS are referred to as the [[Files-11]] ''On-Disk Structures'' (ODS), the most significant of which are ''ODS-2'' and ''ODS-5''.<ref name="andy-goldstein-files-11">{{cite web|url=https://www.youtube.com/watch?v=b0YenelPw-Y| archive-url=https://web.archive.org/web/20210112225121/https://www.youtube.com/watch?v=b0YenelPw-Y| archive-date=January 12, 2021 | url-status=dead|title=Andy Goldstein on Files-11, the OpenVMS File Systems|date=July 25, 2019|access-date=January 3, 2021|publisher=VSI Official Channel}}</ref> VMS is also capable of accessing files on [[ISO 9660]] [[CD-ROM]]s and [[magnetic tape]] with [[Tape labels#ANSI tape labels|ANSI tape labels]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_Gd_to_File_Apps_23Jul19.pdf|title=VSI OpenVMS Guide to OpenVMS File Applications|publisher=VSI|date=July 23, 2019|access-date=January 13, 2021}}</ref> Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref> ===Command Language Interpreter=== 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 script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available as well. Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" /> Due to the 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 the process address space at supervisor access mode - a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" /> ==Features== [[File:DEC VAXstation 4000 96 OpenVMS 6.1.jpeg|thumb|VAXstation 4000 model 96 running OpenVMS V6.1, DECwindows Motif and the [[NCSA Mosaic]] browser]] ===Clustering=== {{Main|VMScluster}} OpenVMS supports [[Computer cluster|clustering]] (first called ''VAXcluster'' and later ''VMScluster''), where multiple computers run their own instance of the operating system. Clustered computers (nodes) may be fully independent from each other, or they may share devices like disk drives and printers. Communication across nodes provides a [[single system image]] abstraction.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_OpenVMS_Cluster_Systems.pdf|title=VSI OpenVMS Cluster Systems|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> Nodes may be connected to each other via a proprietary hardware connection called Cluster Interconnect or via a standard [[Ethernet]] [[local area network|LAN]]. OpenVMS supports up to 96 nodes in a single cluster. It also allows mixed-architecture clusters.<ref name="cluster-docs">{{cite web|url=https://vmssoftware.com/products/clusters/|title=VSI Products - Clusters|website=VSI|access-date=May 4, 2021}}</ref> OpenVMS clusters allow applications to function during planned or unplanned outages.<ref>{{cite web|url=https://www.digiater.nl/openvms/doc/alpha-v8.3/ovms_archived/BUILD_DEPEND_SYS.PDF|title=Building Dependable Systems: The OpenVMS Approach|date=May 1994|publisher=DEC|access-date=July 31, 2021}}</ref> Planned outages include hardware and software upgrades.<ref>{{cite web|archive-url=https://web.archive.org/web/20120229042903/http://www.openvms.org/stories.php?story=03%2F11%2F28%2F7758863|archive-date=February 29, 2012|url=http://www.openvms.org/stories.php?story=03/11/28/7758863|title=Cluster Uptime|date=November 28, 2003|access-date=December 20, 2020|url-status=live}}</ref> ===Networking=== {{Main|DECnet}} The [[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.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DECnet_IV_Gd_to_Networking.pdf|title=DECnet for OpenVMS Guide to Networking|publisher=VSI|access-date=January 14, 2021|date=August 2020|archive-date=January 21, 2021|archive-url=https://web.archive.org/web/20210121012741/https://vmssoftware.com/docs/VSI_DECnet_IV_Gd_to_Networking.pdf|url-status=dead}}</ref> VAX/VMS V1.0 featured support for DECnet Phase II,<ref>{{cite web |url=https://archive.org/download/bitsavers_decspd25.0_392688/25.03.01_7809_DECnet-VAX_V1.pdf |title=Software Product Description: DECnet-VAX, Version 1 |date=September 1978 |publisher=DEC |access-date=2023-05-23}}</ref> and modern versions of VMS support both the traditional Phase IV DECnet protocol, as well as the [[OSI protocols|OSI-compatible]] Phase V (also known as ''DECnet-Plus'').<ref>{{cite web|url=https://vmssoftware.com/products/decnet/|title=VSI Products - DECnet|publisher=VSI|access-date=January 14, 2021}}</ref> 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).<ref>{{cite web|url=https://archive.org/details/hack42_VMS-ULTRIX_Connection_Volume_1_System_Managers_Guide|title=VMS/ULTRIX System Manager's Guide|date=September 1990|publisher=Digital Equipment Corporation|access-date=January 21, 2021}}</ref><ref name="tcp-ip-services">{{cite web|url=https://vmssoftware.com/docs/VSI_TCPIP_USERS_GD.PDF|title=VSI OpenVMS TCP/IP User's Guide|publisher=VSI|access-date=January 14, 2021|date=August 2019}}</ref> TCP/IP Services is based on a port of the [[Berkeley Software Distribution|BSD]] network stack to OpenVMS,<ref>{{cite journal|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04623334|title=Parallelism and Performance in the OpenVMS TCP/IP Kernel|author1=Robert Rappaport|author2=Yanick Pouffary|author3=Steve Lieman|author4=Mary J. Marotta|journal=OpenVMS Technical Journal|volume=4|year=2004}}</ref> along with support for common protocols such as [[SSH]], [[DHCP]], [[FTP]] and [[SMTP]]. DEC sold a software package named [[PATHWORKS]] (originally known as the ''Personal Computer Systems Architecture'' or PCSA) which allowed [[personal computer]]s 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-01-1992.pdf|title=An Overview of the PATHWORKS Product Family|author1=Alan Abrahams|author2=David A. Low|journal=Digital Technical Journal|volume=4|issue=1|pages=8–14|year=1992|access-date=April 27, 2024}}</ref> PATHWORKS was later renamed to ''Advanced Server for OpenVMS'', and was eventually replaced with a VMS port of [[Samba (software)|Samba]] at the time of the Itanium port.<ref>{{cite web|url=http://de.openvms.org/TUD2005/02_Advanced_Server_and_Samba_Andy_Goldstein.pdf|title=Samba and OpenVMS|author=Andy Goldstein|date=2005|access-date=January 1, 2021|website=de.openvms.org}}</ref> DEC provided the [[Local Area Transport]] (LAT) protocol which allowed remote terminals and printers to be attached to a VMS system through a [[terminal server]] such as one of the [[DECserver]] family.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/ethernet/decserver_300/AA-LD84A-TK_LAT_Network_Concepts_Jun88.pdf|title=Local Area Transport Network Concepts|date=June 1988|publisher=DEC|access-date=January 14, 2021}}</ref> ===Programming=== DEC (and its successor companies) provided a wide variety of programming languages for VMS. Officially supported languages on VMS, either current or historical, include:<ref name="language-1985">{{cite web|url=http://bitsavers.org/pdf/dec/vax/handbook/VMS_Language_and_Tools_Handbook_1985.pdf|title=VAX/VMS Software Language and Tools Handbook|date=1985|access-date=December 31, 2020|website=bitsavers.org}}</ref><ref name="vsi-products">{{cite web|url=https://vmssoftware.com/products/list/|title=VSI List of Products|website=VSI|access-date=May 4, 2021}}</ref> {{Div col|colwidth=9em}} * [[VAX MACRO]] * [[BLISS]] * [[C (programming language)|C]] * [[DIGITAL Command Language|DCL]] * [[Fortran]] * [[Pascal (programming language)|Pascal]] * [[COBOL]] * [[BASIC]] * [[C++]] * [[Java (programming language)|Java]] * [[Common Lisp]] * [[APL (programming language)|APL]] * [[Ada (programming language)|Ada]] * [[PL/I]] * [[DIBOL]] * [[CORAL]] * [[OPS5]] * [[IBM RPG II|RPG II]] * [[MUMPS]] * [[MACRO-11]] * [[DEC Text Processing Utility|DECTPU]] * VAX SCAN {{Div col end}} 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 [[stack (abstract data type)|stacks]], [[processor register|registers]], etc., independent of programming language.<ref name="openvms-calling-standard">{{cite web|url=https://vmssoftware.com/docs/VSI_CALLING_STD.pdf|title=VSI OpenVMS Calling Standard|date=January 2021|access-date=May 4, 2021}}</ref> 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.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_II.pdf|title=VSI OpenVMS Programming Concepts Manual, Volume II|date=April 2020|access-date=May 4, 2021|publisher=VSI}}</ref> DEC created a tool named the ''Structure Definition Language'' (SDL), which allowed [[data type]] definitions to be generated for different languages from a common definition.<ref>{{cite web|url=https://www.digiater.nl/openvms/freeware/v30/sdl/freeware_readme.txt|title=SDL, LANGUAGE, Data Structure/Interface Definition Language|date=November 1996|access-date=January 3, 2021|website=digiater.nl}}</ref> ====Development tools==== [[File:Vax-vms-grey-wall.jpg|thumb|The "Grey Wall" of VAX/VMS documentation, at [[Living Computers: Museum + Labs]]]] DEC provided a collection of software development tools in a layered product named ''DECset'' (originally named ''VAXset'').<ref name="language-1985" /> This consisted of the following tools:<ref>{{cite web |title=DECset |url=https://vmssoftware.com/products/decset/ |access-date=January 2, 2021 |website=VSI}}</ref> * [[Language-Sensitive Editor]] (LSE) * ''Code Management System'' (CMS) a [[version control]] system * ''Module Management System'' (MMS), a [[build automation|build tool]] * the ''Source Code Analyzer (''SCA), a [[static analyzer]] * the ''Performance and Coverage Analyzer'' (''PCA''), a [[Profiling (computer programming)|profiler]] * ''Digital Test Manager'' (DTM), as a test manager * In addition, a number of [[text editor]]s are included in the operating system, including [[EDT (Digital)|EDT]], [[EVE (text editor)|EVE]] and [[TECO (text editor)|TECO]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|title=VSI OpenVMS DCL Dictionary: A–M|date=April 2020|access-date=January 2, 2021|publisher=VSI}}</ref> 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 interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref> In 2019, VSI released an officially-supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref> ====Database management==== DEC created a number of optional [[database]] products for VMS, some of which were marketed as the ''VAX Information Architecture'' family.<ref name="vax-info-handbook">{{cite web|url=http://bitsavers.trailing-edge.com/pdf/dec/vax/handbook/VMS_Information_Management_Handbook_1985.pdf|title=VAX/VMS Software Information Management Handbook|date=1985|access-date=January 24, 2021|publisher=Digital Equipment Corporation}}</ref> These products included: * [[Oracle Rdb|Rdb]] – A [[relational database]] system which originally used the proprietary ''Relational Data Operator'' (RDO) query interface, but later gained [[SQL]] support.<ref>{{cite web|url=http://www.oracle.com/technology/products/rdb/pdf/2003_tech_forums/13_rdbs_first_20_years.pdf|title=Rdb's First 20 Years: Memories and Highlights|author=Ian Smith|date=2004|archive-url=https://web.archive.org/web/20051103112619/http://www.oracle.com/technology/products/rdb/pdf/2003_tech_forums/13_rdbs_first_20_years.pdf|archive-date=November 3, 2005|url-status=dead|access-date=January 24, 2021}}</ref> * ''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]].<ref name="language-1985" /> * ''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.<ref>{{cite web|url=http://odl.sysworks.biz/disk$vaxdocmar002/database/acms_v43/6621/6621pro_contents.html|title=Compaq ACMS for OpenVMS Getting Started|publisher=Compaq|date=December 1999|access-date=January 24, 2021}}</ref> * ''RALLY'', ''DECadmire'' – [[Fourth-generation programming language]]s (4GLs) for generating database-backed applications.<ref>{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=c04622599|title=Building Dependable Systems: The OpenVMS Approach|date=March 1994|access-date=October 17, 2022|publisher=Digital Equipment Corporation}}</ref> DECadmire featured integration with ACMS, and later provided support for generating [[Visual Basic]] [[client-server]] applications for Windows PCs.<ref>{{cite web|url=http://h30266.www3.hpe.com/MasterIndex/cover_letter/cover_letter_0071573c.txt|title=Cover Letter for DECADMIRE V2.1 MUP Kit - DECADMIRE V2.1A|date=1995|publisher=Digital Equipment Corporation|access-date=January 24, 2021}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> In 1994, DEC sold Rdb, DBMS and CDD to [[Oracle Corporation|Oracle]], where they remain under active development.<ref>{{cite web|url=http://www.decus.de/slides/sy2004/21_04/2p06.pdf|title=Oracle Rdb Status and Direction|author1=Kevin Duffy|author2=Philippe Vigier|date=2004|access-date=January 24, 2021}}</ref> In 1995, DEC sold DSM to [[InterSystems]], who renamed it ''Open M'', and eventually replaced it with their [[InterSystems Caché|Caché]] product.<ref>{{cite web|url=http://h30266.www3.hpe.com/masterindex/cover_letter/cover_letter_013a1ce4.txt|title=Cover Letter re DSM|access-date=January 24, 2021|date=May 31, 1999|author1=Larry Goelz|author2=John Paladino|publisher=Compaq}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Examples of third-party database management systems for OpenVMS include [[MariaDB]],<ref>{{cite web|url=http://www3.sympatico.ca/n.rieck/docs/openvms_notes_mysql_mariardb.html|title=OpenVMS Notes MySQL and MariaDB|author=Neil Rieck|date=June 29, 2020|access-date=January 24, 2021|archive-date=January 31, 2021|archive-url=https://web.archive.org/web/20210131062246/http://www3.sympatico.ca/n.rieck/docs/openvms_notes_mysql_mariardb.html|url-status=dead}}</ref> [[Mimer SQL]]<ref>{{cite web|url=https://www.vmsconsultancy.com/download/NL-VMSUpdate-2017/MimerSQL%20VMSSIG%20Holland.pdf|title=Mimer SQL on OpenVMS Present and Future|author=Bengt Gunne|date=2017|access-date=April 27, 2024}}</ref> ([[Itanium]] and [[x86-64]]<ref>{{cite web|url=https://developer.mimer.com/mimer-sql-is-now-available-for-openvms-on-x86/|title=Mimer SQL is now available for OpenVMS on x86|publisher=Mimer Information Technology AB|date=2023}}</ref>), and [[System 1032]].<ref>{{cite web|url=https://www.rocketsoftware.com/products/rocket-m204/rocket-system-1032|title=Rocket Software System 1032|publisher=Rocket Software|access-date=January 24, 2021|archive-date=January 22, 2021|archive-url=https://web.archive.org/web/20210122232806/https://www.rocketsoftware.com/products/rocket-m204/rocket-system-1032|url-status=dead}}</ref> ===User interfaces=== [[File:Openvms-8.4-2L1-dcl.png|thumb|right|OpenVMS Alpha V8.4-2L1, showing the DCL CLI in a terminal session]] VMS was originally designed to be used and managed interactively using DEC's text-based [[video terminal]]s 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 terminal]]s such as the [[VT1000]] series. ====Text-based user interfaces==== {{Main|DIGITAL Command Language}} The [[DIGITAL Command Language]] (DCL) has served as the primary [[command language]] interpreter (CLI) of OpenVMS since the first release.<ref>{{cite book|title=Writing Real Programs in DCL |edition=2nd |first1=Stephen |last1=Hoffman |first2=Paul |last2=Anagnostopoulos|year=1999|publisher=Digital Press |isbn=1-55558-191-9}}</ref><ref name="vms-1.0-spd">{{cite web|url=http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/AE-C770B-TE%20VAX-VMS%20Operating%20System,%20Version%201.0%20SPD%2025.1.2.pdf|date=September 1978|title=Software Product Description – VAX/VMS Operating System, Version 1.0|publisher=Digital Equipment Corporation|access-date=October 21, 2021}}</ref><ref name="vms-8.4-spd" /> Other official CLIs available for VMS include the [[RSX-11]] MCR (VAX only), and various [[Unix shell]]s.<ref name="language-1985" /> DEC provided tools for creating [[text-based user interface]] applications – the ''Form Management System'' (FMS) and ''Terminal Data Management System'' (TDMS), later succeeded by ''DECforms''.<ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/HPFMS25.pdf|title=Software Product Description HP DECforms for OpenVMS, Version 4.0|website=Hewlett Packard Enterprise|access-date=January 1, 2021|date=August 2006}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/SPDDecforms40.pdf|title=Software Product Description HP FMS for OpenVMS, Version 2.5|website=Hewlett Packard Enterprise|access-date=January 1, 2021|date=January 2005}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/TDMSforVAXV19B.pdf|title=Compaq TDMS for OpenVMS VAX, Version 1.9B|date=July 2002|access-date=January 1, 2021|website=Hewlett Packard Enterprise}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> A lower level interface named ''Screen Management Services'' (SMG$), comparable to Unix [[curses (programming library)|curses]], also exists.<ref>{{cite web|url=http://h30266.www3.hpe.com/odl/vax/opsys/vmsos73/vmsos73/5935/5935pro_contents.html|title=OpenVMS RTL Screen Management (SMG$) Manual|date=2001|access-date=January 1, 2021|website=Hewlett Packard Enterprise|archive-date=December 4, 2020|archive-url=https://web.archive.org/web/20201204210834/http://h30266.www3.hpe.com/odl/vax/opsys/vmsos73/vmsos73/5935/5935pro_contents.html|url-status=dead}}</ref> ====Graphical user interfaces{{Anchor|DECwindows}}==== [[File:VAX-VMS-VWS.png|thumb|right|VWS 4.5 running on top of VAX/VMS V5.5-2]] [[File:VMS-XUI-Colour.png|thumb|right|DECwindows XUI window manager running on top of VAX/VMS V5.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#VAXstation I|VAXstation I]] in 1984.<ref>{{cite journal|url=http://www.bitsavers.org/pdf/dec/dtj/dtj_v01-02_mar1986.pdf|author1=Rick Spitz|author2=Peter George|author3=Stephen Zalewski|title=The Making of a Micro VAX Workstation|journal=Digital Technical Journal|volume=1|issue=2|year=1986|access-date=October 21, 2021}}</ref> It exposed an API called the User Interface Services (UIS).<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/vms_workstation/AL-GI10B-TN_MicroVMS_Workstation_Graphics_Programming_Guide_May1986.pdf|title=MicroVMS Workstation Graphics Programming Guide|date=May 1986|access-date=October 21, 2021|publisher=Digital Equipment Corporation}}</ref> It ran on a limited selection of VAX hardware.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/wjLKqt6l/dec-vws-internals#post3|title=comp.os.vms - Dec VWS Internals|newsgroup=comp.os.vms|date=January 4, 2007|access-date=February 27, 2021|author=Fred Kleinsorge}}</ref> * In 1989, DEC replaced VWS with a new [[X11]]-based windowing system named ''DECwindows''.<ref>{{cite journal|url=http://www.bitsavers.org/pdf/dec/dtj/dtj_v02-03_1990.pdf|title=An Overview of the DECwindows Architecture|year=1990|access-date=October 21, 2021|publisher=Digital Equipment Corporation|journal=Digital Technical Journal|volume=2|issue=3|author=Scott A. McGregor}}</ref> It was first included in VAX/VMS V5.1.<ref name="vaxmacro-release">{{cite web|url=http://www.vaxmacro.de/vvo.html|title=(Open)VMS(/ VAX), Version overview|website=vaxmacro.de|access-date=October 21, 2021|archive-date=October 22, 2020|archive-url=https://web.archive.org/web/20201022122158/http://www.vaxmacro.de/vvo.html|url-status=dead}}</ref> 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.<ref>{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_9916.html|title=Migrating VWS/UIS Applications to DECwindows?|work=HP OpenVMS ask the wizard|date=November 9, 2004|archive-url=https://web.archive.org/web/20180915122243/http://h41379.www4.hpe.com/wizard/wiz_9916.html|archive-date=September 15, 2018}}</ref> Parts of XUI were subsequently used by the [[Open Software Foundation]] as the foundation of the [[Motif toolkit]].<ref>{{cite journal|url=https://www.tuhs.org/Archive/Documentation/AUUGN/AUUGN-V10.4.pdf|title=Strategies for Writing Graphical UNIX Applications Productively and Portably|author=Janet Dobbs|date=August 1989|page=50|volume=10|number=4|journal=AUUG Newsletter|access-date=December 29, 2021}}</ref> * In 1991, DEC replaced XUI with the Motif toolkit, creating ''DECwindows Motif''.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DECW_USER_GD.pdf|title=Using DECwindows Motif for OpenVMS|date=October 2019|access-date=October 21, 2020|website=VSI}}</ref><ref>{{cite conference|title=Early Experience With DECwindows/Motif In the TRIUMF Central Control System|author1=S. Kadantsev|author2=M. Mouat|conference=13th International Conference on Cyclotrons and their Applications|pages=676–677|url=https://accelconf.web.cern.ch/accelconf/c92/papers/xi-11.pdf|access-date=August 28, 2019|archive-date=November 25, 2017|archive-url=https://web.archive.org/web/20171125063526/http://accelconf.web.cern.ch/AccelConf/c92/papers/xi-11.pdf|url-status=dead}}</ref> As a result, the [[Motif Window Manager]] became the default DECwindows interface in OpenVMS V6.0,<ref name="vaxmacro-release" /> although the XUI window manager remained as an option. * In 1996, as part of OpenVMS V7.1,<ref name="vaxmacro-release" /> DEC released the ''New Desktop'' interface for DECwindows Motif, based on the [[Common Desktop Environment]] (CDE).<ref>{{cite web|url=http://odl.sysworks.biz/disk$axpdocdec023/office/dwmot126/vmsdw126/gettingstarted/getting_started.html|title=Getting Started With the New Desktop|publisher=Digital Equipment Corporation|date=May 1996|access-date=October 21, 2021}}</ref> 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]]<ref>[http://www.faqs.org/faqs/graphics/opengl-faq/part1/ OpenGL Frequently Asked Questions (FAQ) [1/3&#93;]. Faqs.org. Retrieved on July 17, 2013.</ref> and [[Accelerated Graphics Port]] (AGP) graphics adapters. VMS also provides support for older graphics standards such as [[Graphical Kernel System|GKS]] and [[PHIGS]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_gks_spd.pdf|title=Software Product Description VSI Graphical Kernel System|date=2017|access-date=January 2, 2021|publisher=VSI}}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/DECPhigsV31forVAX.pdf|title=Software Product Description DEC PHIGS Version 3.1 for OpenVMS VAX|date=April 1995|access-date=January 2, 2021|website=Hewlett Packard Enterprise}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Modern versions of DECwindows are based on [[X.Org Server]].<ref name="vms-8.4-spd" /> ===Security=== OpenVMS provides various security features and mechanisms, including security identifiers, resource identifiers, subsystem identifiers, [[Access control list|ACLs]], [[intrusion detection]] and detailed security auditing and alarms.<ref name="guide-to-system-security">{{cite web|url=https://vmssoftware.com/docs/VSI_System_Security_Manual.pdf|title=VSI OpenVMS Guide to System Security|date=December 2019|access-date=April 26, 2021|publisher=VSI}}</ref> Specific versions evaluated at [[Trusted Computer System Evaluation Criteria]] Class C2 and, with the SEVMS security enhanced release at Class B1.<ref>National Computer Security Center (NCSC) Trusted Product Evaluation List (TPEL)</ref> OpenVMS also holds an ITSEC E3 rating (see [[National Computer Security Center|NCSC]] and [[Common Criteria]]).<ref>{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621379|title=HP OpenVMS Guide to System Security|publisher=Hewlett Packard|date=September 2003|access-date=October 21, 2021}}</ref> Passwords are hashed using the [[George B. Purdy#The Purdy polynomial|Purdy Polynomial]]. ====Vulnerabilities==== * Early versions of VMS included a number of privileged user accounts (including <code>SYSTEM</code>, <code>FIELD</code>, <code>SYSTEST</code> and <code>DECNET</code>) with default passwords which were often left unchanged by system managers.<ref>{{cite journal|last1=Green|first1=James L.|last2=Sisson|first2=Patricia L.|title=The "Father Christmas" Worm|journal=12th National Computer Security Conference Proceedings|date=June 1989|url=https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19920019024.pdf|accessdate=November 23, 2015|ref=green1989}}</ref><ref>{{cite web|url=https://www.giac.org/paper/gsna/176/security-audit-openvms-internal-auditors-perspective/106696|title=Security Audit on OpenVMS: An Internal Auditor's Perspective|date=November 2004|author=Kevin Rich|publisher=SANS Institute|access-date=July 21, 2021}}</ref> A number of [[computer worm]]s for VMS including the [[WANK (computer worm)|WANK worm]] and the [[Father Christmas (computer worm)|Father Christmas worm]] exploited these default passwords to gain access to nodes on DECnet networks.<ref>{{cite web|url=https://www.youtube.com/watch?v=Xf7gVma6_3g |archive-url=https://ghostarchive.org/varchive/youtube/20211211/Xf7gVma6_3g| archive-date=December 11, 2021 |url-status=live|title=DEFCON 16: Hacking OpenVMS|date=January 20, 2011|author1=Claes Nyberg|author2=Christer Oberg|author3=James Tusini|website=[[YouTube]]|access-date=July 21, 2021}}{{cbignore}}</ref> This issue was also described by [[Clifford Stoll]] in ''[[The Cuckoo's Egg (book)|The Cuckoo's Egg]]'' as a means by which [[Markus Hess]] gained unauthorized access to VAX/VMS systems.<ref>{{cite book |last1=Stoll |first1=Clifford |title=The Cuckoo's Egg : tracking a spy through the maze of computer espionage |date=1989 |publisher=Doubleday |location=New York |isbn=0-385-24946-2 |edition=1st}}</ref> In V5.0, the default passwords were removed, and it became mandatory to provide passwords for these accounts during system setup.<ref name="vms-5.0-rel-notes" /> * A 33-year-old vulnerability in VMS on VAX and 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 carry out a [[privilege escalation]] attack. 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 {{kbd|CTRL/Y}} and return to the DCL prompt, and the fact that DCL retains the privileges of the interrupted image.<ref>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.</ref> The buffer overflow bug allowed [[shellcode]] to be executed with the privileges of an interrupted image. This could be used in conjunction with an image installed with higher privileges than the attacker's account to bypass system security.<ref>{{cite web|title=Ghost in the DCL shell: OpenVMS, touted as ultra reliable, had a local root hole for 30 years|url=https://www.theregister.com/2018/02/06/openvms_vulnerability/|date=February 6, 2018|access-date=January 13, 2021|author=John Leyden|website=theregister.com}}</ref> ===POSIX compatibility=== Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref> ==Hobbyist programs== 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''.<ref>{{cite web |url=http://www.openvmshobbyist.com/openvms_history/hobbyist_history/hobbyist_faq/hobby.html |title=Compaq and DECUS expand Free License OpenVMS Hobbyist Program |publisher=Compaq |date=March 10, 1999 |access-date=August 1, 2021}}</ref> Since then, several companies producing OpenVMS software have made their products available under the same terms, such as Process Software.<ref>{{cite web|url=http://www.process.com/resources/openvms/hobbyist.html|title=Hobbyist Program|website=Process Software|access-date=April 24, 2020}}</ref> Prior to the x86-64 port, the age and cost of hardware capable of running OpenVMS made [[emulator]]s such as [[SIMH]] a common choice for hobbyist installations.<ref>{{cite web|url=https://sourceforge.net/p/vms-ports/wiki/VMSHardware/|title=VMS Hardware|author1=Bill Pedersen|author2=John Malmberg|website=vms-ports|access-date=July 30, 2021}}</ref> In March 2020, HPE announced the end of the OpenVMS Hobbyist Program.<ref>{{cite web|url=https://legacyos.org/hpe-sets-end-date-for-hobbyist-licenses-for-openvms/|title=HPE sets end date for hobbyist licenses for OpenVMS|access-date=July 4, 2020|archive-date=July 4, 2020|archive-url=https://web.archive.org/web/20200704031854/https://legacyos.org/hpe-sets-end-date-for-hobbyist-licenses-for-openvms/|url-status=dead}}</ref> This was followed by VSI's announcement of the ''Community License Program'' (CLP) in April 2020, which was intended as a replacement for the HPE Hobbyist Program.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-04-22-vsi-announces-community-license/|title=VMS Software Announces Community License|date=April 22, 2020|website=VSI|access-date=May 4, 2021}}</ref> The CLP was launched in July 2020, and provides licenses for VSI OpenVMS releases on Alpha, Integrity and x86-64 systems.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-07-28-community-license/|title=VMS Software Community License Available|date=July 28, 2020|website=VSI|access-date=May 4, 2021}}</ref> 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.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-06-11-community-license-updates/|title=VSI Announces Community License Updates|date=June 11, 2020|website=VSI|access-date=May 4, 2021}}</ref> ==Release history== {{mw-datatable}} {| class="wikitable mw-datatable mw-collapsible" style="text-align:center; margin-left:1em; margin-right:0" |+ Release history of OpenVMS |- ! Version ! Vendor ! Release date<br /><ref>{{cite web|url=http://h41379.www4.hpe.com/openvms/os/openvms-release-history.html|title=HP OpenVMS Systems - OpenVMS Release History|date=June 21, 2010|archive-url=https://web.archive.org/web/20181007091949/http://h41379.www4.hpe.com/openvms/os/openvms-release-history.html|archive-date=October 7, 2018}}</ref><ref name="vms-20-years" /><ref>{{cite web|url=https://vmssoftware.com/about/roadmap/|title=OpenVMS – A guide to the strategy and roadmap|website=VSI|access-date=September 27, 2021}}</ref> ! End of support<br /><ref>{{cite web|url=http://h41379.www4.hpe.com/openvms/openvms_supportchart.html|title=HP OpenVMS Systems - Supported Software Versions - January 2014|archive-url=https://web.archive.org/web/20181014105654/http://h41379.www4.hpe.com/openvms/openvms_supportchart.html|archive-date=October 14, 2018}}</ref><ref name="vsi-roadmap-2021">{{cite web|url=https://vmssoftware.com/docs/VMS_Software_Roadmap_2021.pdf|title=VSI OpenVMS Software Roadmap 2021|access-date=September 30, 2021|website=VSI}}</ref><ref>{{cite web|url=ftp://ftp.hp.com/pub/services/software/info/ovms.pdf|title=OpenVMS Software Technical Support Service|date=October 2003|publisher=Hewlett Packard|access-date=February 1, 2022|website=hp.com}}{{Dead link|date=January 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> ! Platform ! Significant changes, new hardware support<br /><ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/openvms-release-history.txt|title=OpenVMS Release History|publisher=HP|website=Bitsavers|access-date=January 23, 2022}}</ref><ref name="vaxmacro-release" /> |- | {{Version |o |X0.5}}{{refn|group=n|X0.5 was also known as "Base Level 5".<ref name="vms-x0.5" />}} | rowspan=72 | DEC | April 1978<ref name="vms-x0.5">{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/h3S9j5Q2LKU/m/v7ZNw_9Bja4J|author=Andy Goldstein|date=September 16, 1997|title=When Did VMS First Come Out?|newsgroup=comp.os.vms|access-date=March 5, 2022}}</ref> | rowspan=54 {{dunno}} | rowspan=57 | VAX | First version shipped to customers<ref name="what-is-vms">{{cite web|url=http://www.hoffmanlabs.com/vmsfaq/vmsfaq_001.html|title=What is OpenVMS? What is its history?|author=Stephen Hoffman|date=September 2006|access-date=January 3, 2021|website=hoffmanlabs.com|archive-date=May 18, 2021|archive-url=https://web.archive.org/web/20210518115130/http://www.hoffmanlabs.com/vmsfaq/vmsfaq_001.html|url-status=dead}}</ref> |- | {{Version |o |V1.0}} | August 1978 | First production release |- | {{Version |o |V1.01}} | {{dunno}}{{refn|group=n|While an exact release date is unknown, the V1.01 change log dates in the release notes for V1.5 suggest it was released some time after November 1978.<ref name="vms-1.5" />}} | Bug fixes<ref name="vms-1.5" /> |- | {{Version |o |V1.5}} | February 1979{{refn|group=n|For some of the early VAX/VMS releases where an official release date is not known, the date of the Release Notes has been used an approximation.}} | Support for native COBOL, BLISS compilers<ref name="vms-1.5">{{cite book|title=VAX/VMS Release Notes Version 1.5|publisher=DEC|date=February 1979|id=AA-D015B-TE}}</ref> |- | {{Version |o |V1.6}} | August 1979 | RMS-11 updates<ref>{{cite book|title=VAX/VMS Release Notes Version 1.6|publisher=DEC|date=August 1979|id=AA-J039A-TE}}</ref> |- | {{Version |o |V2.0}} | April 1980 | [[VAX-11#VAX-11/750|VAX-11/750]], new utilities including [[EDT (Digital)|EDT]] |- | {{Version |o |V2.1}} | {{dunno}}{{refn|group=n|The existence of releases V2.0 through V2.5 are documented in the V3.0 release notes.<ref>{{cite web|title=VAX/VMS Release Notes Version 3.0|publisher=DEC|date=May 1982|id=AA-D015D-TE|url=http://www.bitsavers.org/pdf/dec/vax/vms/3.0/AA-D015D-TE_VAX-VMS_Release_Notes_V3.0_May82.pdf|access-date=February 6, 2022}}</ref>}} | {{dunno}} |- | {{Version |o |V2.2}} | April 1981 | Process limit increased to 8,192<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/2.2/AA-K785A-TE_VAX_VMS_2.2_Internals_and_Data_Structures_Apr81.pdf|title=VAX/VMS Internals and Data Structures|date=April 1981|publisher=DEC|access-date=February 6, 2022}}</ref> |- | {{Version |o |V2.3}} | May 1981<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/2.3/AA-D016D-TE_VAX-11_2.3_Information_Directory_and_Index_May81.pdf|title=VAX-11 Information Directory and Index|date=May 1981|id=AA-D016D-TE|publisher=DEC|access-date=February 6, 2022}}</ref> | Security enhancements<ref>{{cite web|url=http://www.skip.net/DEC/spr-grpnam.txt|title=GRPNAM SECURITY HOLE IN LOGIN|publisher=DEC|access-date=February 6, 2022}}</ref> |- | {{Version |o |V2.4}} | {{dunno}} | {{dunno}} |- | {{Version |o |V2.5}} | {{dunno}} | BACKUP utility<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/jcT66erFNek/m/0-cfcv9x1fEJ|title=First Introduction of BACKUP utility|author=Bob Boyd|date=September 18, 1987|newsgroup=comp.os.vms|access-date=February 6, 2022}}</ref> |- | {{Version |o |V3.0}} | April 1982 | [[VAX-11#VAX-11/730|VAX-11/730]], [[VAX-11#VAX-11/725|VAX-11/725]], [[VAX-11#VAX-11/782|VAX-11/782]], [[Asymmetric multiprocessing|ASMP]] |- | {{Version |o |V3.1}} | August 1982 | PL/I runtime bundled with base OS<ref>{{cite book|title=VAX/VMS Release Notes Version 3.1|publisher=DEC|date=August 1982|id=AA-N472A-TE}}</ref> |- | {{Version |o |V3.2}} | December 1982 | Support for RA60, RA80, RA81 disks<ref>{{cite book|title=VAX/VMS Release Notes Version 3.2|publisher=DEC|date=December 1982|id=AA-P763A-TE}}</ref> |- | {{Version |o |V3.3}} | April 1983 | HSC50 disk controller, BACKUP changes<ref>{{cite book|title=VAX/VMS Release Notes Version 3.3|publisher=DEC|date=April 1983|id=AA-P764A-TE}}</ref> |- | {{Version |o |V3.4}} | June 1983 | Ethernet support for DECnet,<ref>{{cite book|title=VAX/VMS Release Notes Version 3.4|publisher=DEC|date=June 1983|id=AA-P765A-TE}}</ref> VAX-11/785 |- | {{Version |o |V3.5}} | November 1983 | Support for new I/O devices<ref>{{cite book|title=VAX/VMS Release Notes Version 3.5|publisher=DEC|date=November 1983|id=AA-P766A-TE}}</ref> |- | {{Version |o |V3.6}} | April 1984 | Bug fixes<ref>{{cite book|title=VAX/VMS Release Notes Version 3.6|publisher=DEC|date=April 1984|id=AA-V332A-TE}}</ref> |- | {{Version |o |V3.7}} | August 1984 | Support for new I/O devices<ref>{{cite book|title=VAX/VMS Release Notes Version 3.7|publisher=DEC|date=August 1984|id=AA-CJ33A-TE}}</ref> |- | {{Version |o |V4.0}} | September 1984 | [[VAX 8000|VAX 8600]], MicroVMS, VAXclusters<ref>[http://www.bitsavers.org/pdf/dec/vax/microfiche/vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/ vms-source-listings]</ref> |- | {{Version |o |V4.1}} | January 1985 | MicroVAX/VAXstation I, II<ref>[http://www.bitsavers.org/pdf/dec/vax/microfiche/vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-EF71A-SE__VAX-VMS_V4.1_SRC_LST_MCRF_UPD/ vms-source-listings]</ref> |- | {{Version |o |V4.2}} | October 1985 | [[Text Processing Utility]] |- | {{Version |o |V4.3}} | December 1985 | DELUA Ethernet adapter support |- | {{Version |o |V4.3A}} | January 1986 | VAX 8200 |- | {{Version |o |V4.4}} | July 1986 | VAX 8800/8700/85xx, Volume Shadowing |- | {{Version |o |V4.5}} | November 1986 | Support for more memory in MicroVAX II |- | {{Version |o |V4.5A}} | December 1986 | Ethernet VAXclusters |- | {{Version |o |V4.5B}} | March 1987 | VAXstation/MicroVAX 2000 |- | {{Version |o |V4.5C}} | May 1987 | MicroVAX 2000 cluster support |- | {{Version |o |V4.6}} | August 1987 | VAX 8250/8350/8530, RMS Journalling |- | {{Version |o |V4.7}} | January 1988 | First release installable from CD-ROM |- | {{Version |o |V4.7A}} | March 1988 | VAXstation 3200/3500, MicroVAX 3500/3600 |- | {{Version |o |V5.0}} | April 1988 | [[VAX 6000]], [[Symmetric multiprocessing|SMP]], LMF, Modular Executive |- | {{Version |o |V5.0-1}} | August 1988 | rowspan=2 | Bug fixes |- | {{Version |o |V5.0-2}} | rowspan=2 | October 1988 |- | {{Version |o |V5.0-2A}} | MicroVAX 3300/3400 |- | {{Version |o |V5.1}} | rowspan=2 | February 1989 | DECwindows |- | {{Version |o |V5.1-B}} | VAXstation 3100 30/40, Desktop-VMS |- | {{Version |o |V5.1-1}} | June 1989 | VAXstation 3520/3540, MicroVAX 3800/3900 |- | {{Version |o |V5.2}} | September 1989 | Cluster-wide process visibility/management |- | {{Version |o |V5.2-1}} | October 1989 | VAXstation 3100 38/48 |- | {{Version |o |V5.3}} | January 1990 | Support for third-party SCSI devices |- | {{Version |o |V5.3-1}} | April 1990 | Support for VAXstation SPX graphics |- | {{Version |o |V5.3-2}} | May 1990 | Support for new I/O devices |- | {{Version |o |V5.4}} | rowspan=2 | October 1990 | VAX 65xx, VAX Vector Architecture |- | {{Version |o |V5.4-0A}} | [[VAX 9000]], bug fixes for VAX 6000 systems |- | {{Version |o |V5.4-1}} | November 1990 | New models of VAX 9000, VAXstation, VAXft |- | {{Version |o |V5.4-1A}} | January 1991 | VAX 6000-400 |- | {{Version |o |V5.4-2}} | March 1991 | VAX 4000 Model 200, new I/O devices |- | {{Version |o |V5.4-3}} | October 1991 | [[FDDI]] adapter support |- | {{Version |o |V5.5}} | rowspan=2 | November 1991 | Cluster-wide batch queue, new VAX models |- | {{Version |o |A5.5}} | Same as V5.5 but without new batch queue |- | {{Version |o |V5.5-1}} | July 1992 | Bug fixes for batch/print queue |- | {{Version |o |V5.5-2HW}} | September 1992 | [[VAX 7000/10000]], and other new VAX hardware |- | {{Version |o |V5.5-2}} | November 1992 | rowspan=2 | September 1995 | Consolidation of previous hardware releases |- | {{Version |o |V5.5-2H4}} | rowspan=2 | August 1993 | New [[VAX 4000]] models, additional I/O devices |- | {{Version |o |V5.5-2HF}} | rowspan=8 {{dunno}} | [[VAXft]] 810 |- | {{Version |o |V1.0}}{{refn|group=n|While the versioning scheme reset to V1.0 for the first AXP (Alpha) releases, these releases were contemporaneous with the V5.x releases and had a similar feature set.}} | November 1992 | rowspan=3 | Alpha | First release for Alpha architecture |- | {{Version |o |V1.5}} | May 1993 | Cluster and SMP support for Alpha |- | {{Version |o |V1.5-1H1}} | October 1993 | New DEC 2000, DEC 3000 models |- | {{Version |o |V6.0}} | June 1993 | VAX | [[Trusted Computer System Evaluation Criteria|TCSEC]] C2 compliance, [[ISO 9660]], Motif |- | {{Version |o |V6.1}} | April 1994 | VAX, Alpha | Merger of VAX and Alpha releases, PCSI |- | {{Version |o |V6.1-1H1}} | September 1994 | rowspan=2 | Alpha | rowspan=2 | New AlphaStation, AlphaServer models |- | {{Version |o |V6.1-1H2}} | November 1994 |- | {{Version |o |V6.2}} | June 1995 | rowspan=5 | March 1998 | VAX, Alpha | Command Recall, DCL$PATH, SCSI clusters |- | {{Version |o |V6.2-1H1}} | December 1995 | rowspan=3 | Alpha | rowspan=3 | New AlphaStation, AlphaServer models |- | {{Version |o |V6.2-1H2}} | March 1996 |- | {{Version |o |V6.2-1H3}} | May 1996 |- | {{Version |o |V7.0}} | January 1996 | rowspan=2 | VAX, Alpha | 64-bit addressing, Fast I/O, [[Thread (computing)#Kernel threads|Kernel Threads]] |- | {{Version |o |V7.1}} | January 1997 | rowspan=4 | July 2000 | Very Large Memory support, DCL PIPE, CDE |- | {{Version |o |V7.1-1H1}} | November 1997 | rowspan=3 | Alpha | AlphaServer 800 5/500, 1200 |- | {{Version |o |V7.1-1H2}} | April 1998 | Support for booting from third party devices |- | {{Version |o |V7.1-2}} | rowspan=9 | Compaq | December 1998 | Additional I/O device support |- | {{Version |o |V7.2}} | February 1999 | rowspan=3 | June 2002 | VAX, Alpha | OpenVMS Galaxy, ODS-5, [[Distributed Component Object Model|DCOM]] |- | {{Version |o |V7.2-1}} | July 1999 | rowspan=5 | Alpha | AlphaServer GS140, GS60, [[Alphaserver#Tsunami Family|Tsunami]] |- | {{Version |o |V7.2-1H1}} | June 2000 | AlphaServer GS160, GS320 |- | {{Version |o |V7.2-2}} | September 2001 | December 2002 | Minicopy support for Volume Shadowing |- | {{Version |o |V7.2-6C1}} | August 2001 | rowspan=2 {{dunno}} | rowspan=2 | DII COE conformance<ref>{{cite web|url=https://h41379.www4.hpe.com/solutions/government/coe/|title=Commitment to DII COE initiative provides longterm support and application portability for OpenVMS customers|website=[[Hewlett Packard Enterprise]]|access-date=2023-09-07}}</ref> |- | {{Version |o |V7.2-6C2}} | July 2002 |- | rowspan=2 {{Version |o |V7.3}} | rowspan=2 | June 2001 | December 2012 | VAX | '''Final release for VAX architecture''' |- | June 2004 | Alpha | [[Asynchronous Transfer Mode|ATM]] and [[Gigabit Ethernet|GBE]] clusters, Extended File Cache |- | {{Version |o |V7.3-1}} | rowspan=9 | HP | August 2002 | December 2004 | rowspan=2 | Alpha | Security and performance improvements |- | {{Version |o |V7.3-2}} | December 2003 | December 2006 | AlphaServer GS1280, DS15 |- | {{Version |o |V8.0}} | June 2003 | December 2003 | rowspan=2 | IA64 | Evaluation release for Integrity servers |- | {{Version |o |V8.1}} | December 2003 | February 2005 | Second evaluation release for Integrity servers |- | {{Version |o |V8.2}} | February 2005 | rowspan=2 | June 2010 | Alpha, IA64 | Production release for Integrity servers |- | {{Version |o |V8.2-1}} | September 2005 | IA64 | Support for HP Superdome, rx7620, rx8620 |- | {{Version |o |V8.3}} | August 2006 | rowspan=2 | December 2015 | Alpha, IA64 | Support for additional Integrity server models |- | {{Version |o |V8.3-1H1}} | November 2007 | IA64 | Support for HP BL860c, dual-core Itanium |- | {{Version |o |V8.4}} | June 2010 | December 2020 | Alpha, IA64 | Support for [[HPVM]], clusters over TCP/IP<ref>{{cite web|url=http://h71000.www7.hp.com/openvms84_announce.html|title=HP OpenVMS Systems - OpenVMS Version 8.4|archive-url=https://web.archive.org/web/20100902030522/http://h71000.www7.hp.com/openvms84_announce.html|archive-date=September 2, 2010|url-status=dead}}</ref> |- | {{Version |o |V8.4-1H1}} | rowspan=12 | VSI | May 2015 | rowspan=2 | December 2022 | rowspan=3 | IA64 | Support for [[Poulson (processor)|Poulson]] processors<ref>{{cite press release|url=https://www.vmssoftware.com/news/PR20150601/PR20150601_VSI_8.4-IHI.pdf|title=VMS Software, Inc. Launches New Version of OpenVMS Operating System Worldwide|date=June 1, 2015|access-date=June 4, 2015|archive-date=August 7, 2015|archive-url=https://web.archive.org/web/20150807031302/http://vmssoftware.com/news/PR20150601/PR20150601_VSI_8.4-IHI.pdf|url-status=dead}}</ref> |- | {{Version |o |V8.4-2}} | March 2016 | Support for HPE BL890c systems, UEFI 2.3 |- | rowspan=2 {{Version |co |V8.4-2L1}} | September 2016 | December 2024 | rowspan=2 | OpenSSL updated to 1.0.2<ref>{{cite press release|url=https://vmssoftware.com/about/news/2016-09-23-vms-software-inc-launches-new-version-8-4-2l1-of-openvms-operating-system-worldwide/|title=VMS Software, Inc. Launches New Version 8.4-2L1 of OpenVMS Operating System Worldwide|date=September 23, 2016|website=VSI|access-date=May 4, 2021}}</ref> |- | January 2017<ref>{{cite press release|url=https://vmssoftware.com/about/news/2017-01-27-vms-software-inc-launches-vsi-openvms-alpha-v8-4-2l1-for-alpha-hardware/|title=VMS Software, Inc. Launches VSI OpenVMS Alpha V8.4-2L1 for Alpha Hardware|date=January 27, 2017|website=VSI|access-date=May 4, 2021}}</ref> | rowspan=2 {{TBA}} | rowspan=2 | Alpha |- | {{Version | co |V8.4-2L2}} | July 2017 | '''Final release for Alpha architecture'''<ref name="september-2020-update">{{cite web|url=https://vmssoftware.com/products/roadmap/|archive-url=https://web.archive.org/web/20200927075701/https://vmssoftware.com/products/roadmap/|archive-date=September 27, 2020|title=Roadmap Update|access-date=September 23, 2020|date=September 2020|website=VSI}}</ref> |- | {{Version | co |V8.4-2L3}} | April 2021 | December 2028 | IA64 | '''Final release for Integrity servers'''<ref name="september-2020-update" /> |- | {{Version | o |V9.0}} | May 2020 | June 2021 | rowspan=6 | x86-64 | x86-64 Early Adopter's Kit<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-04-24-openvms-for-x86-eak-goes-to-first-customer-on-may-15-2020/|title=OpenVMS for x86 V9.0 EAK goes to first customer on May 15, 2020|date=April 24, 2020|website=VSI|access-date=May 4, 2021}}</ref> |- | {{Version |o |V9.1}} | June 2021 | September 2021 | x86-64 Field Test<ref name="vms-9.1" /> |- | {{Version |o |V9.1-A}} | September 2021 | April 2022 | HPE Proliant DL380, DECnet-Plus<ref name="vsi-9.1-A" /> |- | {{Version |o |V9.2}} | July 2022 | June 2023 | x86-64 Limited Production Release<ref name="vms9.2">{{cite web|url= https://vmssoftware.com/about/news/2022-07-14-openvms-v92-for-x86-announced/|access-date=July 14, 2022|date=July 14, 2022|title=VSI OpenVMS v9.2 Released|website=VSI}}</ref> |- | {{Version |co |V9.2-1}} | June 2023 | December 2026 | AMD CPUs, OpenSSL 3.0, native compilers<ref name="vms9.2-1">{{cite web|url= https://vmssoftware.com/about/news/2023-06-15-openvms-v9-2-1-release/|access-date=2023-06-15|date=2023-06-15|title=OpenVMS V9.2-1 Final Release|website=VSI}}</ref> |- | {{Version |c |V9.2-2}} | January 2024 | {{TBA}} | Bug fixes<ref name="vms9.2-2" /> |- | colspan="6" | <small>{{Version |l |show=111101}}</small> |} {{reflist|group=n}} ==See also== * [[Comparison of operating systems]] * [[Terry Shannon (writer)|Terry Shannon]] ==References== {{Reflist|30em}} ==Further reading== *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}} *{{cite book|title=OpenVMS AXP Internals and Data Structures: Version 1.5|url=https://books.google.com/books?id=sYYZAQAAIAAJ|isbn=978-1555581206|author1=Ruth Goldenberg|author2=Saro Saravanan|year=1994|publisher=Digital Press}} *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}} *{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}} *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}} *{{cite book|url=http://www.theminimumyouneedtoknow.com/app_book.html|title=The Minimum You Need to Know to Be an OpenVMS Application Developer|author=Roland Hughes|date=December 2006|publisher=Logikal Solutions |isbn=978-0-9770866-0-3}} ==External links== {{Commons category}} *[https://vmssoftware.com/about/roadmap/ VMS Software: Current Roadmap and Future Releases] *[https://docs.vmssoftware.com/ VMS Software: Documentation] *{{Webarchive|url=https://web.archive.org/web/20200112171116/http://www.hoffmanlabs.org/vmsfaq/|title=HP OpenVMS FAQ|date=January 12, 2020}} *[news://comp.os.vms/ comp.os.vms Usenet group], archives on [http://groups.google.com/group/comp.os.vms Google Groups] {{Digital Equipment Corporation}} {{Time-sharing operating systems}} {{Operating System}} [[Category:OpenVMS]] [[Category:OpenVMS software]] [[Category:1977 software]] [[Category:Cluster computing]] [[Category:High-availability cluster computing]] [[Category:Fault-tolerant computer systems]] [[Category:Digital Equipment Corporation]] [[Category:DEC operating systems]] [[Category:HP software]] [[Category:Compaq software]] [[Category:Parallel computing]] [[Category:X86-64 operating systems]] [[Category:Proprietary operating systems]] [[Category:Time-sharing operating systems]]'
New page wikitext, after the edit ($1) (new_wikitext)
'{{Short description|Computer operating system}} {{Use mdy dates|date=November 2022}} {{Infobox OS | name = OpenVMS | logo = Vsi-openvms-logo.svg | logo size = 250px | screenshot = DECwindows-openvms-v7.3-1.png | caption = OpenVMS V7.3-1 running the [[Common Desktop Environment|CDE]]-based DECwindows "New Desktop" GUI | developer = VMS Software Inc (VSI)<ref name=VSI.CW2014>{{cite news |newspaper=[[Computerworld]] |url=https://www.computerworld.com/article/2490683/operating-systems-hp-gives-openvms-new-life.html |title=HP gives OpenVMS new life |date=July 31, 2014|author=Patrick Thibodeau |access-date=October 21, 2021}}</ref> (previously [[Digital Equipment Corporation]], [[Compaq]], [[Hewlett-Packard]]) | source_model = [[Proprietary software|Closed-source]] with [[Open-source software|open-source]] components. Formerly [[source available]]<ref name="wizard-vms-source"/><ref>{{cite web|url=https://www.youtube.com/watch?v=E8X3tGlFgo8 |archive-url=https://ghostarchive.org/varchive/youtube/20211211/E8X3tGlFgo8| archive-date=December 11, 2021 |url-status=live|title=Webinar 16: x86 Update|date=October 15, 2021|publisher=VSI|access-date=November 2, 2021}}{{cbignore}}</ref> | kernel_type = [[Monolithic kernel]] with loadable modules | supported_platforms = [[VAX]], [[DEC Alpha|Alpha]], [[Itanium]], [[x86-64]] | ui = [[DIGITAL Command Language|DCL]] [[Command-line interface|CLI]] and [[DECwindows]] [[Graphical user interface|GUI]] | released = Announced: {{Start date and age|mf=yes|1977|10|25}}<br />V1.0 / {{Start date and age|mf=yes|1978|08}} | latest_release_version = V9.2-2<!-- If you update this, don't forget to update [[Comparison of operating systems]]--> | latest_release_date = {{Start date and age|2024|01|25}}<ref name="vms9.2-2">{{cite web|url=https://vmssoftware.com/about/news/2024-01-25-openvms-v922-release-availability/|access-date=2024-01-25|date=2024-01-25|title=OpenVMS V9.2-2 public availability|website=VSI}}</ref> | marketing_target = [[Server (computing)|Servers]] (historically [[Minicomputer]]s, [[Workstation]]s) | programmed_in = Primarily [[C (programming language)|C]], [[BLISS]], [[VAX MACRO]], [[DIGITAL Command Language|DCL]].<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/3SWQiRQA1Y4/m/npx29Nm-AwAJ|title=How much of VMS is still in MACRO-32?|author= Camiel Vanderhoeven|date=May 30, 2021|newsgroup=comp.os.vms|access-date=October 21, 2021}}</ref> Other languages also used.<ref>{{cite web|url=http://h41379.www4.hpe.com/faq/vmsfaq_002.html#vms8|work=The OpenVMS Frequently Asked Questions (FAQ)|title=2.7 In what language is OpenVMS written?|publisher=[[Hewlett Packard Enterprise]]|archive-url=https://web.archive.org/web/20180810010816/http://h41379.www4.hpe.com/faq/vmsfaq_002.html|archive-date=August 10, 2018}}</ref> | language = [[English language|English]], [[Japanese language|Japanese]].<ref>{{cite web|url=https://vmssoftware.com/products/jvms/|title=Japanese OpenVMS OS (JVMS)|website=VSI|access-date=February 5, 2021}}</ref> Historical support for [[Chinese language|Chinese]] (both [[Traditional Chinese|Traditional]] and [[Simplified Chinese|Simplified]] characters), [[Korean language|Korean]], [[Thai language|Thai]].<ref>{{cite journal|url=http://www.dtjcd.vmsresource.org.uk/pdfs/dtj_v05-03_1993.pdf|author=Michael M. T. Yau|title=Supporting the Chinese, Japanese, and Korean Languages in the OpenVMS Operating System|journal=Digital Technical Journal|volume=5|issue=3|pages=63–79|year=1993|access-date=October 21, 2021}}</ref> | updatemodel = Concurrent upgrades,<br />rolling upgrades | package_manager = PCSI and VMSINSTAL | working_state = Current | license = [[Proprietary software|Proprietary]] | website = {{URL|https://vmssoftware.com}} | influenced_by = [[RSX-11M]] | influenced = [[VAXELN]], [[DEC MICA|MICA]], [[Windows NT]] }} '''OpenVMS''', often referred to as just '''VMS''',<ref name="vms-20-years">{{cite web|url=https://h50146.www5.hpe.com/products/software/oe/openvms/history/vaxvms20/pdf/vmsbook.pdf|date=October 1997|title=OpenVMS at 20 Nothing stops it|publisher=Digital Equipment Corporation|access-date=February 12, 2021}}</ref> is a [[multi-user]], [[multiprocessing]] and [[virtual memory]]-based [[operating system]]. It is designed to support [[time-sharing]], [[batch processing]], [[transaction processing]] and [[workstation]] applications.<ref name="vms-8.4-spd">{{cite web | url = https://vmssoftware.com/docs/VSI_OVMS_SPDQS_OS_V842L1I_UPD1.pdf | title = Software Product Description and QuickSpecs - VSI OpenVMS Version 8.4-2L1 for Integrity servers | publisher = VMS Software Inc. | date = July 2019 | access-date = January 2, 2021 }}</ref> Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers.<ref>{{cite web|url=https://vmssoftware.com/docs/VMS_Software_Inc.-April_2019_Update_7am_Session.pdf|date=April 2019|access-date=May 4, 2021|title=VSI Business & New Products Update – April 9, 2019|publisher=VSI}}</ref><ref>{{cite magazine|url=https://www.informationweek.com/vms-operating-system-is-30-years-old-customers-believe-it-can-last-forever/d/d-id/1061051?|title=VMS Operating System Is 30 Years Old; Customers Believe It Can Last Forever |magazine=InformationWeek |date=November 1, 2007|author=Charles Babcock|access-date=February 19, 2021}}</ref> During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide.<ref>{{cite web|url=https://www.computerworld.com/article/2567299/openvms-survives-and-thrives.html|title=OpenVMS survives and thrives|author=Drew Robb|date=November 1, 2004 |publisher=computerworld.com|access-date=December 31, 2020}}</ref><ref>{{cite web|url=http://www2.computerworld.co.nz/article/516907/digital_tries_salvage_openvms/|title=Digital tries to salvage OpenVMS|author=Tao Ai Lei|date=May 30, 1998|access-date=December 31, 2020 |publisher=computerworld.co.nz}}</ref><ref>{{cite web|archive-url=https://web.archive.org/web/20060217141711/http://h71000.www7.hp.com/openvms/20th/vms20/vms20.ppt|archive-date=February 17, 2006|url=http://h71000.www7.hp.com/openvms/20th/vms20/vms20.ppt|date=October 1997|access-date=February 12, 2021|title=OpenVMS: 20 Years of Renewal|author=Jesse Lipcon|publisher=Digital Equipment Corporation}}</ref> It was first announced by [[Digital Equipment Corporation]] (DEC) as '''VAX/VMS''' (''Virtual Address eXtension/Virtual Memory System''<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/handbook/VAX_Hardware_Handbook_1979.pdf|title=VAX-11/780 Hardware Handbook|date=1979|access-date=October 17, 2022|publisher=[[Digital Equipment Corporation]]}}</ref>) alongside the [[VAX-11/780]] minicomputer in 1977.<ref name=RIP.CW1977>{{cite news |newspaper=[[Computerworld]] |author=Patrick Thibodeau |url=https://www.computerworld.com/article/1535041/openvms-r-i-p-1977-2020-2.html |title=OpenVMS, R.I.P. 1977-2020? |date=June 11, 2013 |access-date=April 27, 2024 }}</ref><ref>{{cite book |title=Chronology of Tech History |page=104 |url=https://books.google.com/books?isbn=130025307X |isbn=978-1300253075 |author=Tom Merritt |date=2012|publisher=Lulu.com }}</ref><ref name=OLD780>{{cite web |title=VAX 11/780 - OLD-COMPUTERS.COM : HISTORY / detailed info |url=https://www.old-computers.com/history/detail.asp?n=20&t=3 |access-date=April 25, 2020|archive-url=https://web.archive.org/web/20230926164342/https://www.old-computers.com/history/detail.asp?n=20&t=3|archive-date=September 26, 2023|url-status=dead}}</ref> OpenVMS has subsequently been [[ported]] to run on [[DEC Alpha]] systems, the [[Itanium]]-based [[HPE Integrity Servers]],<ref>{{cite web |url=https://vmssoftware.com/products/supported-platforms/ |title=Supported Platforms |website=VSI}}</ref> and select [[x86-64]] hardware and [[hypervisor]]s.<ref name="9.0 Rollout"/> Since 2014, OpenVMS is developed and supported by VMS Software Inc. (VSI).<ref name=NotPressRelease>{{Cite web |title=HP hands off OpenVMS development to VSI |url = https://www.techtimes.com/articles/11907/20140801/openvms-gets-a-new-leash-on-life.htm |website=Tech Times |date=August 1, 2014 |access-date=April 27, 2024}}</ref><ref name="vms-software-named-exclusive-developer">{{Cite press release |title = VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System |url=http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions |access-date=October 27, 2017}}</ref> OpenVMS offers [[high availability]] through [[computer cluster|clustering]]—the ability to distribute the system over multiple physical machines.<ref name=cluster-docs/> This allows clustered applications and data to remain continuously available while operating system software and hardware maintenance and upgrades are performed,<ref>{{cite web|archive-url=https://web.archive.org/web/20120229042903/http://www.openvms.org/stories.php?story=03%2F11%2F28%2F7758863|archive-date=February 29, 2012|url=http://www.openvms.org/stories.php?story=03/11/28/7758863|title=Cluster Uptime|date=November 28, 2003|access-date=December 20, 2020|url-status=live}}</ref> or if part of the cluster is destroyed.<ref>{{cite web|url=https://availabilitydigest.com/public_articles/0407/commerzbank.pdf|title=Commerzbank Survives 9/11 with OpenVMS Clusters|date=July 2009|access-date=April 27, 2024}}</ref> VMS cluster uptimes of 17 years have been reported.<ref>{{cite web|url=https://vmssoftware.com/docs/w1_Feb2018_Update.pdf|title=February 2018 Business & Technical Update|access-date=May 4, 2021|date=February 2018|publisher=VSI}}</ref> ==History== ===Origin and name changes=== [[File:VAX VMS logo.svg|thumb|right|Stylized "VAX/VMS" used by Digital]] In April 1975, [[Digital Equipment Corporation]] embarked on a project to design a [[32-bit]] extension to its [[PDP-11]] computer line. The hardware component was code named ''Star''; the operating system was code named ''Starlet''. Roger Gourd was the project lead for VMS. Software engineers [[Dave Cutler]], [[Dick Hustvedt]], and Peter Lipman acted as technical project leaders.<ref>{{cite interview |last=Cutler|first=Dave|subject-link=Dave Cutler|interviewer=Grant Saviers|title=Dave Cutler Oral History|url=https://www.youtube.com/watch?v=29RkHH-psrY |archive-url=https://ghostarchive.org/varchive/youtube/20211211/29RkHH-psrY| archive-date=December 11, 2021 |url-status=live|publisher=Computer History Museum|date=February 25, 2016|website=youtube.com|access-date=February 26, 2021}}{{cbignore}}</ref> The Star and Starlet projects culminated in the [[VAX-11#VAX-11/780|VAX-11/780]] computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in the name of several of the system libraries, including <code>STARLET.OLB</code> and <code>STARLET.MLB</code>.<ref name="what-is-vms" /> VMS was mostly written in [[VAX MACRO]] with some components written in [[BLISS]].<ref name="vms-20-years"/> One of the original goals for VMS was [[backward compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME), which allowed user-mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user-mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility-mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> [[File:Vms-albert-cheshire-cat.png|thumb|right|"Albert the [[Cheshire Cat]]" mascot for VAX/VMS, used by the [[DECUS]] VAX SIG<ref>{{cite web|url=http://www.openvmshobbyist.com/forum/viewthread.php?forum_id=130&thread_id=332|title=Hello from....well what used to be SpitBrook|date=February 27, 2007|access-date=January 24, 2021|website=openvmshobbyist.com}}</ref><ref>{{cite web|url=http://www.altiq.se/vax-vms/vax-vms-eng.html|title=Computer system VAX/VMS|website=altiq.se|access-date=January 24, 2021|archive-url=https://web.archive.org/web/20210201143630/http://www.altiq.se/vax-vms/vax-vms-eng.html|archive-date=February 1, 2021|url-status=dead}}</ref>]] A number of distributions of VAX/VMS were created: * '''MicroVMS''' was a distribution of VAX/VMS designed for [[MicroVAX]] and [[VAXstation]] hardware, which had less memory and disk space than larger VAX systems of the time.<ref>{{cite book |title=Getting Started with OpenVMS: A Guide for New Users |url=https://books.google.com/books?isbn=0080507352 |isbn=978-0080507354 |author=Michael D Duffy |date=2002| publisher=Elsevier }}</ref> MicroVMS split up VAX/VMS into multiple kits, which a customer could use to install a subset of VAX/VMS tailored to their specific requirements.<ref>{{cite news |newspaper=[[Computerworld]] |date=June 18, 1984 |page=7 |quote=The Micro VMS operating system announced last week by Digital Equipment Corp. for its Microvax I family of microcomputers is a prepackaged version of ... |title=Micro VMS operating system |url=https://books.google.com/books?id=aqjZTUJlyygC}}</ref> MicroVMS releases were produced for each of the V4.x releases of VAX/VMS and was discontinued when VAX/VMS V5.0 was released.<ref name=DEC.prof>{{cite magazine |magazine=DEC Professional Magazine |title=The VMS/MicroVMS merge |pages=74–84 |author=Kathleen D. Morse}}</ref><ref name="vms-5.0-rel-notes">{{cite web|url=http://bitsavers.trailing-edge.com/pdf/dec/vax/vms/5.0/AA-LB22A-TE_VMS_5.0_Release_Notes_198804.pdf|title=VMS Version 5.0 Release Notes|date=April 1988|publisher=DEC|access-date=July 21, 2021}}</ref> * '''Desktop-VMS''' was a short-lived distribution of VAX/VMS sold with [[VAXstation]] systems. It consisted of a single [[CD-ROM]] containing a bundle of VMS, DECwindows, DECnet, VAXcluster support, and a setup process designed for non-technical users.<ref>{{cite web|url=http://home.iae.nl/users/pb0aia/vax/dsvs3100.html|title=DECUServe WORKSTATIONS Conference 8|access-date=December 22, 2020|date=January 11, 1989|author=Bob McCormick|website=home.iae.nl|archive-date=July 10, 2022|archive-url=https://web.archive.org/web/20220710024529/http://home.iae.nl/users/pb0aia/vax/dsvs3100.html|url-status=dead}}</ref><ref>{{cite web|url=http://blog.nozell.com/2004/02/office-archeology.html|title=Office Archaeology|date=February 24, 2004|access-date=December 22, 2020|website=blog.nozell.com}}</ref> Desktop-VMS could either be run directly from the CD or could be installed onto a hard drive.<ref>{{cite web|url=http://www.digital.com/info/SP25F4/SP25F4PF.PDF|archive-url=https://web.archive.org/web/20000816181649/http://www.digital.com/info/SP25F4/SP25F4PF.PDF|title=Software Product Description - Desktop-VMS, Version 1.2|publisher=Digital|date=January 1991|archive-date=August 16, 2000|access-date=February 2, 2022}}</ref> Desktop-VMS had its own versioning scheme beginning with V1.0, which corresponded to the V5.x releases of VMS.<ref>{{cite web|url=http://vaxarchive.org/hardware/vms-hw.html|title=OpenVMS pages of proGIS Germany|website=vaxarchive.org|access-date=December 22, 2020}}</ref> * An unofficial derivative of VAX/VMS named '''MOS VP''' ({{lang-ru|Многофункциональная операционная система с виртуальной памятью, МОС ВП|lit=Multifunctional Operating System with Virtual Memory}})<ref>{{cite web|url=http://oldpc.su/lib/gsp/sm89.pdf|title=Computer Complexes, Technical Equipment, Software And Support Of The System Of Small Electronic Computer Machines (SM Computer)|date=May 1989|language=Russian|publisher=Soviet Union Research Institute of Information and Economics|access-date=October 16, 2021|editor=D.O. Andrievskaya}}</ref> was created in the [[Soviet Union]] during the 1980s for the [[VAX#Clones|SM 1700]] line of VAX clone hardware.<ref>{{cite journal|url=http://www.swsys.ru/index.php?page=article&id=1480#|journal=Software Systems Journal|volume=1988|issue=3|title=Basic software for 32-bit SM computer models|author1=Prokhorov N.L.|author2=Gorskiy V.E.|language=Russian|access-date=October 15, 2021}}</ref><ref>{{cite journal|url=http://www.swsys.ru/index.php?page=article&id=1491#|journal=Software Systems Journal|volume=1988|issue=4|title=Multifunctional operating system that supports virtual memory for 32-bit computers|author1=Egorov G.A.|author2=Ostapenko G.P.|author3=Stolyar N.G.|author4=Shaposhnikov V.A.|language=Russian|access-date=October 15, 2021}}</ref> MOS VP added support for the [[Cyrillic script]] and translated parts of the user interface into Russian.<ref>{{cite web|url=https://mirrors.pdp-11.ru/_vax__/_MOC-32/MOC-32M45/moc-32m-install-1.1.pdf|title=Installing OS MOS-32M|date=June 16, 2012|access-date=October 15, 2021|language=Russian|website=pdp-11.ru|archive-date=October 27, 2021|archive-url=https://web.archive.org/web/20211027181221/https://mirrors.pdp-11.ru/_vax__/_MOC-32/MOC-32M45/moc-32m-install-1.1.pdf|url-status=dead}}</ref> Similar derivatives of MicroVMS known as ''MicroMOS VP'' ({{lang-ru|МикроМОС ВП}}) or ''MOS-32M'' ({{lang-ru|МОС-32М}}) were also created. With the V5.0 release in April 1988, DEC began to refer to VAX/VMS as simply VMS in its documentation.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/5.0/AA-LB22A-TE_VMS_5.0_Release_Notes_198804.pdf|title=VMS Version 5.0 Release Notes|date=April 1988|publisher=Digital Equipment Corporation|access-date=October 27, 2021}}</ref> In July 1992,<ref name=DuffB>{{cite web|url=https://tech-insider.org/vms/research/1992/0715.html|title=Digital Introduces First Generation of OpenVMS Alpha-Ready Systems|publisher=Digital Equipment Corporation|date=July 15, 1992|access-date=January 25, 2021}}</ref> DEC renamed VAX/VMS to OpenVMS as an indication of its support of [[open system (computing)|open systems]] industry standards such as [[POSIX]] and [[Unix]] compatibility,<ref name=POSix>{{cite web |title=OpenVMS Definition from PC Magazine Encyclopedia |url=https://www.pcmag.com/encyclopedia/term/48503/openvms}}</ref> and to drop the VAX connection since a migration to a different architecture was underway. The OpenVMS name was first used with the OpenVMS AXP V1.0 release in November 1992. DEC began using the OpenVMS VAX name with the V6.0 release in June 1993.<ref>{{cite web|url=http://www.vaxmacro.de/ovmsfaq.html|title=OpenVMS FAQ - What is the difference between VMS and OpenVMS?|author=Arne Vajhøj|date=November 29, 1999|access-date=January 25, 2021|website=vaxmacro.de|archive-date=September 24, 2021|archive-url=https://web.archive.org/web/20210924175454/http://www.vaxmacro.de/ovmsfaq.html|url-status=dead}}</ref> ===Port to Alpha=== {{See also|DEC PRISM#Legacy|DEC Alpha#History}} [[Image:dec-vms-vernon.png|thumb|"Vernon the Shark" logo for OpenVMS<ref>{{cite web|url=http://www.vaxination.ca/vms/shark/history.html|title=History of the Vernon the VMS shark|website=vaxination.ca|access-date=January 24, 2021}}</ref>]] During the 1980s, DEC planned to replace the VAX platform and the VMS operating system with the [[DEC PRISM|PRISM]] architecture and the [[DEC MICA|MICA]] operating system.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/memos/880530_Cutler_PRISM_vs_MIPS.pdf|title=DECwest/SDT Agenda|author=Dave Cutler|date=May 30, 1988|website=bitsavers.org}}</ref> When these projects were cancelled in 1988, a team was set up to design new VAX/VMS systems of comparable performance to [[RISC]]-based Unix systems.<ref name="supnik-alpha">{{cite web|url=http://simh.trailing-edge.com/semi/ev4.html|title=EV-4 (1992)|date=February 24, 2008}}</ref> 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.<ref name="ieee-alpha" /> This led to the creation of the [[DEC Alpha|Alpha]] architecture.<ref>{{cite web|url=https://dspace.mit.edu/bitstream/handle/1721.1/48380/managingtechnolo00katz.pdf|date=April 1993|title=Managing Technological Leaps: A study of DEC's Alpha Design Team}}</ref> The project to port VMS to Alpha began in 1989, and first booted on a prototype [[Alpha 21064#History|Alpha EV3]]-based ''Alpha Demonstration Unit'' in early 1991.<ref name="ieee-alpha">{{cite journal|title=How DEC developed Alpha|date=July 1992|doi=10.1109/6.144508|last1=Comerford|first1=R.|journal=IEEE Spectrum|volume=29|issue=7|pages=26–31}}</ref><ref>{{cite journal|last1=Supnik|first1=Robert M.|title=Digital's Alpha project|journal=Communications of the ACM|volume=36|issue=2|year=1993|pages=30–32|issn=0001-0782|doi=10.1145/151220.151223|s2cid=32694010|doi-access=free}}</ref> 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.<ref name="ia64-port">{{cite journal|url=http://www.decus.de/events/alphamigration/vortraege/porting_openvms_to_integrity.pdf|title=Porting OpenVMS to HP Integrity Servers|author=Clair Grant|journal=OpenVMS Technical Journal|volume=6|date=June 2005}}</ref> Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in [[VAX MACRO]] assembly code.<ref name="vms-20-years" /> 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]],<ref name="axp-port">{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-04-1992.pdf|title=Porting OpenVMS from VAX to Alpha AXP|author1=Nancy P. Kronenberg|author2=Thomas R. Benson|author3=Wayne M. Cardoza|author4=Ravindran Jagannathan|author5=Benjamin J. Thomas III|journal=Digital Technical Journal|volume=4|issue=4|pages=111–120|year=1992|access-date=April 27, 2024}}</ref> and the emulation of certain low-level details of the VAX architecture in [[PALcode]], such as [[interrupt handling]] and atomic queue instructions. The VMS port to Alpha resulted in the creation of two separate codebases: one for [[VAX]], and another for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> The decision to use the 1.x version numbering stream for the pre-production quality releases of OpenVMS AXP confused some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms.<ref name="ia64-port" /> When VMS was ported to Alpha, it was initially left as a 32-bit only operating system.<ref name="axp-port" /> 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v08-02-1996.pdf|title=Extending OpenVMS for 64-bit Addressable Virtual Memory|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=57–71|s2cid=9618620}}</ref> 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.<ref>{{cite journal|url=https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|archive-url=https://web.archive.org/web/20200219001633/https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|url-status=dead|archive-date=February 19, 2020|title=The OpenVMS Mixed Pointer Size Environment|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=72–82|s2cid=14874367}}</ref> This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the [[Alpha 21064]] and [[Alpha 21164]].<ref name="prog-concepts-i">{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf|title=VSI OpenVMS Programming Concepts Manual, Vol. 1|date=April 2020|access-date=October 7, 2020|publisher=VSI}}</ref> One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'', which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref> ===Port to Intel Itanium=== [[Image:OpenVMS logo Swoosh 30 lg.jpg|thumb|"Swoosh" logo used by HP for OpenVMS]] In 2001, prior to its acquisition by [[Hewlett-Packard]], [[Compaq]] announced the port of OpenVMS to the [[Intel]] [[Itanium]] architecture.<ref>{{cite web|url=http://h71000.www7.hp.com/openvmstimes/openvmstimes.pdf|title=Compaq OpenVMS Times|date=January 2002|archive-url=https://web.archive.org/web/20060302213751/http://h71000.www7.hp.com/openvmstimes/openvmstimes.pdf|archive-date=March 2, 2006|url-status=dead}}</ref> 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.<ref>{{cite web|url=https://www.theregister.com/2001/06/25/farewell_then_alpha_hello_compaq/|title=Farewell then, Alpha – Hello, Compaq the Box Shifter |author=Andrew Orlowski|date=June 25, 2001|access-date=December 21, 2020|website=theregister.com}}</ref> The porting began in late 2001, and the first boot on took place on January 31, 2003.<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/alWtue7YLUw/m/x1_GVv1eFfEJ|title=OpenVMS Boots on Itanium on Friday Jan 31|date=January 31, 2003|access-date=December 21, 2020|author=Sue Skonetski|newsgroup=comp.os.vms}}</ref> The first boot consisted of booting a minimal system configuration on a [[List of Hewlett-Packard products#Itanium based|HP i2000]] workstation, logging in as the <code>SYSTEM</code> user, and running the <code>DIRECTORY</code> command. The Itanium port of OpenVMS supports specific models and configurations of [[HPE Integrity Servers]].<ref name="vms-8.4-spd" /> The Itanium releases were originally named ''HP OpenVMS Industry Standard 64 for Integrity Servers'', although the names ''OpenVMS I64'' or ''OpenVMS for Integrity Servers'' are more commonly used.<ref>{{cite web|url=https://vmssoftware.com/docs/ig_bvbv.pdf|title=HP C Installation Guide for OpenVMS Industry Standard 64 Systems|date=June 2007|publisher=HP|access-date=March 2, 2021}}</ref> 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.<ref name="ia64-port" /> This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included using the [[Extensible Firmware Interface]] (EFI) to boot the operating system,<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g04.pdf|title=OpenVMS Integrity Boot Environment|date=2005|access-date=December 21, 2020|author=Thomas Siebold|website=decus.de}}</ref> reimplementing the functionality previously provided by Alpha PALcode inside the kernel,<ref name="swis" /> using new executable file formats ([[Executable and Linkable Format]] and [[DWARF]]),<ref>{{cite web|url=http://www.hp-user-society.de/events/alphamigration/vortraege/porting_openvms_applications_to_itanium.pdf|title=Porting OpenVMS Applications to Itanium|access-date=December 21, 2020|website=hp-user-society.de|date=2005|author=Gaitan D’Antoni}}</ref> and adopting [[IEEE 754]] as the default floating point format.<ref>{{cite web|url=http://www.decus.de/events/alphamigration/vortraege/i64-floating-pt-wp.pdf|title=OpenVMS floating-point arithmetic on the Intel Itanium architecture|website=decus.de|access-date=December 21, 2020|date=2003}}</ref> 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 been translated with VEST.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref> 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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref> ===Port to x86-64=== When 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.<ref>{{cite press release|url=http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions|title=VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System.|date=July 31, 2014|archive-url=https://web.archive.org/web/20140810031139/http://www.businesswire.com/news/home/20140731006118/en/VMS-Software-Named-Exclusive-Developer-Future-Versions#.U-bjA7xxfZt|archive-date=August 10, 2014}}</ref> 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 V8.4-x. The x86-64 port is targeted for specific servers from [[Hewlett Packard Enterprise|HPE]] and [[Dell]], as well as certain virtual machine [[hypervisor]]s.<ref name="vms-roadmap-12-2019">{{cite web|url=https://vmssoftware.com/pdfs/VSI_Roadmap_20191209.pdf|title=OpenVMS Rolling Roadmap|date=December 2019|publisher=VSI|archive-url=https://web.archive.org/web/20200610041353/https://vmssoftware.com/pdfs/VSI_Roadmap_20191209.pdf|archive-date=June 10, 2020|url-status=dead|access-date=May 4, 2021}}</ref> Initial support was targeted for [[Kernel-based Virtual Machine|KVM]] and [[VirtualBox]]. Support for [[VMware]] was announced in 2020, and [[Hyper-V]] is being explored as a future target.<ref>{{cite web|url=https://vmssoftware.com/about/v9-qa/|title=VSI V9.0 Q&A|website=VSI|access-date=April 27, 2024}}</ref> In 2021, the x86-64 port was demonstrated running on an [[Intel Atom]]-based [[single-board computer]].<ref>{{cite AV media|url=https://www.youtube.com/watch?v=3H6AJigJnNs |archive-url=https://ghostarchive.org/varchive/youtube/20211211/3H6AJigJnNs| archive-date=December 11, 2021 |url-status=live|title=OpenVMS x64 Atom Project|date=June 1, 2021|access-date=June 2, 2021|author=VSI|website=[[YouTube]]}}{{cbignore}}</ref> As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with [[LLVM]],<ref>{{cite AV media|url=https://www.youtube.com/watch?v=xTaBkCBYskA |archive-url=https://ghostarchive.org/varchive/youtube/20211211/xTaBkCBYskA| archive-date=December 11, 2021 |url-status=live|title=2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"|website=[[YouTube]]|date=October 31, 2017}}{{cbignore}}</ref> changing the boot process so that OpenVMS is booted from a memory disk,<ref>{{cite web|url=http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|title=State of the Port to x86_64 January 2017.|date=January 6, 2017|archive-url=https://web.archive.org/web/20191104221854/http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|archive-date=November 4, 2019|url-status=dead}}</ref> and simulating the four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS.<ref name="swis">{{cite AV media|url=https://www.youtube.com/watch?v=U8kcfvJ1Iec |archive-url=https://ghostarchive.org/varchive/youtube/20211211/U8kcfvJ1Iec| archive-date=December 11, 2021 |url-status=live|title=Re-architecting SWIS for X86-64|date=October 8, 2017|author=Camiel Vanderhoeven|website=[[YouTube]]|access-date=October 21, 2021}}{{cbignore}}</ref> The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref> ===Influence=== During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting [[Ultrix]] applications on top of the same kernel.<ref name="mica-business-plan">{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/mica/Mica_Software_Business_Plan_Mar87.pdf|title=MICA Software Business Plan|author1=Catherine Richardson|author2=Terry Morris|author3=Rockie Morgan|author4=Reid Brown|author5=Donna Meikle|date=March 1987|access-date=January 4, 2021|website=Bitsavers}}</ref> MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the [[Windows NT]] operating system, which was heavily inspired by the architecture of MICA.<ref>{{cite book |last1=Zachary |first1=G. Pascal |title=Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft |date=2014 |publisher=Open Road Media |isbn=978-1-4804-9484-8 |url=https://books.google.com/books?id=o2IkAwAAQBAJ&q=%22Dave+Cutler%22+march+13&pg=PT9 |access-date=January 4, 2021|language=en}}</ref> 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.<ref>{{cite web|url=https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story|title=Windows NT and VMS: The Rest of the Story|author=Mark Russinovich|date=October 30, 1998|access-date=January 4, 2021|website=ITPro Today}}</ref> A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open-source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref> ==Architecture== [[File:Openvms-system-architecture.svg|thumb|275px|The architecture of the OpenVMS operating system, demonstrating the layers of the system, and the access modes in which they typically run]] The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems). OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:<ref name="idsm-5.2" /><ref name="goatley-part-1">{{cite web|url=https://hunter.goatley.com/vms/internals1.html|title=Writing VMS Privileged Code Part I: The Fundamentals, Part 1|author1=Hunter Goatley|author2=Edward A. Heinrich|website=hunter.goatley.com|access-date=January 31, 2021}}</ref> * The availability of four [[protection ring|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 protection]]s 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 level]]s which are used for [[Synchronization (computer science)|synchronization]]. * Hardware support for delivering [[asynchronous system trap]]s 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).<ref name="swis" /> ===Executive and Kernel=== The 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.<ref name="idsm-5.2" /> 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.<ref name="goatley-part-1" /> 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.<ref>{{cite conference|url=https://www.scs.stanford.edu/nyu/04fa/sched/readings/vmm.pdf|title=A VMM security kernel for the VAX architecture|author1=Paul A. Karger|author2=Mary Ellen Zurko|author3=Douglas W. Benin|author4=Andrew H. Mason|author5=Clifford E. Kahnh|date=May 7–9, 1990|conference=Proceedings. 1990 IEEE Computer Society Symposium on Research in Security and Privacy|access-date=January 31, 2021|publisher=IEEE|doi=10.1109/RISP.1990.63834}}</ref> The [[Kernel (operating system)|Kernel]] comprises 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.<ref name="idsm-5.2" /><ref name="goatley-part-1" /> In addition, other functionality such as [[Files-11#Logical names|logical name]] management, synchronization and system service dispatch are implemented inside the Kernel. OpenVMS allows user-mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref> ===File system=== {{Main|Files-11|Record Management Services}} The typical user and application interface into the [[file system]] is the [[Record Management Services]] (RMS), although applications can interface directly with the underlying file system through the [[QIO]] system services.<ref name="acp-qio-doc">{{cite web|url=https://vmssoftware.com/docs/VSI_IO_REF.pdf|title=VSI OpenVMS I/O User's Reference Manual|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> The file systems supported by VMS are referred to as the [[Files-11]] ''On-Disk Structures'' (ODS), the most significant of which are ''ODS-2'' and ''ODS-5''.<ref name="andy-goldstein-files-11">{{cite web|url=https://www.youtube.com/watch?v=b0YenelPw-Y| archive-url=https://web.archive.org/web/20210112225121/https://www.youtube.com/watch?v=b0YenelPw-Y| archive-date=January 12, 2021 | url-status=dead|title=Andy Goldstein on Files-11, the OpenVMS File Systems|date=July 25, 2019|access-date=January 3, 2021|publisher=VSI Official Channel}}</ref> VMS is also capable of accessing files on [[ISO 9660]] [[CD-ROM]]s and [[magnetic tape]] with [[Tape labels#ANSI tape labels|ANSI tape labels]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_Gd_to_File_Apps_23Jul19.pdf|title=VSI OpenVMS Guide to OpenVMS File Applications|publisher=VSI|date=July 23, 2019|access-date=January 13, 2021}}</ref> Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open-source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref> ===Command Language Interpreter=== An OpenVMS Command Language Interpreter (CLI) implements a [[command-line interface]] for OpenVMS, responsible for executing individual commands and ''command procedures'' (equivalent to [[shell script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available. Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" /> Because the CLI is loaded into the same address space as user code, and the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into the process address space at supervisor access mode, a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user-mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" /> ==Features== [[File:DEC VAXstation 4000 96 OpenVMS 6.1.jpeg|thumb|VAXstation 4000 model 96 running OpenVMS V6.1, DECwindows Motif and the [[NCSA Mosaic]] browser]] ===Clustering=== {{Main|VMScluster}} OpenVMS supports [[Computer cluster|clustering]] (first called ''VAXcluster'' and later ''VMScluster''), where multiple computers run their own instance of the operating system. Clustered computers (nodes) may be fully independent from each other, or they may share devices like disk drives and printers. Communication across nodes provides a [[single system image]] abstraction.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_OpenVMS_Cluster_Systems.pdf|title=VSI OpenVMS Cluster Systems|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> Nodes may be connected to each other via a proprietary hardware connection called Cluster Interconnect or via a standard [[Ethernet]] [[local area network|LAN]]. OpenVMS supports up to 96 nodes in a single cluster. It also allows mixed-architecture clusters.<ref name="cluster-docs">{{cite web|url=https://vmssoftware.com/products/clusters/|title=VSI Products - Clusters|website=VSI|access-date=May 4, 2021}}</ref> OpenVMS clusters allow applications to function during planned or unplanned outages.<ref>{{cite web|url=https://www.digiater.nl/openvms/doc/alpha-v8.3/ovms_archived/BUILD_DEPEND_SYS.PDF|title=Building Dependable Systems: The OpenVMS Approach|date=May 1994|publisher=DEC|access-date=July 31, 2021}}</ref> Planned outages include hardware and software upgrades.<ref>{{cite web|archive-url=https://web.archive.org/web/20120229042903/http://www.openvms.org/stories.php?story=03%2F11%2F28%2F7758863|archive-date=February 29, 2012|url=http://www.openvms.org/stories.php?story=03/11/28/7758863|title=Cluster Uptime|date=November 28, 2003|access-date=December 20, 2020|url-status=live}}</ref> ===Networking=== {{Main|DECnet}} The [[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.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DECnet_IV_Gd_to_Networking.pdf|title=DECnet for OpenVMS Guide to Networking|publisher=VSI|access-date=January 14, 2021|date=August 2020|archive-date=January 21, 2021|archive-url=https://web.archive.org/web/20210121012741/https://vmssoftware.com/docs/VSI_DECnet_IV_Gd_to_Networking.pdf|url-status=dead}}</ref> VAX/VMS V1.0 featured support for DECnet Phase II,<ref>{{cite web |url=https://archive.org/download/bitsavers_decspd25.0_392688/25.03.01_7809_DECnet-VAX_V1.pdf |title=Software Product Description: DECnet-VAX, Version 1 |date=September 1978 |publisher=DEC |access-date=2023-05-23}}</ref> and modern versions of VMS support both the traditional Phase IV DECnet protocol, as well as the [[OSI protocols|OSI-compatible]] Phase V (also known as ''DECnet-Plus'').<ref>{{cite web|url=https://vmssoftware.com/products/decnet/|title=VSI Products - DECnet|publisher=VSI|access-date=January 14, 2021}}</ref> 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).<ref>{{cite web|url=https://archive.org/details/hack42_VMS-ULTRIX_Connection_Volume_1_System_Managers_Guide|title=VMS/ULTRIX System Manager's Guide|date=September 1990|publisher=Digital Equipment Corporation|access-date=January 21, 2021}}</ref><ref name="tcp-ip-services">{{cite web|url=https://vmssoftware.com/docs/VSI_TCPIP_USERS_GD.PDF|title=VSI OpenVMS TCP/IP User's Guide|publisher=VSI|access-date=January 14, 2021|date=August 2019}}</ref> TCP/IP Services is based on a port of the [[Berkeley Software Distribution|BSD]] network stack to OpenVMS,<ref>{{cite journal|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04623334|title=Parallelism and Performance in the OpenVMS TCP/IP Kernel|author1=Robert Rappaport|author2=Yanick Pouffary|author3=Steve Lieman|author4=Mary J. Marotta|journal=OpenVMS Technical Journal|volume=4|year=2004}}</ref> along with support for common protocols such as [[SSH]], [[DHCP]], [[FTP]] and [[SMTP]]. DEC sold a software package named [[PATHWORKS]] (originally known as the ''Personal Computer Systems Architecture'' or PCSA) which allowed [[personal computer]]s 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-01-1992.pdf|title=An Overview of the PATHWORKS Product Family|author1=Alan Abrahams|author2=David A. Low|journal=Digital Technical Journal|volume=4|issue=1|pages=8–14|year=1992|access-date=April 27, 2024}}</ref> PATHWORKS was later renamed to ''Advanced Server for OpenVMS'', and was eventually replaced with a VMS port of [[Samba (software)|Samba]] at the time of the Itanium port.<ref>{{cite web|url=http://de.openvms.org/TUD2005/02_Advanced_Server_and_Samba_Andy_Goldstein.pdf|title=Samba and OpenVMS|author=Andy Goldstein|date=2005|access-date=January 1, 2021|website=de.openvms.org}}</ref> DEC provided the [[Local Area Transport]] (LAT) protocol which allowed remote terminals and printers to be attached to a VMS system through a [[terminal server]] such as one of the [[DECserver]] family.<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/ethernet/decserver_300/AA-LD84A-TK_LAT_Network_Concepts_Jun88.pdf|title=Local Area Transport Network Concepts|date=June 1988|publisher=DEC|access-date=January 14, 2021}}</ref> ===Programming=== DEC (and its successor companies) provided a wide variety of programming languages for VMS. Officially supported languages on VMS, either current or historical, include:<ref name="language-1985">{{cite web|url=http://bitsavers.org/pdf/dec/vax/handbook/VMS_Language_and_Tools_Handbook_1985.pdf|title=VAX/VMS Software Language and Tools Handbook|date=1985|access-date=December 31, 2020|website=bitsavers.org}}</ref><ref name="vsi-products">{{cite web|url=https://vmssoftware.com/products/list/|title=VSI List of Products|website=VSI|access-date=May 4, 2021}}</ref> {{Div col|colwidth=9em}} * [[VAX MACRO]] * [[BLISS]] * [[C (programming language)|C]] * [[DIGITAL Command Language|DCL]] * [[Fortran]] * [[Pascal (programming language)|Pascal]] * [[COBOL]] * [[BASIC]] * [[C++]] * [[Java (programming language)|Java]] * [[Common Lisp]] * [[APL (programming language)|APL]] * [[Ada (programming language)|Ada]] * [[PL/I]] * [[DIBOL]] * [[CORAL]] * [[OPS5]] * [[IBM RPG II|RPG II]] * [[MUMPS]] * [[MACRO-11]] * [[DEC Text Processing Utility|DECTPU]] * VAX SCAN {{Div col end}} 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 [[stack (abstract data type)|stacks]], [[processor register|registers]], etc., independent of programming language.<ref name="openvms-calling-standard">{{cite web|url=https://vmssoftware.com/docs/VSI_CALLING_STD.pdf|title=VSI OpenVMS Calling Standard|date=January 2021|access-date=May 4, 2021}}</ref> 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.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_II.pdf|title=VSI OpenVMS Programming Concepts Manual, Volume II|date=April 2020|access-date=May 4, 2021|publisher=VSI}}</ref> DEC created a tool named the ''Structure Definition Language'' (SDL), which allowed [[data type]] definitions to be generated for different languages from a common definition.<ref>{{cite web|url=https://www.digiater.nl/openvms/freeware/v30/sdl/freeware_readme.txt|title=SDL, LANGUAGE, Data Structure/Interface Definition Language|date=November 1996|access-date=January 3, 2021|website=digiater.nl}}</ref> ====Development tools==== [[File:Vax-vms-grey-wall.jpg|thumb|The "Grey Wall" of VAX/VMS documentation, at [[Living Computers: Museum + Labs]]]] DEC provided a collection of software development tools in a layered product named ''DECset'' (originally named ''VAXset'').<ref name="language-1985" /> This consisted of the following tools:<ref>{{cite web |title=DECset |url=https://vmssoftware.com/products/decset/ |access-date=January 2, 2021 |website=VSI}}</ref> * [[Language-Sensitive Editor]] (LSE) * ''Code Management System'' (CMS) a [[version control]] system * ''Module Management System'' (MMS), a [[build automation|build tool]] * the ''Source Code Analyzer (''SCA), a [[static analyzer]] * the ''Performance and Coverage Analyzer'' (''PCA''), a [[Profiling (computer programming)|profiler]] * ''Digital Test Manager'' (DTM), as a test manager * In addition, a number of [[text editor]]s are included in the operating system, including [[EDT (Digital)|EDT]], [[EVE (text editor)|EVE]] and [[TECO (text editor)|TECO]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|title=VSI OpenVMS DCL Dictionary: A–M|date=April 2020|access-date=January 2, 2021|publisher=VSI}}</ref> The OpenVMS Debugger supports all DEC compilers and many third-party languages. It allows breakpoints, watchpoints and interactive runtime program debugging using either a [[command line interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref> In 2019, VSI released an officially supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref> ====Database management==== DEC created a number of optional [[database]] products for VMS, some of which were marketed as the ''VAX Information Architecture'' family.<ref name="vax-info-handbook">{{cite web|url=http://bitsavers.trailing-edge.com/pdf/dec/vax/handbook/VMS_Information_Management_Handbook_1985.pdf|title=VAX/VMS Software Information Management Handbook|date=1985|access-date=January 24, 2021|publisher=Digital Equipment Corporation}}</ref> These products included: * [[Oracle Rdb|Rdb]] – A [[relational database]] system which originally used the proprietary ''Relational Data Operator'' (RDO) query interface, but later gained [[SQL]] support.<ref>{{cite web|url=http://www.oracle.com/technology/products/rdb/pdf/2003_tech_forums/13_rdbs_first_20_years.pdf|title=Rdb's First 20 Years: Memories and Highlights|author=Ian Smith|date=2004|archive-url=https://web.archive.org/web/20051103112619/http://www.oracle.com/technology/products/rdb/pdf/2003_tech_forums/13_rdbs_first_20_years.pdf|archive-date=November 3, 2005|url-status=dead|access-date=January 24, 2021}}</ref> * ''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]].<ref name="language-1985" /> * ''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.<ref>{{cite web|url=http://odl.sysworks.biz/disk$vaxdocmar002/database/acms_v43/6621/6621pro_contents.html|title=Compaq ACMS for OpenVMS Getting Started|publisher=Compaq|date=December 1999|access-date=January 24, 2021}}</ref> * ''RALLY'', ''DECadmire'' – [[Fourth-generation programming language]]s (4GLs) for generating database-backed applications.<ref>{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=c04622599|title=Building Dependable Systems: The OpenVMS Approach|date=March 1994|access-date=October 17, 2022|publisher=Digital Equipment Corporation}}</ref> DECadmire featured integration with ACMS, and later provided support for generating [[Visual Basic]] [[client-server]] applications for Windows PCs.<ref>{{cite web|url=http://h30266.www3.hpe.com/MasterIndex/cover_letter/cover_letter_0071573c.txt|title=Cover Letter for DECADMIRE V2.1 MUP Kit - DECADMIRE V2.1A|date=1995|publisher=Digital Equipment Corporation|access-date=January 24, 2021}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> In 1994, DEC sold Rdb, DBMS and CDD to [[Oracle Corporation|Oracle]], where they remain under active development.<ref>{{cite web|url=http://www.decus.de/slides/sy2004/21_04/2p06.pdf|title=Oracle Rdb Status and Direction|author1=Kevin Duffy|author2=Philippe Vigier|date=2004|access-date=January 24, 2021}}</ref> In 1995, DEC sold DSM to [[InterSystems]], who renamed it ''Open M'', and eventually replaced it with their [[InterSystems Caché|Caché]] product.<ref>{{cite web|url=http://h30266.www3.hpe.com/masterindex/cover_letter/cover_letter_013a1ce4.txt|title=Cover Letter re DSM|access-date=January 24, 2021|date=May 31, 1999|author1=Larry Goelz|author2=John Paladino|publisher=Compaq}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Examples of third-party database management systems for OpenVMS include [[MariaDB]],<ref>{{cite web|url=http://www3.sympatico.ca/n.rieck/docs/openvms_notes_mysql_mariardb.html|title=OpenVMS Notes MySQL and MariaDB|author=Neil Rieck|date=June 29, 2020|access-date=January 24, 2021|archive-date=January 31, 2021|archive-url=https://web.archive.org/web/20210131062246/http://www3.sympatico.ca/n.rieck/docs/openvms_notes_mysql_mariardb.html|url-status=dead}}</ref> [[Mimer SQL]]<ref>{{cite web|url=https://www.vmsconsultancy.com/download/NL-VMSUpdate-2017/MimerSQL%20VMSSIG%20Holland.pdf|title=Mimer SQL on OpenVMS Present and Future|author=Bengt Gunne|date=2017|access-date=April 27, 2024}}</ref> ([[Itanium]] and [[x86-64]]<ref>{{cite web|url=https://developer.mimer.com/mimer-sql-is-now-available-for-openvms-on-x86/|title=Mimer SQL is now available for OpenVMS on x86|publisher=Mimer Information Technology AB|date=2023}}</ref>), and [[System 1032]].<ref>{{cite web|url=https://www.rocketsoftware.com/products/rocket-m204/rocket-system-1032|title=Rocket Software System 1032|publisher=Rocket Software|access-date=January 24, 2021|archive-date=January 22, 2021|archive-url=https://web.archive.org/web/20210122232806/https://www.rocketsoftware.com/products/rocket-m204/rocket-system-1032|url-status=dead}}</ref> ===User interfaces=== [[File:Openvms-8.4-2L1-dcl.png|thumb|right|OpenVMS Alpha V8.4-2L1, showing the DCL CLI in a terminal session]] VMS was originally designed to be used and managed interactively using DEC's text-based [[video terminal]]s 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 terminal]]s such as the [[VT1000]] series. ====Text-based user interfaces==== {{Main|DIGITAL Command Language}} The [[DIGITAL Command Language]] (DCL) has served as the primary [[command language]] interpreter (CLI) of OpenVMS since the first release.<ref>{{cite book|title=Writing Real Programs in DCL |edition=2nd |first1=Stephen |last1=Hoffman |first2=Paul |last2=Anagnostopoulos|year=1999|publisher=Digital Press |isbn=1-55558-191-9}}</ref><ref name="vms-1.0-spd">{{cite web|url=http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/AE-C770B-TE%20VAX-VMS%20Operating%20System,%20Version%201.0%20SPD%2025.1.2.pdf|date=September 1978|title=Software Product Description – VAX/VMS Operating System, Version 1.0|publisher=Digital Equipment Corporation|access-date=October 21, 2021}}</ref><ref name="vms-8.4-spd" /> Other official CLIs available for VMS include the [[RSX-11]] MCR (VAX only), and various [[Unix shell]]s.<ref name="language-1985" /> DEC provided tools for creating [[text-based user interface]] applications – the ''Form Management System'' (FMS) and ''Terminal Data Management System'' (TDMS), later succeeded by ''DECforms''.<ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/HPFMS25.pdf|title=Software Product Description HP DECforms for OpenVMS, Version 4.0|website=Hewlett Packard Enterprise|access-date=January 1, 2021|date=August 2006}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/SPDDecforms40.pdf|title=Software Product Description HP FMS for OpenVMS, Version 2.5|website=Hewlett Packard Enterprise|access-date=January 1, 2021|date=January 2005}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/TDMSforVAXV19B.pdf|title=Compaq TDMS for OpenVMS VAX, Version 1.9B|date=July 2002|access-date=January 1, 2021|website=Hewlett Packard Enterprise}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> A lower level interface named ''Screen Management Services'' (SMG$), comparable to Unix [[curses (programming library)|curses]], also exists.<ref>{{cite web|url=http://h30266.www3.hpe.com/odl/vax/opsys/vmsos73/vmsos73/5935/5935pro_contents.html|title=OpenVMS RTL Screen Management (SMG$) Manual|date=2001|access-date=January 1, 2021|website=Hewlett Packard Enterprise|archive-date=December 4, 2020|archive-url=https://web.archive.org/web/20201204210834/http://h30266.www3.hpe.com/odl/vax/opsys/vmsos73/vmsos73/5935/5935pro_contents.html|url-status=dead}}</ref> ====Graphical user interfaces{{Anchor|DECwindows}}==== [[File:VAX-VMS-VWS.png|thumb|right|VWS 4.5 running on top of VAX/VMS V5.5-2]] [[File:VMS-XUI-Colour.png|thumb|right|DECwindows XUI window manager running on top of VAX/VMS V5.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#VAXstation I|VAXstation I]] in 1984.<ref>{{cite journal|url=http://www.bitsavers.org/pdf/dec/dtj/dtj_v01-02_mar1986.pdf|author1=Rick Spitz|author2=Peter George|author3=Stephen Zalewski|title=The Making of a Micro VAX Workstation|journal=Digital Technical Journal|volume=1|issue=2|year=1986|access-date=October 21, 2021}}</ref> It exposed an API called the User Interface Services (UIS).<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/vms_workstation/AL-GI10B-TN_MicroVMS_Workstation_Graphics_Programming_Guide_May1986.pdf|title=MicroVMS Workstation Graphics Programming Guide|date=May 1986|access-date=October 21, 2021|publisher=Digital Equipment Corporation}}</ref> It ran on a limited selection of VAX hardware.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/wjLKqt6l/dec-vws-internals#post3|title=comp.os.vms - Dec VWS Internals|newsgroup=comp.os.vms|date=January 4, 2007|access-date=February 27, 2021|author=Fred Kleinsorge}}</ref> * In 1989, DEC replaced VWS with a new [[X11]]-based windowing system named ''DECwindows''.<ref>{{cite journal|url=http://www.bitsavers.org/pdf/dec/dtj/dtj_v02-03_1990.pdf|title=An Overview of the DECwindows Architecture|year=1990|access-date=October 21, 2021|publisher=Digital Equipment Corporation|journal=Digital Technical Journal|volume=2|issue=3|author=Scott A. McGregor}}</ref> It was first included in VAX/VMS V5.1.<ref name="vaxmacro-release">{{cite web|url=http://www.vaxmacro.de/vvo.html|title=(Open)VMS(/ VAX), Version overview|website=vaxmacro.de|access-date=October 21, 2021|archive-date=October 22, 2020|archive-url=https://web.archive.org/web/20201022122158/http://www.vaxmacro.de/vvo.html|url-status=dead}}</ref> 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.<ref>{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_9916.html|title=Migrating VWS/UIS Applications to DECwindows?|work=HP OpenVMS ask the wizard|date=November 9, 2004|archive-url=https://web.archive.org/web/20180915122243/http://h41379.www4.hpe.com/wizard/wiz_9916.html|archive-date=September 15, 2018}}</ref> Parts of XUI were subsequently used by the [[Open Software Foundation]] as the foundation of the [[Motif toolkit]].<ref>{{cite journal|url=https://www.tuhs.org/Archive/Documentation/AUUGN/AUUGN-V10.4.pdf|title=Strategies for Writing Graphical UNIX Applications Productively and Portably|author=Janet Dobbs|date=August 1989|page=50|volume=10|number=4|journal=AUUG Newsletter|access-date=December 29, 2021}}</ref> * In 1991, DEC replaced XUI with the Motif toolkit, creating ''DECwindows Motif''.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DECW_USER_GD.pdf|title=Using DECwindows Motif for OpenVMS|date=October 2019|access-date=October 21, 2020|website=VSI}}</ref><ref>{{cite conference|title=Early Experience With DECwindows/Motif In the TRIUMF Central Control System|author1=S. Kadantsev|author2=M. Mouat|conference=13th International Conference on Cyclotrons and their Applications|pages=676–677|url=https://accelconf.web.cern.ch/accelconf/c92/papers/xi-11.pdf|access-date=August 28, 2019|archive-date=November 25, 2017|archive-url=https://web.archive.org/web/20171125063526/http://accelconf.web.cern.ch/AccelConf/c92/papers/xi-11.pdf|url-status=dead}}</ref> As a result, the [[Motif Window Manager]] became the default DECwindows interface in OpenVMS V6.0,<ref name="vaxmacro-release" /> although the XUI window manager remained as an option. * In 1996, as part of OpenVMS V7.1,<ref name="vaxmacro-release" /> DEC released the ''New Desktop'' interface for DECwindows Motif, based on the [[Common Desktop Environment]] (CDE).<ref>{{cite web|url=http://odl.sysworks.biz/disk$axpdocdec023/office/dwmot126/vmsdw126/gettingstarted/getting_started.html|title=Getting Started With the New Desktop|publisher=Digital Equipment Corporation|date=May 1996|access-date=October 21, 2021}}</ref> 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]]<ref>[http://www.faqs.org/faqs/graphics/opengl-faq/part1/ OpenGL Frequently Asked Questions (FAQ) [1/3&#93;]. Faqs.org. Retrieved on July 17, 2013.</ref> and [[Accelerated Graphics Port]] (AGP) graphics adapters. VMS also provides support for older graphics standards such as [[Graphical Kernel System|GKS]] and [[PHIGS]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_gks_spd.pdf|title=Software Product Description VSI Graphical Kernel System|date=2017|access-date=January 2, 2021|publisher=VSI}}</ref><ref>{{cite web|url=http://h30266.www3.hpe.com/PDFs/DECPhigsV31forVAX.pdf|title=Software Product Description DEC PHIGS Version 3.1 for OpenVMS VAX|date=April 1995|access-date=January 2, 2021|website=Hewlett Packard Enterprise}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Modern versions of DECwindows are based on [[X.Org Server]].<ref name="vms-8.4-spd" /> ===Security=== OpenVMS provides various security features and mechanisms, including security identifiers, resource identifiers, subsystem identifiers, [[Access control list|ACLs]], [[intrusion detection]] and detailed security auditing and alarms.<ref name="guide-to-system-security">{{cite web|url=https://vmssoftware.com/docs/VSI_System_Security_Manual.pdf|title=VSI OpenVMS Guide to System Security|date=December 2019|access-date=April 26, 2021|publisher=VSI}}</ref> Specific versions evaluated at [[Trusted Computer System Evaluation Criteria]] Class C2 and, with the SEVMS security enhanced release at Class B1.<ref>National Computer Security Center (NCSC) Trusted Product Evaluation List (TPEL)</ref> OpenVMS also holds an ITSEC E3 rating (see [[National Computer Security Center|NCSC]] and [[Common Criteria]]).<ref>{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621379|title=HP OpenVMS Guide to System Security|publisher=Hewlett Packard|date=September 2003|access-date=October 21, 2021}}</ref> Passwords are hashed using the [[George B. Purdy#The Purdy polynomial|Purdy Polynomial]]. ====Vulnerabilities==== * Early versions of VMS included a number of privileged user accounts (including <code>SYSTEM</code>, <code>FIELD</code>, <code>SYSTEST</code> and <code>DECNET</code>) with default passwords which were often left unchanged by system managers.<ref>{{cite journal|last1=Green|first1=James L.|last2=Sisson|first2=Patricia L.|title=The "Father Christmas" Worm|journal=12th National Computer Security Conference Proceedings|date=June 1989|url=https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19920019024.pdf|accessdate=November 23, 2015|ref=green1989}}</ref><ref>{{cite web|url=https://www.giac.org/paper/gsna/176/security-audit-openvms-internal-auditors-perspective/106696|title=Security Audit on OpenVMS: An Internal Auditor's Perspective|date=November 2004|author=Kevin Rich|publisher=SANS Institute|access-date=July 21, 2021}}</ref> A number of [[computer worm]]s for VMS including the [[WANK (computer worm)|WANK worm]] and the [[Father Christmas (computer worm)|Father Christmas worm]] exploited these default passwords to gain access to nodes on DECnet networks.<ref>{{cite web|url=https://www.youtube.com/watch?v=Xf7gVma6_3g |archive-url=https://ghostarchive.org/varchive/youtube/20211211/Xf7gVma6_3g| archive-date=December 11, 2021 |url-status=live|title=DEFCON 16: Hacking OpenVMS|date=January 20, 2011|author1=Claes Nyberg|author2=Christer Oberg|author3=James Tusini|website=[[YouTube]]|access-date=July 21, 2021}}{{cbignore}}</ref> This issue was also described by [[Clifford Stoll]] in ''[[The Cuckoo's Egg (book)|The Cuckoo's Egg]]'' as a means by which [[Markus Hess]] gained unauthorized access to VAX/VMS systems.<ref>{{cite book |last1=Stoll |first1=Clifford |title=The Cuckoo's Egg : tracking a spy through the maze of computer espionage |date=1989 |publisher=Doubleday |location=New York |isbn=0-385-24946-2 |edition=1st}}</ref> In V5.0, the default passwords were removed, and it became mandatory to provide passwords for these accounts during system setup.<ref name="vms-5.0-rel-notes" /> * A 33-year-old vulnerability in VMS on VAX and 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 carry out a [[privilege escalation]] attack. 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 {{kbd|CTRL/Y}} and return to the DCL prompt, and the fact that DCL retains the privileges of the interrupted image.<ref>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.</ref> The buffer overflow bug allowed [[shellcode]] to be executed with the privileges of an interrupted image. This could be used in conjunction with an image installed with higher privileges than the attacker's account to bypass system security.<ref>{{cite web|title=Ghost in the DCL shell: OpenVMS, touted as ultra reliable, had a local root hole for 30 years|url=https://www.theregister.com/2018/02/06/openvms_vulnerability/|date=February 6, 2018|access-date=January 13, 2021|author=John Leyden|website=theregister.com}}</ref> ===POSIX compatibility=== Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third-party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref> ==Hobbyist programs== 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''.<ref>{{cite web |url=http://www.openvmshobbyist.com/openvms_history/hobbyist_history/hobbyist_faq/hobby.html |title=Compaq and DECUS expand Free License OpenVMS Hobbyist Program |publisher=Compaq |date=March 10, 1999 |access-date=August 1, 2021}}</ref> Since then, several companies producing OpenVMS software have made their products available under the same terms, such as Process Software.<ref>{{cite web|url=http://www.process.com/resources/openvms/hobbyist.html|title=Hobbyist Program|website=Process Software|access-date=April 24, 2020}}</ref> Prior to the x86-64 port, the age and cost of hardware capable of running OpenVMS made [[emulator]]s such as [[SIMH]] a common choice for hobbyist installations.<ref>{{cite web|url=https://sourceforge.net/p/vms-ports/wiki/VMSHardware/|title=VMS Hardware|author1=Bill Pedersen|author2=John Malmberg|website=vms-ports|access-date=July 30, 2021}}</ref> In March 2020, HPE announced the end of the OpenVMS Hobbyist Program.<ref>{{cite web|url=https://legacyos.org/hpe-sets-end-date-for-hobbyist-licenses-for-openvms/|title=HPE sets end date for hobbyist licenses for OpenVMS|access-date=July 4, 2020|archive-date=July 4, 2020|archive-url=https://web.archive.org/web/20200704031854/https://legacyos.org/hpe-sets-end-date-for-hobbyist-licenses-for-openvms/|url-status=dead}}</ref> This was followed by VSI's announcement of the ''Community License Program'' (CLP) in April 2020, which was intended as a replacement for the HPE Hobbyist Program.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-04-22-vsi-announces-community-license/|title=VMS Software Announces Community License|date=April 22, 2020|website=VSI|access-date=May 4, 2021}}</ref> The CLP was launched in July 2020, and provides licenses for VSI OpenVMS releases on Alpha, Integrity and x86-64 systems.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-07-28-community-license/|title=VMS Software Community License Available|date=July 28, 2020|website=VSI|access-date=May 4, 2021}}</ref> 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.<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-06-11-community-license-updates/|title=VSI Announces Community License Updates|date=June 11, 2020|website=VSI|access-date=May 4, 2021}}</ref> ==Release history== {{mw-datatable}} {| class="wikitable mw-datatable mw-collapsible" style="text-align:center; margin-left:1em; margin-right:0" |+ Release history of OpenVMS |- ! Version ! Vendor ! Release date<br /><ref>{{cite web|url=http://h41379.www4.hpe.com/openvms/os/openvms-release-history.html|title=HP OpenVMS Systems - OpenVMS Release History|date=June 21, 2010|archive-url=https://web.archive.org/web/20181007091949/http://h41379.www4.hpe.com/openvms/os/openvms-release-history.html|archive-date=October 7, 2018}}</ref><ref name="vms-20-years" /><ref>{{cite web|url=https://vmssoftware.com/about/roadmap/|title=OpenVMS – A guide to the strategy and roadmap|website=VSI|access-date=September 27, 2021}}</ref> ! End of support<br /><ref>{{cite web|url=http://h41379.www4.hpe.com/openvms/openvms_supportchart.html|title=HP OpenVMS Systems - Supported Software Versions - January 2014|archive-url=https://web.archive.org/web/20181014105654/http://h41379.www4.hpe.com/openvms/openvms_supportchart.html|archive-date=October 14, 2018}}</ref><ref name="vsi-roadmap-2021">{{cite web|url=https://vmssoftware.com/docs/VMS_Software_Roadmap_2021.pdf|title=VSI OpenVMS Software Roadmap 2021|access-date=September 30, 2021|website=VSI}}</ref><ref>{{cite web|url=ftp://ftp.hp.com/pub/services/software/info/ovms.pdf|title=OpenVMS Software Technical Support Service|date=October 2003|publisher=Hewlett Packard|access-date=February 1, 2022|website=hp.com}}{{Dead link|date=January 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> ! Platform ! Significant changes, new hardware support<br /><ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/openvms-release-history.txt|title=OpenVMS Release History|publisher=HP|website=Bitsavers|access-date=January 23, 2022}}</ref><ref name="vaxmacro-release" /> |- | {{Version |o |X0.5}}{{refn|group=n|X0.5 was also known as "Base Level 5".<ref name="vms-x0.5" />}} | rowspan=72 | DEC | April 1978<ref name="vms-x0.5">{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/h3S9j5Q2LKU/m/v7ZNw_9Bja4J|author=Andy Goldstein|date=September 16, 1997|title=When Did VMS First Come Out?|newsgroup=comp.os.vms|access-date=March 5, 2022}}</ref> | rowspan=54 {{dunno}} | rowspan=57 | VAX | First version shipped to customers<ref name="what-is-vms">{{cite web|url=http://www.hoffmanlabs.com/vmsfaq/vmsfaq_001.html|title=What is OpenVMS? What is its history?|author=Stephen Hoffman|date=September 2006|access-date=January 3, 2021|website=hoffmanlabs.com|archive-date=May 18, 2021|archive-url=https://web.archive.org/web/20210518115130/http://www.hoffmanlabs.com/vmsfaq/vmsfaq_001.html|url-status=dead}}</ref> |- | {{Version |o |V1.0}} | August 1978 | First production release |- | {{Version |o |V1.01}} | {{dunno}}{{refn|group=n|While an exact release date is unknown, the V1.01 change log dates in the release notes for V1.5 suggest it was released some time after November 1978.<ref name="vms-1.5" />}} | Bug fixes<ref name="vms-1.5" /> |- | {{Version |o |V1.5}} | February 1979{{refn|group=n|For some of the early VAX/VMS releases where an official release date is not known, the date of the Release Notes has been used an approximation.}} | Support for native COBOL, BLISS compilers<ref name="vms-1.5">{{cite book|title=VAX/VMS Release Notes Version 1.5|publisher=DEC|date=February 1979|id=AA-D015B-TE}}</ref> |- | {{Version |o |V1.6}} | August 1979 | RMS-11 updates<ref>{{cite book|title=VAX/VMS Release Notes Version 1.6|publisher=DEC|date=August 1979|id=AA-J039A-TE}}</ref> |- | {{Version |o |V2.0}} | April 1980 | [[VAX-11#VAX-11/750|VAX-11/750]], new utilities including [[EDT (Digital)|EDT]] |- | {{Version |o |V2.1}} | {{dunno}}{{refn|group=n|The existence of releases V2.0 through V2.5 are documented in the V3.0 release notes.<ref>{{cite web|title=VAX/VMS Release Notes Version 3.0|publisher=DEC|date=May 1982|id=AA-D015D-TE|url=http://www.bitsavers.org/pdf/dec/vax/vms/3.0/AA-D015D-TE_VAX-VMS_Release_Notes_V3.0_May82.pdf|access-date=February 6, 2022}}</ref>}} | {{dunno}} |- | {{Version |o |V2.2}} | April 1981 | Process limit increased to 8,192<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/2.2/AA-K785A-TE_VAX_VMS_2.2_Internals_and_Data_Structures_Apr81.pdf|title=VAX/VMS Internals and Data Structures|date=April 1981|publisher=DEC|access-date=February 6, 2022}}</ref> |- | {{Version |o |V2.3}} | May 1981<ref>{{cite web|url=http://www.bitsavers.org/pdf/dec/vax/vms/2.3/AA-D016D-TE_VAX-11_2.3_Information_Directory_and_Index_May81.pdf|title=VAX-11 Information Directory and Index|date=May 1981|id=AA-D016D-TE|publisher=DEC|access-date=February 6, 2022}}</ref> | Security enhancements<ref>{{cite web|url=http://www.skip.net/DEC/spr-grpnam.txt|title=GRPNAM SECURITY HOLE IN LOGIN|publisher=DEC|access-date=February 6, 2022}}</ref> |- | {{Version |o |V2.4}} | {{dunno}} | {{dunno}} |- | {{Version |o |V2.5}} | {{dunno}} | BACKUP utility<ref>{{cite newsgroup|url=https://groups.google.com/g/comp.os.vms/c/jcT66erFNek/m/0-cfcv9x1fEJ|title=First Introduction of BACKUP utility|author=Bob Boyd|date=September 18, 1987|newsgroup=comp.os.vms|access-date=February 6, 2022}}</ref> |- | {{Version |o |V3.0}} | April 1982 | [[VAX-11#VAX-11/730|VAX-11/730]], [[VAX-11#VAX-11/725|VAX-11/725]], [[VAX-11#VAX-11/782|VAX-11/782]], [[Asymmetric multiprocessing|ASMP]] |- | {{Version |o |V3.1}} | August 1982 | PL/I runtime bundled with base OS<ref>{{cite book|title=VAX/VMS Release Notes Version 3.1|publisher=DEC|date=August 1982|id=AA-N472A-TE}}</ref> |- | {{Version |o |V3.2}} | December 1982 | Support for RA60, RA80, RA81 disks<ref>{{cite book|title=VAX/VMS Release Notes Version 3.2|publisher=DEC|date=December 1982|id=AA-P763A-TE}}</ref> |- | {{Version |o |V3.3}} | April 1983 | HSC50 disk controller, BACKUP changes<ref>{{cite book|title=VAX/VMS Release Notes Version 3.3|publisher=DEC|date=April 1983|id=AA-P764A-TE}}</ref> |- | {{Version |o |V3.4}} | June 1983 | Ethernet support for DECnet,<ref>{{cite book|title=VAX/VMS Release Notes Version 3.4|publisher=DEC|date=June 1983|id=AA-P765A-TE}}</ref> VAX-11/785 |- | {{Version |o |V3.5}} | November 1983 | Support for new I/O devices<ref>{{cite book|title=VAX/VMS Release Notes Version 3.5|publisher=DEC|date=November 1983|id=AA-P766A-TE}}</ref> |- | {{Version |o |V3.6}} | April 1984 | Bug fixes<ref>{{cite book|title=VAX/VMS Release Notes Version 3.6|publisher=DEC|date=April 1984|id=AA-V332A-TE}}</ref> |- | {{Version |o |V3.7}} | August 1984 | Support for new I/O devices<ref>{{cite book|title=VAX/VMS Release Notes Version 3.7|publisher=DEC|date=August 1984|id=AA-CJ33A-TE}}</ref> |- | {{Version |o |V4.0}} | September 1984 | [[VAX 8000|VAX 8600]], MicroVMS, VAXclusters<ref>[http://www.bitsavers.org/pdf/dec/vax/microfiche/vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/ vms-source-listings]</ref> |- | {{Version |o |V4.1}} | January 1985 | MicroVAX/VAXstation I, II<ref>[http://www.bitsavers.org/pdf/dec/vax/microfiche/vms-source-listings/AH-BT13A-SE__VAX-VMS_V4.0_SRC_LST_MCRF/AH-EF71A-SE__VAX-VMS_V4.1_SRC_LST_MCRF_UPD/ vms-source-listings]</ref> |- | {{Version |o |V4.2}} | October 1985 | [[Text Processing Utility]] |- | {{Version |o |V4.3}} | December 1985 | DELUA Ethernet adapter support |- | {{Version |o |V4.3A}} | January 1986 | VAX 8200 |- | {{Version |o |V4.4}} | July 1986 | VAX 8800/8700/85xx, Volume Shadowing |- | {{Version |o |V4.5}} | November 1986 | Support for more memory in MicroVAX II |- | {{Version |o |V4.5A}} | December 1986 | Ethernet VAXclusters |- | {{Version |o |V4.5B}} | March 1987 | VAXstation/MicroVAX 2000 |- | {{Version |o |V4.5C}} | May 1987 | MicroVAX 2000 cluster support |- | {{Version |o |V4.6}} | August 1987 | VAX 8250/8350/8530, RMS Journalling |- | {{Version |o |V4.7}} | January 1988 | First release installable from CD-ROM |- | {{Version |o |V4.7A}} | March 1988 | VAXstation 3200/3500, MicroVAX 3500/3600 |- | {{Version |o |V5.0}} | April 1988 | [[VAX 6000]], [[Symmetric multiprocessing|SMP]], LMF, Modular Executive |- | {{Version |o |V5.0-1}} | August 1988 | rowspan=2 | Bug fixes |- | {{Version |o |V5.0-2}} | rowspan=2 | October 1988 |- | {{Version |o |V5.0-2A}} | MicroVAX 3300/3400 |- | {{Version |o |V5.1}} | rowspan=2 | February 1989 | DECwindows |- | {{Version |o |V5.1-B}} | VAXstation 3100 30/40, Desktop-VMS |- | {{Version |o |V5.1-1}} | June 1989 | VAXstation 3520/3540, MicroVAX 3800/3900 |- | {{Version |o |V5.2}} | September 1989 | Cluster-wide process visibility/management |- | {{Version |o |V5.2-1}} | October 1989 | VAXstation 3100 38/48 |- | {{Version |o |V5.3}} | January 1990 | Support for third-party SCSI devices |- | {{Version |o |V5.3-1}} | April 1990 | Support for VAXstation SPX graphics |- | {{Version |o |V5.3-2}} | May 1990 | Support for new I/O devices |- | {{Version |o |V5.4}} | rowspan=2 | October 1990 | VAX 65xx, VAX Vector Architecture |- | {{Version |o |V5.4-0A}} | [[VAX 9000]], bug fixes for VAX 6000 systems |- | {{Version |o |V5.4-1}} | November 1990 | New models of VAX 9000, VAXstation, VAXft |- | {{Version |o |V5.4-1A}} | January 1991 | VAX 6000-400 |- | {{Version |o |V5.4-2}} | March 1991 | VAX 4000 Model 200, new I/O devices |- | {{Version |o |V5.4-3}} | October 1991 | [[FDDI]] adapter support |- | {{Version |o |V5.5}} | rowspan=2 | November 1991 | Cluster-wide batch queue, new VAX models |- | {{Version |o |A5.5}} | Same as V5.5 but without new batch queue |- | {{Version |o |V5.5-1}} | July 1992 | Bug fixes for batch/print queue |- | {{Version |o |V5.5-2HW}} | September 1992 | [[VAX 7000/10000]], and other new VAX hardware |- | {{Version |o |V5.5-2}} | November 1992 | rowspan=2 | September 1995 | Consolidation of previous hardware releases |- | {{Version |o |V5.5-2H4}} | rowspan=2 | August 1993 | New [[VAX 4000]] models, additional I/O devices |- | {{Version |o |V5.5-2HF}} | rowspan=8 {{dunno}} | [[VAXft]] 810 |- | {{Version |o |V1.0}}{{refn|group=n|While the versioning scheme reset to V1.0 for the first AXP (Alpha) releases, these releases were contemporaneous with the V5.x releases and had a similar feature set.}} | November 1992 | rowspan=3 | Alpha | First release for Alpha architecture |- | {{Version |o |V1.5}} | May 1993 | Cluster and SMP support for Alpha |- | {{Version |o |V1.5-1H1}} | October 1993 | New DEC 2000, DEC 3000 models |- | {{Version |o |V6.0}} | June 1993 | VAX | [[Trusted Computer System Evaluation Criteria|TCSEC]] C2 compliance, [[ISO 9660]], Motif |- | {{Version |o |V6.1}} | April 1994 | VAX, Alpha | Merger of VAX and Alpha releases, PCSI |- | {{Version |o |V6.1-1H1}} | September 1994 | rowspan=2 | Alpha | rowspan=2 | New AlphaStation, AlphaServer models |- | {{Version |o |V6.1-1H2}} | November 1994 |- | {{Version |o |V6.2}} | June 1995 | rowspan=5 | March 1998 | VAX, Alpha | Command Recall, DCL$PATH, SCSI clusters |- | {{Version |o |V6.2-1H1}} | December 1995 | rowspan=3 | Alpha | rowspan=3 | New AlphaStation, AlphaServer models |- | {{Version |o |V6.2-1H2}} | March 1996 |- | {{Version |o |V6.2-1H3}} | May 1996 |- | {{Version |o |V7.0}} | January 1996 | rowspan=2 | VAX, Alpha | 64-bit addressing, Fast I/O, [[Thread (computing)#Kernel threads|Kernel Threads]] |- | {{Version |o |V7.1}} | January 1997 | rowspan=4 | July 2000 | Very Large Memory support, DCL PIPE, CDE |- | {{Version |o |V7.1-1H1}} | November 1997 | rowspan=3 | Alpha | AlphaServer 800 5/500, 1200 |- | {{Version |o |V7.1-1H2}} | April 1998 | Support for booting from third-party devices |- | {{Version |o |V7.1-2}} | rowspan=9 | Compaq | December 1998 | Additional I/O device support |- | {{Version |o |V7.2}} | February 1999 | rowspan=3 | June 2002 | VAX, Alpha | OpenVMS Galaxy, ODS-5, [[Distributed Component Object Model|DCOM]] |- | {{Version |o |V7.2-1}} | July 1999 | rowspan=5 | Alpha | AlphaServer GS140, GS60, [[Alphaserver#Tsunami Family|Tsunami]] |- | {{Version |o |V7.2-1H1}} | June 2000 | AlphaServer GS160, GS320 |- | {{Version |o |V7.2-2}} | September 2001 | December 2002 | Minicopy support for Volume Shadowing |- | {{Version |o |V7.2-6C1}} | August 2001 | rowspan=2 {{dunno}} | rowspan=2 | DII COE conformance<ref>{{cite web|url=https://h41379.www4.hpe.com/solutions/government/coe/|title=Commitment to DII COE initiative provides longterm support and application portability for OpenVMS customers|website=[[Hewlett Packard Enterprise]]|access-date=2023-09-07}}</ref> |- | {{Version |o |V7.2-6C2}} | July 2002 |- | rowspan=2 {{Version |o |V7.3}} | rowspan=2 | June 2001 | December 2012 | VAX | '''Final release for VAX architecture''' |- | June 2004 | Alpha | [[Asynchronous Transfer Mode|ATM]] and [[Gigabit Ethernet|GBE]] clusters, Extended File Cache |- | {{Version |o |V7.3-1}} | rowspan=9 | HP | August 2002 | December 2004 | rowspan=2 | Alpha | Security and performance improvements |- | {{Version |o |V7.3-2}} | December 2003 | December 2006 | AlphaServer GS1280, DS15 |- | {{Version |o |V8.0}} | June 2003 | December 2003 | rowspan=2 | IA64 | Evaluation release for Integrity servers |- | {{Version |o |V8.1}} | December 2003 | February 2005 | Second evaluation release for Integrity servers |- | {{Version |o |V8.2}} | February 2005 | rowspan=2 | June 2010 | Alpha, IA64 | Production release for Integrity servers |- | {{Version |o |V8.2-1}} | September 2005 | IA64 | Support for HP Superdome, rx7620, rx8620 |- | {{Version |o |V8.3}} | August 2006 | rowspan=2 | December 2015 | Alpha, IA64 | Support for additional Integrity server models |- | {{Version |o |V8.3-1H1}} | November 2007 | IA64 | Support for HP BL860c, dual-core Itanium |- | {{Version |o |V8.4}} | June 2010 | December 2020 | Alpha, IA64 | Support for [[HPVM]], clusters over TCP/IP<ref>{{cite web|url=http://h71000.www7.hp.com/openvms84_announce.html|title=HP OpenVMS Systems - OpenVMS Version 8.4|archive-url=https://web.archive.org/web/20100902030522/http://h71000.www7.hp.com/openvms84_announce.html|archive-date=September 2, 2010|url-status=dead}}</ref> |- | {{Version |o |V8.4-1H1}} | rowspan=12 | VSI | May 2015 | rowspan=2 | December 2022 | rowspan=3 | IA64 | Support for [[Poulson (processor)|Poulson]] processors<ref>{{cite press release|url=https://www.vmssoftware.com/news/PR20150601/PR20150601_VSI_8.4-IHI.pdf|title=VMS Software, Inc. Launches New Version of OpenVMS Operating System Worldwide|date=June 1, 2015|access-date=June 4, 2015|archive-date=August 7, 2015|archive-url=https://web.archive.org/web/20150807031302/http://vmssoftware.com/news/PR20150601/PR20150601_VSI_8.4-IHI.pdf|url-status=dead}}</ref> |- | {{Version |o |V8.4-2}} | March 2016 | Support for HPE BL890c systems, UEFI 2.3 |- | rowspan=2 {{Version |co |V8.4-2L1}} | September 2016 | December 2024 | rowspan=2 | OpenSSL updated to 1.0.2<ref>{{cite press release|url=https://vmssoftware.com/about/news/2016-09-23-vms-software-inc-launches-new-version-8-4-2l1-of-openvms-operating-system-worldwide/|title=VMS Software, Inc. Launches New Version 8.4-2L1 of OpenVMS Operating System Worldwide|date=September 23, 2016|website=VSI|access-date=May 4, 2021}}</ref> |- | January 2017<ref>{{cite press release|url=https://vmssoftware.com/about/news/2017-01-27-vms-software-inc-launches-vsi-openvms-alpha-v8-4-2l1-for-alpha-hardware/|title=VMS Software, Inc. Launches VSI OpenVMS Alpha V8.4-2L1 for Alpha Hardware|date=January 27, 2017|website=VSI|access-date=May 4, 2021}}</ref> | rowspan=2 {{TBA}} | rowspan=2 | Alpha |- | {{Version | co |V8.4-2L2}} | July 2017 | '''Final release for Alpha architecture'''<ref name="september-2020-update">{{cite web|url=https://vmssoftware.com/products/roadmap/|archive-url=https://web.archive.org/web/20200927075701/https://vmssoftware.com/products/roadmap/|archive-date=September 27, 2020|title=Roadmap Update|access-date=September 23, 2020|date=September 2020|website=VSI}}</ref> |- | {{Version | co |V8.4-2L3}} | April 2021 | December 2028 | IA64 | '''Final release for Integrity servers'''<ref name="september-2020-update" /> |- | {{Version | o |V9.0}} | May 2020 | June 2021 | rowspan=6 | x86-64 | x86-64 Early Adopter's Kit<ref>{{cite web|url=https://vmssoftware.com/about/news/2020-04-24-openvms-for-x86-eak-goes-to-first-customer-on-may-15-2020/|title=OpenVMS for x86 V9.0 EAK goes to first customer on May 15, 2020|date=April 24, 2020|website=VSI|access-date=May 4, 2021}}</ref> |- | {{Version |o |V9.1}} | June 2021 | September 2021 | x86-64 Field Test<ref name="vms-9.1" /> |- | {{Version |o |V9.1-A}} | September 2021 | April 2022 | HPE Proliant DL380, DECnet-Plus<ref name="vsi-9.1-A" /> |- | {{Version |o |V9.2}} | July 2022 | June 2023 | x86-64 Limited Production Release<ref name="vms9.2">{{cite web|url= https://vmssoftware.com/about/news/2022-07-14-openvms-v92-for-x86-announced/|access-date=July 14, 2022|date=July 14, 2022|title=VSI OpenVMS v9.2 Released|website=VSI}}</ref> |- | {{Version |co |V9.2-1}} | June 2023 | December 2026 | AMD CPUs, OpenSSL 3.0, native compilers<ref name="vms9.2-1">{{cite web|url= https://vmssoftware.com/about/news/2023-06-15-openvms-v9-2-1-release/|access-date=2023-06-15|date=2023-06-15|title=OpenVMS V9.2-1 Final Release|website=VSI}}</ref> |- | {{Version |c |V9.2-2}} | January 2024 | {{TBA}} | Bug fixes<ref name="vms9.2-2" /> |- | colspan="6" | <small>{{Version |l |show=111101}}</small> |} {{reflist|group=n}} ==See also== * [[Comparison of operating systems]] * [[Terry Shannon (writer)|Terry Shannon]] ==References== {{Reflist|30em}} ==Further reading== *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}} *{{cite book|title=OpenVMS AXP Internals and Data Structures: Version 1.5|url=https://books.google.com/books?id=sYYZAQAAIAAJ|isbn=978-1555581206|author1=Ruth Goldenberg|author2=Saro Saravanan|year=1994|publisher=Digital Press}} *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}} *{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}} *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}} *{{cite book|url=http://www.theminimumyouneedtoknow.com/app_book.html|title=The Minimum You Need to Know to Be an OpenVMS Application Developer|author=Roland Hughes|date=December 2006|publisher=Logikal Solutions |isbn=978-0-9770866-0-3}} ==External links== {{Commons category}} *[https://vmssoftware.com/about/roadmap/ VMS Software: Current Roadmap and Future Releases] *[https://docs.vmssoftware.com/ VMS Software: Documentation] *{{Webarchive|url=https://web.archive.org/web/20200112171116/http://www.hoffmanlabs.org/vmsfaq/|title=HP OpenVMS FAQ|date=January 12, 2020}} *[news://comp.os.vms/ comp.os.vms Usenet group], archives on [http://groups.google.com/group/comp.os.vms Google Groups] {{Digital Equipment Corporation}} {{Time-sharing operating systems}} {{Operating System}} [[Category:OpenVMS]] [[Category:OpenVMS software]] [[Category:1977 software]] [[Category:Cluster computing]] [[Category:High-availability cluster computing]] [[Category:Fault-tolerant computer systems]] [[Category:Digital Equipment Corporation]] [[Category:DEC operating systems]] [[Category:HP software]] [[Category:Compaq software]] [[Category:Parallel computing]] [[Category:X86-64 operating systems]] [[Category:Proprietary operating systems]] [[Category:Time-sharing operating systems]]'
Unified diff of changes made by edit ($1) (edit_diff)
'@@ -65,5 +65,5 @@ In April 1975, [[Digital Equipment Corporation]] embarked on a project to design a [[32-bit]] extension to its [[PDP-11]] computer line. The hardware component was code named ''Star''; the operating system was code named ''Starlet''. Roger Gourd was the project lead for VMS. Software engineers [[Dave Cutler]], [[Dick Hustvedt]], and Peter Lipman acted as technical project leaders.<ref>{{cite interview |last=Cutler|first=Dave|subject-link=Dave Cutler|interviewer=Grant Saviers|title=Dave Cutler Oral History|url=https://www.youtube.com/watch?v=29RkHH-psrY |archive-url=https://ghostarchive.org/varchive/youtube/20211211/29RkHH-psrY| archive-date=December 11, 2021 |url-status=live|publisher=Computer History Museum|date=February 25, 2016|website=youtube.com|access-date=February 26, 2021}}{{cbignore}}</ref> The Star and Starlet projects culminated in the [[VAX-11#VAX-11/780|VAX-11/780]] computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in the name of several of the system libraries, including <code>STARLET.OLB</code> and <code>STARLET.MLB</code>.<ref name="what-is-vms" /> VMS was mostly written in [[VAX MACRO]] with some components written in [[BLISS]].<ref name="vms-20-years"/> -One of the original goals for VMS was [[Backward compatibility|backwards compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME) which allowed user mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> +One of the original goals for VMS was [[backward compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME), which allowed user-mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user-mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility-mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> [[File:Vms-albert-cheshire-cat.png|thumb|right|"Albert the [[Cheshire Cat]]" mascot for VAX/VMS, used by the [[DECUS]] VAX SIG<ref>{{cite web|url=http://www.openvmshobbyist.com/forum/viewthread.php?forum_id=130&thread_id=332|title=Hello from....well what used to be SpitBrook|date=February 27, 2007|access-date=January 24, 2021|website=openvmshobbyist.com}}</ref><ref>{{cite web|url=http://www.altiq.se/vax-vms/vax-vms-eng.html|title=Computer system VAX/VMS|website=altiq.se|access-date=January 24, 2021|archive-url=https://web.archive.org/web/20210201143630/http://www.altiq.se/vax-vms/vax-vms-eng.html|archive-date=February 1, 2021|url-status=dead}}</ref>]] @@ -87,9 +87,9 @@ 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.<ref name="ia64-port">{{cite journal|url=http://www.decus.de/events/alphamigration/vortraege/porting_openvms_to_integrity.pdf|title=Porting OpenVMS to HP Integrity Servers|author=Clair Grant|journal=OpenVMS Technical Journal|volume=6|date=June 2005}}</ref> Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in [[VAX MACRO]] assembly code.<ref name="vms-20-years" /> 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]],<ref name="axp-port">{{cite journal|url=https://vmssoftware.com/docs/dtj-v04-04-1992.pdf|title=Porting OpenVMS from VAX to Alpha AXP|author1=Nancy P. Kronenberg|author2=Thomas R. Benson|author3=Wayne M. Cardoza|author4=Ravindran Jagannathan|author5=Benjamin J. Thomas III|journal=Digital Technical Journal|volume=4|issue=4|pages=111–120|year=1992|access-date=April 27, 2024}}</ref> and the emulation of certain low-level details of the VAX architecture in [[PALcode]], such as [[interrupt handling]] and atomic queue instructions. -The VMS port to Alpha resulted in the creation of two separate codebases - one for [[VAX]], and for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> 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.<ref name="ia64-port" /> +The VMS port to Alpha resulted in the creation of two separate codebases: one for [[VAX]], and another for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> The decision to use the 1.x version numbering stream for the pre-production quality releases of OpenVMS AXP confused some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms.<ref name="ia64-port" /> When VMS was ported to Alpha, it was initially left as a 32-bit only operating system.<ref name="axp-port" /> 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.<ref>{{cite journal|url=https://vmssoftware.com/docs/dtj-v08-02-1996.pdf|title=Extending OpenVMS for 64-bit Addressable Virtual Memory|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=57–71|s2cid=9618620}}</ref> 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.<ref>{{cite journal|url=https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|archive-url=https://web.archive.org/web/20200219001633/https://pdfs.semanticscholar.org/8d96/bbba019c43e80f059825311b67c975a0fede.pdf|url-status=dead|archive-date=February 19, 2020|title=The OpenVMS Mixed Pointer Size Environment|journal=Digital Technical Journal|volume=8|issue=2|date=1996|pages=72–82|s2cid=14874367}}</ref> This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the [[Alpha 21064]] and [[Alpha 21164]].<ref name="prog-concepts-i">{{cite web|url=https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf|title=VSI OpenVMS Programming Concepts Manual, Vol. 1|date=April 2020|access-date=October 7, 2020|publisher=VSI}}</ref> -One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'' - which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref> +One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'', which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref> ===Port to Intel Itanium=== @@ -101,7 +101,7 @@ 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.<ref name="ia64-port" /> This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of the changes included using the [[Extensible Firmware Interface]] (EFI) to boot the operating system,<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g04.pdf|title=OpenVMS Integrity Boot Environment|date=2005|access-date=December 21, 2020|author=Thomas Siebold|website=decus.de}}</ref> reimplementing the functionality previously provided by Alpha PALcode inside the kernel,<ref name="swis" /> using new executable file formats ([[Executable and Linkable Format]] and [[DWARF]]),<ref>{{cite web|url=http://www.hp-user-society.de/events/alphamigration/vortraege/porting_openvms_applications_to_itanium.pdf|title=Porting OpenVMS Applications to Itanium|access-date=December 21, 2020|website=hp-user-society.de|date=2005|author=Gaitan D’Antoni}}</ref> and adopting [[IEEE 754]] as the default floating point format.<ref>{{cite web|url=http://www.decus.de/events/alphamigration/vortraege/i64-floating-pt-wp.pdf|title=OpenVMS floating-point arithmetic on the Intel Itanium architecture|website=decus.de|access-date=December 21, 2020|date=2003}}</ref> -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.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref> +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 been translated with VEST.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref> -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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref> +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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref> ===Port to x86-64=== @@ -113,10 +113,10 @@ As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with [[LLVM]],<ref>{{cite AV media|url=https://www.youtube.com/watch?v=xTaBkCBYskA |archive-url=https://ghostarchive.org/varchive/youtube/20211211/xTaBkCBYskA| archive-date=December 11, 2021 |url-status=live|title=2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"|website=[[YouTube]]|date=October 31, 2017}}{{cbignore}}</ref> changing the boot process so that OpenVMS is booted from a memory disk,<ref>{{cite web|url=http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|title=State of the Port to x86_64 January 2017.|date=January 6, 2017|archive-url=https://web.archive.org/web/20191104221854/http://www.vmssoftware.com/pdfs/State_of_Port_20170105.pdf|archive-date=November 4, 2019|url-status=dead}}</ref> and simulating the four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS.<ref name="swis">{{cite AV media|url=https://www.youtube.com/watch?v=U8kcfvJ1Iec |archive-url=https://ghostarchive.org/varchive/youtube/20211211/U8kcfvJ1Iec| archive-date=December 11, 2021 |url-status=live|title=Re-architecting SWIS for X86-64|date=October 8, 2017|author=Camiel Vanderhoeven|website=[[YouTube]]|access-date=October 21, 2021}}{{cbignore}}</ref> -The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref> +The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref> ===Influence=== During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting [[Ultrix]] applications on top of the same kernel.<ref name="mica-business-plan">{{cite web|url=http://www.bitsavers.org/pdf/dec/prism/mica/Mica_Software_Business_Plan_Mar87.pdf|title=MICA Software Business Plan|author1=Catherine Richardson|author2=Terry Morris|author3=Rockie Morgan|author4=Reid Brown|author5=Donna Meikle|date=March 1987|access-date=January 4, 2021|website=Bitsavers}}</ref> MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the [[Windows NT]] operating system, which was heavily inspired by the architecture of MICA.<ref>{{cite book |last1=Zachary |first1=G. Pascal |title=Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft |date=2014 |publisher=Open Road Media |isbn=978-1-4804-9484-8 |url=https://books.google.com/books?id=o2IkAwAAQBAJ&q=%22Dave+Cutler%22+march+13&pg=PT9 |access-date=January 4, 2021|language=en}}</ref> 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.<ref>{{cite web|url=https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story|title=Windows NT and VMS: The Rest of the Story|author=Mark Russinovich|date=October 30, 1998|access-date=January 4, 2021|website=ITPro Today}}</ref> -A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref> +A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open-source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref> ==Architecture== @@ -124,5 +124,5 @@ [[File:Openvms-system-architecture.svg|thumb|275px|The architecture of the OpenVMS operating system, demonstrating the layers of the system, and the access modes in which they typically run]] -The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately-privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems). +The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems). OpenVMS' layers and mechanisms are built around certain features of the VAX architecture, including:<ref name="idsm-5.2" /><ref name="goatley-part-1">{{cite web|url=https://hunter.goatley.com/vms/internals1.html|title=Writing VMS Privileged Code Part I: The Fundamentals, Part 1|author1=Hunter Goatley|author2=Edward A. Heinrich|website=hunter.goatley.com|access-date=January 31, 2021}}</ref> @@ -143,5 +143,5 @@ The [[Kernel (operating system)|Kernel]] comprises 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.<ref name="idsm-5.2" /><ref name="goatley-part-1" /> In addition, other functionality such as [[Files-11#Logical names|logical name]] management, synchronization and system service dispatch are implemented inside the Kernel. -OpenVMS allows user mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref> +OpenVMS allows user-mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref> ===File system=== @@ -149,13 +149,13 @@ The typical user and application interface into the [[file system]] is the [[Record Management Services]] (RMS), although applications can interface directly with the underlying file system through the [[QIO]] system services.<ref name="acp-qio-doc">{{cite web|url=https://vmssoftware.com/docs/VSI_IO_REF.pdf|title=VSI OpenVMS I/O User's Reference Manual|date=August 2019|access-date=January 13, 2021|publisher=VSI}}</ref> The file systems supported by VMS are referred to as the [[Files-11]] ''On-Disk Structures'' (ODS), the most significant of which are ''ODS-2'' and ''ODS-5''.<ref name="andy-goldstein-files-11">{{cite web|url=https://www.youtube.com/watch?v=b0YenelPw-Y| archive-url=https://web.archive.org/web/20210112225121/https://www.youtube.com/watch?v=b0YenelPw-Y| archive-date=January 12, 2021 | url-status=dead|title=Andy Goldstein on Files-11, the OpenVMS File Systems|date=July 25, 2019|access-date=January 3, 2021|publisher=VSI Official Channel}}</ref> VMS is also capable of accessing files on [[ISO 9660]] [[CD-ROM]]s and [[magnetic tape]] with [[Tape labels#ANSI tape labels|ANSI tape labels]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_Gd_to_File_Apps_23Jul19.pdf|title=VSI OpenVMS Guide to OpenVMS File Applications|publisher=VSI|date=July 23, 2019|access-date=January 13, 2021}}</ref> -Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref> +Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open-source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref> ===Command Language Interpreter=== -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 script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available as well. +An OpenVMS Command Language Interpreter (CLI) implements a [[command-line interface]] for OpenVMS, responsible for executing individual commands and ''command procedures'' (equivalent to [[shell script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available. -Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" /> +Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" /> -Due to the 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 the process address space at supervisor access mode - a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" /> +Because the CLI is loaded into the same address space as user code, and the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into the process address space at supervisor access mode, a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user-mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" /> ==Features== @@ -224,7 +224,7 @@ * In addition, a number of [[text editor]]s are included in the operating system, including [[EDT (Digital)|EDT]], [[EVE (text editor)|EVE]] and [[TECO (text editor)|TECO]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|title=VSI OpenVMS DCL Dictionary: A–M|date=April 2020|access-date=January 2, 2021|publisher=VSI}}</ref> -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 interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref> +The OpenVMS Debugger supports all DEC compilers and many third-party languages. It allows breakpoints, watchpoints and interactive runtime program debugging using either a [[command line interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref> -In 2019, VSI released an officially-supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref> +In 2019, VSI released an officially supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref> ====Database management==== @@ -279,5 +279,5 @@ ===POSIX compatibility=== -Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref> +Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third-party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref> ==Hobbyist programs== @@ -590,5 +590,5 @@ | {{Version |o |V7.1-1H2}} | April 1998 -| Support for booting from third party devices +| Support for booting from third-party devices |- | {{Version |o |V7.1-2}} '
New page size ($1) (new_size)
104421
Old page size ($1) (old_size)
104481
Size change in edit ($1) (edit_delta)
-60
Lines added in edit ($1) (added_lines)
[ 0 => 'One of the original goals for VMS was [[backward compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME), which allowed user-mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user-mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility-mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> ', 1 => 'The VMS port to Alpha resulted in the creation of two separate codebases: one for [[VAX]], and another for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> The decision to use the 1.x version numbering stream for the pre-production quality releases of OpenVMS AXP confused some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms.<ref name="ia64-port" />', 2 => 'One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'', which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref>', 3 => '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 been translated with VEST.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref>', 4 => '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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref>', 5 => 'The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref>', 6 => 'A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open-source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref>', 7 => 'The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems).', 8 => 'OpenVMS allows user-mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref>', 9 => 'Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open-source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref>', 10 => 'An OpenVMS Command Language Interpreter (CLI) implements a [[command-line interface]] for OpenVMS, responsible for executing individual commands and ''command procedures'' (equivalent to [[shell script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available.', 11 => 'Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" />', 12 => 'Because the CLI is loaded into the same address space as user code, and the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into the process address space at supervisor access mode, a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user-mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" />', 13 => 'The OpenVMS Debugger supports all DEC compilers and many third-party languages. It allows breakpoints, watchpoints and interactive runtime program debugging using either a [[command line interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref>', 14 => 'In 2019, VSI released an officially supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref>', 15 => 'Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third-party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref>', 16 => '| Support for booting from third-party devices' ]
Lines removed in edit ($1) (removed_lines)
[ 0 => 'One of the original goals for VMS was [[Backward compatibility|backwards compatibility]] with DEC's existing [[RSX-11M]] operating system.<ref name="vms-20-years"/> Prior to the V3.0 release, VAX/VMS included a compatibility layer named the ''RSX Application Migration Executive'' (RSX AME) which allowed user mode RSX-11M software to be run unmodified on top of VMS.<ref name="vms-1.0-spd" /> The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user mode utilities before native VAX versions had been developed.<ref name="vms-20-years"/> By the V3.0 release, all compatibility mode utilities were replaced with native implementations.<ref>{{cite newsgroup|url=https://comp.os.vms.narkive.com/N4yPsEEV/a-simple-question-what-the-h-ll-is-mcr|title=a simple question: what the h*ll is MCR?|access-date=December 31, 2020|date=September 14, 2004|newsgroup=comp.os.vms}}</ref> In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named ''VAX-11 RSX''.<ref>{{cite web|url=http://bitsavers.org/pdf/dec/vax/vms/4.0/AE-DL72A-TE_VAX_RSX_1.0_SPD_198410.pdf|title=Software Product Description VAX-11 RSX, Version 1.0|date=October 1984|publisher=Digital Equipment Corporation|access-date=September 20, 2021}}</ref> ', 1 => 'The VMS port to Alpha resulted in the creation of two separate codebases - one for [[VAX]], and for Alpha.<ref name="wizard-vms-source">{{cite web|url=http://h41379.www4.hpe.com/wizard/wiz_2993.html|title=Access to OpenVMS Source Code?|work=HP OpenVMS Systems ask the wizard|archive-url=https://web.archive.org/web/20171028043200/http://h41379.www4.hpe.com/wizard/wiz_2993.html|archive-date=October 28, 2017|date=September 2, 1999}}</ref> The Alpha code library was based on a snapshot of the VAX/VMS code base circa V5.4-2.<ref name="OpenVMS VAX and Alpha Compatibility" /> 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.<ref name="OpenVMS VAX and Alpha Compatibility">{{cite web|url=https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04623258|title=OpenVMS Compatibility Between VAX and Alpha|date=May 1995|publisher=Digital Equipment Corporation|access-date=October 22, 2021}}</ref> 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.<ref name="ia64-port" />', 2 => 'One of the more noteworthy Alpha-only features of OpenVMS was ''OpenVMS Galaxy'' - which allowed the [[Logical partition|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.<ref name="galaxy-docs">{{cite web|url=https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04621422|title=HP OpenVMS Alpha Partitioning and Galaxy Guide|date=September 2003|publisher=HP|access-date=October 22, 2021}}</ref><ref>{{cite web|url=https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|title=Compaq details strategy for OpenVMS|date=October 14, 1998|access-date=January 14, 2021|author=James Niccolai|publisher=Australian Reseller News|archive-date=April 4, 2023|archive-url=https://web.archive.org/web/20230404095822/https://www.arnnet.com.au/article/111492/compaq_details_strategy_openvms/|url-status=dead}}</ref>', 3 => '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.<ref>{{cite web|url=http://www.decus.de/slides/sy2005/06_04/2g05.pdf|access-date=December 21, 2020|website=decus.de|date=2005|title=OpenVMS Moving Custom Code|author=Thomas Siebold}}</ref>', 4 => '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.<ref>{{cite web|url=http://de.openvms.org/TUD2005/12_Open_VMS_Strategy_Paul_Lacombe.pdf|title=HP OpenVMS Strategy and Futures|author=Paul Lacombe|date=2005|access-date=December 21, 2020|website=de.openvms.org}}</ref>', 5 => 'The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the <code>[[Directory (OpenVMS command)|DIRECTORY]]</code> command.<ref>{{cite web|url=https://vmssoftware.com/about/news/2019-05-14-vms-software-inc-announces-first-boot-on-x86-architecture/|title=VMS Software Inc. Announces First Boot on x86 Architecture|date=May 14, 2019|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="9.0 Rollout">{{cite web|url=https://vmssoftware.com/docs/may-19-2020-v9.0-rollout-and-beyond.pdf|title=Rollout of V9.0 and Beyond|date=May 19, 2020|access-date=May 4, 2021|website=VSI}}</ref> 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.<ref name="state-of-the-port">{{cite web|url=https://vmssoftware.com/updates/state-of-the-port/|archive-url=https://web.archive.org/web/20210418211710/https://vmssoftware.com/about/state-of-the-port/|archive-date=April 18, 2021|url-status=dead|title=State of the Port|access-date=April 16, 2021|website=VSI}}</ref> In June 2021, VSI released the V9.1 Field Test, making it available to VSI's customers and partners.<ref name="vms-9.1">{{cite web|url=https://vmssoftware.com/about/openvmsv9-1/|title=OpenVMS 9.1|date=June 30, 2021|access-date=June 30, 2021|website=VSI|archive-url=https://web.archive.org/web/20210630172618/https://vmssoftware.com/about/openvmsv9-1/|archive-date=June 30, 2021|url-status=dead}}</ref> V9.1 shipped as an [[ISO image]] which can be installed onto a variety of hypervisors, and onto [[ProLiant|HPE ProLiant DL380]] servers starting with the V9.1-A release.<ref name="vsi-9.1-A">{{cite web|url=https://vmssoftware.com/about/news/2021-09-30-openvms-9/|title=VMS Software Releases OpenVMS V9.1-A|date=September 30, 2021|access-date=September 30, 2021|website=VSI}}</ref>', 6 => 'A now-defunct project named ''FreeVMS'' attempted to develop an [[open-source software|open source]] operating system following VMS conventions.<ref>{{cite web|url=https://www.osnews.com/story/8953/freevms-010-released/|title=FreeVMS 0.1.0 Released|author=Eugenia Loli|date=November 23, 2004|website=OSnews|access-date=April 2, 2022}}</ref><ref name="freevms-homepage">{{cite web|url=http://www.freevms.net/|title=FreeVMS official web page|archive-url=https://web.archive.org/web/20180908204358/http://www.freevms.net/|archive-date=September 8, 2018}}</ref> FreeVMS was built on top of the [[L4 microkernel family|L4 microkernel]] and supported the [[x86-64]] architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from [[Carnegie Mellon University]] using the [[Mach (kernel)|Mach 3.0]] microkernel ported to [[VAXstation#VAXstation 3100 Series|VAXstation 3100]] hardware, adopting a multiserver architectural model.<ref name="wiecek1992">{{ cite journal | url=https://archive.org/details/1992-proceedings-microkernels-seattle/page/187/mode/1up | title=A Model and Prototype of VMS Using the Mach 3.0 Kernel | journal=Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures | last1=Wiecek | first1=Cheryl A. | last2=Kaler | first2=Christopher G. | last3=Fiorelli | first3=Stephen | last4=Davenport, Jr. | first4=William C. | last5=Chen | first5=Robert C. | date=April 1992 | access-date=September 20, 2021 | pages=187–203 }}</ref>', 7 => 'The OpenVMS operating system has a layered architecture, consisting of a privileged ''Executive'', an intermediately-privileged Command Language Interpreter, and unprivileged utilities and [[Runtime library|run-time libraries]] (RTLs).<ref name="idsm-5.2">{{cite book|title=VAX/VMS Internals and Data Structures, Version 5.2|url=https://books.google.com/books?id=D7xQAAAAMAAJ|isbn=978-1555580599|author1=Ruth E. Goldenberg|author2=Lawrence J. Kenah|author3=Denise E. Dumas|publisher=Digital Press|date=1991}}</ref> Unprivileged code typically invokes the functionality of the Executive through ''system services'' (equivalent to [[system call]]s in other operating systems).', 8 => 'OpenVMS allows user mode code with suitable privileges to switch to executive or kernel mode using the <code>$CMEXEC</code> and <code>$CMKRNL</code> system services, respectively.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_SYS_SERVICES_REF_VOL_I.PDF|title=VSI OpenVMS System Services Reference Manual: A–GETUAI|publisher=VSI|date=June 2020|access-date=February 15, 2021}}</ref> 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.<ref name="inside-vms">{{cite book|title=Inside VMS: The System Manager's and System Programmer's Guide to VMS Internals|url=https://books.google.com/books?id=c4UhAQAAIAAJ|isbn=0-442-00474-5|author=Wayne Sewell|year=1992|publisher=Van Nostrand Reinhold}}</ref>', 9 => 'Files-11 is limited to 2TiB volumes.<ref name="andy-goldstein-files-11" /> DEC attempted to replace it with a [[log-structured file system]] file system named Spiralog first released in 1995.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes.<ref>{{cite web|url=https://community.hpe.com/t5/Operating-System-OpenVMS/Why-was-Spiralog-retired/td-p/4951205|title=Why was Spiralog retired?|date=January 10, 2006|access-date=January 13, 2021|website=Hewlett Packard Enterprise Community - Operating System - OpenVMS}}</ref> Instead, there has been discussion of porting the open source GFS2 file system to OpenVMS.<ref name="september-2020-roadmap">{{cite web|url=https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-url=https://web.archive.org/web/20201207040724/https://vmssoftware.com/pdfs/VMS_Software_Roadmap_2020.pdf|archive-date=December 7, 2020|url-status=dead|title=VSI OpenVMS Software Roadmap 2020|access-date=September 23, 2020|date=September 2020}}</ref>', 10 => '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 script]]s or [[batch file]]s).<ref name="user-guide">{{cite web|url=https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf|title=OpenVMS User's Manual|at=Chapter 14, Advanced Programming with DCL|website=VSI|access-date=April 9, 2021|date=July 2020}}</ref> The standard CLI for OpenVMS is the [[DIGITAL Command Language]], although other options are available as well.', 11 => 'Unlike [[Unix shell]]s, 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.<ref name="dcl-supervisor-thread">{{cite newsgroup|url=https://comp.os.vms.narkive.com/Wc1uHZU3/how-dangerous-is-it-to-be-able-to-get-into-dcl-supervisor-mode|title=How dangerous is it to be able to get into DCL supervisor mode?|author=Simon Clubley|date=July 3, 2017|newsgroup=comp.os.vms|access-date=February 1, 2021}}</ref> 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.<ref name="idsm-5.2" />', 12 => 'Due to the 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 the process address space at supervisor access mode - a higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user mode code.<ref name="idsm-5.2"/><ref name="dcl-supervisor-thread" />', 13 => '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 interface|command line]] or [[graphical user interface]].<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DEBUGGER.pdf|title=VSI OpenVMS Debugger Manual|date=June 2020|access-date=May 4, 2021|publisher=VSI}}</ref> A pair of lower-level debuggers, named ''DELTA'' and ''XDELTA'', can be used to debug privileged code in additional to normal application code.<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DELTA_XDELTA.pdf|title=VSI OpenVMS Delta/XDelta Debugger Manual|date=August 2019|access-date=December 31, 2020|publisher=VSI}}</ref>', 14 => 'In 2019, VSI released an officially-supported [[Integrated Development Environment]] for VMS based on [[Visual Studio Code]].<ref name="vms-roadmap-12-2019" /> This allows VMS applications to be developed and debugged remotely from a [[Microsoft Windows]], [[macOS]] or [[Linux]] workstation.<ref>{{cite web|url=https://marketplace.visualstudio.com/items?itemName=VMSSoftwareInc.vms-ide|title=VMS IDE|access-date=January 2, 2021|website=Visual Studio Marketplace}}</ref>', 15 => 'Various official [[Unix]] and [[POSIX]] compatibility layers were created for VMS. The first of these was ''DEC/Shell'', which was a layered product consisting of ports of the [[Bourne shell]] from [[Version 7 Unix]] and several other Unix utilities to VAX/VMS.<ref name="language-1985" /> In 1992, DEC released the ''POSIX for OpenVMS'' layered product, which included a shell based on the [[KornShell]].<ref>{{cite book|title=Software Product Description - POSIX for OpenVMS 2.0|date=1994|author=Digital Equipment Corporation}}</ref> 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.<ref>{{cite web|url=https://www.itec.suny.edu/scsys/vms/OVMSDOC0731/731final/6657/6657pro_008.html|date=June 2002|title=OpenVMS Alpha Version 7.3-1 New Features and Documentation Overview Begin Index}}{{Dead link|date=October 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> Amongst other GNU tools, GNV includes a port of the [[Bash (Unix shell)|Bash shell]] to VMS.<ref>{{cite web|url=https://vmssoftware.com/products/gnv/|title=VSI Products - GNV|access-date=August 19, 2020|website=VSI}}</ref> Examples of third party Unix compatibility layers for VMS include [[Eunice (software)|Eunice]].<ref>{{cite web|url=https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-url=https://web.archive.org/web/20040122172302/https://www.caam.rice.edu/caam/trs/82/TR82-08.pdf|archive-date=January 22, 2004|url-status=dead|date=August 10, 1987|title=ϕnix: a Unix emulator for VAX/VMS}}</ref>', 16 => '| Support for booting from third party devices' ]
Whether or not the change was made through a Tor exit node (tor_exit_node)
false
Unix timestamp of change ($1) (timestamp)
'1715198570'
Retrieved from "https://en.wikipedia.org/wiki/Special:AbuseLog/37687384"