OpenVMS (しばしば単にVMSと呼ばれる) [ 8 ]は、マルチユーザー、マルチプロセッシング、仮想メモリベースのオペレーティングシステムです。タイムシェアリング、バッチ処理、トランザクション処理、ワークステーションアプリケーションをサポートするように設計されています。 [ 9 ] OpenVMSを使用している顧客には、銀行や金融サービス、病院や医療機関、電気通信事業者、ネットワーク情報サービス、産業メーカーなどがあります。[ 10 ] [ 11 ] 1990年代から2000年代にかけて、世界中で約50万台のVMSシステムが稼働していました。[ 12 ] [ 13 ] [ 14 ]
OpenVMSは、1977年にデジタル機器コーポレーション(DEC)によってVAX/VMS(仮想アドレス拡張/仮想メモリシステム[ 15 ])としてVAX-11/780ミニコンピュータとともに初めて発表されました。 [ 16 ] [ 17 ] [ 18 ]その後、OpenVMSはDEC Alphaシステム、ItaniumベースのHPE Integrityサーバー[ 19 ]、および一部のx86-64ハードウェアとハイパーバイザ[ 20 ]で動作するように移植されました。2014年以降、OpenVMSはVMS Software Inc.(VSI)によって開発およびサポートされています。[ 21 ] [ 22 ] OpenVMSはクラスタリングによって高可用性を提供します。クラスタリングとは、システムを複数の物理マシンに分散させる機能です。[ 23 ]これにより、オペレーティングシステムのソフトウェアとハードウェアのメンテナンスとアップグレードが実行されている間、またはクラスタの一部が破壊された場合でも、クラスタ化されたアプリケーションとデータは継続的に利用可能になります。 [ 24 ] [ 25 ] VMSクラスタの稼働期間が17年と報告されている。[ 26 ]

1975 年 4 月、Digital Equipment Corporation (DEC) は、 PDP-11コンピュータ ラインの32 ビット拡張を設計するプロジェクトに着手しました。ハードウェア コンポーネントのコードネームはStar、オペレーティングシステムのコードネームはStarletでした。Roger Gourd が VMS のプロジェクト リーダーを務めました。ソフトウェア エンジニアのDave Cutler、Dick Hustvedt、Peter Lipman が技術プロジェクト リーダーを務めました。[ 27 ] PDP-11 の多くの互換性のないオペレーティングシステムの繰り返しを避けるため、新しいオペレーティングシステムはリアルタイム、タイム シェアリング、トランザクション処理に対応できるようにしました。[ 28 ] Star および Starlet プロジェクトは、VAX-11/780コンピュータと VAX/VMS オペレーティングシステムで完成しました。Starlet プロジェクトのコードネームは、VMS のいくつかのシステム ライブラリの名前として残っています。[ 29 ] VMS は主にVAX MACROで記述され、一部のコンポーネントはBLISSで記述されました。[ 8 ]STARLET.OLBSTARLET.MLB
VMS の当初の目標の 1 つは、DEC の既存のRSX-11Mオペレーティングシステムとの後方互換性でした。 [ 8 ] V4.0 リリース以前は、VAX/VMS にはRSX Application Migration Executive (RSX AME) という互換性レイヤーが含まれており、これにより、ユーザー モードの RSX-11M ソフトウェアを VMS 上で変更せずに実行できました。[ 30 ] RSX AME は、ネイティブ VAX バージョンが開発される前に特定の RSX-11M ユーザー モード ユーティリティを使用していた VAX/VMS の初期バージョンで重要な役割を果たしました。[ 8 ] V3.0 リリースまでに、すべての互換モード ユーティリティはネイティブ実装に置き換えられました。[ 31 ] VAX/VMS V4.0 では、RSX AME は基本システムから削除され、オプションのレイヤー 製品であるVAX-11 RSXに置き換えられました。[ 32 ]

1980年代初頭までに、VAX/VMSは市場で大きな成功を収めた。DECシステム上のUnixで開発されたものの、 Ingresは商業的な成功にはVMSへの移植が必要だと考え、VMSに移植した。VMS版の需要があまりにも大きかったため、同社はUnix版の開発を放棄した。[ 35 ] VAX/VMSには数多くのディストリビューションが作成された。
1988 年 4 月に V5.0 がリリースされると、DEC はドキュメントで VAX/VMS を単に VMS と呼ぶようになりました。[ 48 ] 1992 年 7 月に、[ 49 ] DEC はPOSIXや Unix 互換性などのオープン システム業界標準のサポートを示すため、また別のアーキテクチャへの移行が進行中であったため VAX との関連性を断つために、VAX/VMS を OpenVMS に改名しました。 [ 50 ] OpenVMS という名前は、1992 年 11 月にリリースされた OpenVMS AXP V1.0 で初めて使用されました。DEC は、1993 年 6 月にリリースされた V6.0 で OpenVMS VAX という名前を使い始めました。[ 51 ]

1980年代、DECはVAXプラットフォームとVMSオペレーティングシステムをPRISMアーキテクチャとMICAオペレーティングシステムに置き換える計画を立てていました。[ 53 ] 1988年にこれらのプロジェクトが中止されたため、 RISCベースのUnixシステムに匹敵する性能を持つ新しいVAX/VMSシステムを設計するチームが設立されました。[ 54 ]より高速なVAX互換プロセッサの設計に何度か失敗した後、このグループはVMSとそのアプリケーションをPRISMベースのRISCアーキテクチャに移植できる可能性を示しました。 [ 55 ]これによりAlphaアーキテクチャが誕生しました。[ 56 ] VMSをAlphaに移植するプロジェクトは1989年に始まり、 1991年初頭にプロトタイプのAlpha EV3ベースのAlphaデモンストレーションユニットで初めて起動しました。[ 55 ] [ 57 ]
VMS を新しいアーキテクチャに移植する際の主な課題は、VMS と VAX が一緒に設計されたため、VMS が VAX アーキテクチャの特定の詳細に依存していたことでした。[ 58 ]さらに、VMS カーネル、レイヤード製品、および顧客開発アプリケーションのかなりの部分がVAX MACROアセンブリコードで実装されていました。[ 8 ] VMS を VAX アーキテクチャから切り離すために必要な変更には、VAX MACRO を高水準言語として扱い、Alpha オブジェクトコードにコンパイルする MACRO-32 コンパイラの作成[ 59 ]や、割り込み処理やアトミック キュー命令など、VAX アーキテクチャの特定の低水準の詳細をPALcodeでエミュレートすることなどがありました。
VMS を Alpha に移植した結果、VAX用と Alpha 用の 2 つの別々のコード ベースが作成されました。[ 4 ] Alpha コード ライブラリは、V5.4-2 頃の VAX/VMS コード ベースのスナップショットに基づいています。[ 60 ] 1992 年に、 Alpha AXPシステム用の OpenVMS の最初のバージョンであるOpenVMS AXP V1.0がリリースされました。1994 年に OpenVMS V6.1 がリリースされ、VAX 版と Alpha 版の間で機能 (およびバージョン番号) の同等性が達成されました。これは、いわゆる機能的同等性リリースです。[ 60 ] OpenVMS AXP の試作版リリースに 1.x バージョン番号ストリームを使用するという決定は、一部の顧客を混乱させ、OpenVMS の新しいプラットフォームへのその後の移植では繰り返されませんでした。[ 58 ]
VMS が Alpha に移植された当初は、32 ビットのみのオペレーティングシステムとして残されました。[ 59 ]これは、32 ビット VAX 用に書かれたソフトウェアとの下位互換性を確保するためでした。Alpha に 64 ビット アドレス指定が初めて追加されたのは V7.0 リリースです。[ 61 ] 64 ビット コードが古い 32 ビット コードと相互運用できるようにするために、OpenVMS は 32 ビットと 64 ビットの実行可能ファイルを区別せず、代わりに同じコード内で 32 ビットと 64 ビットの両方のポインタを使用できるようにしています。[ 62 ]これは混合ポインタ サポートとして知られています。64 ビット OpenVMS Alpha リリースは、最大 8TiB (43 ビット アドレス空間) の仮想アドレス空間サイズをサポートしており、これはAlpha 21064およびAlpha 21164でサポートされている最大値です。[ 63 ]
OpenVMS の Alpha 版のみに搭載されていた注目すべき機能の 1 つはOpenVMS Galaxyで、これにより単一の SMP サーバーをパーティション分割して複数の OpenVMS インスタンスを実行できるようになりました。Galaxy は、実行中のパーティションへの動的なリソース割り当てと、パーティション間でメモリを共有する機能をサポートしていました。[ 64 ] [ 65 ]

2001 年、ヒューレット・パッカードによる買収に先立ち、コンパックはOpenVMS をIntel Itaniumアーキテクチャに移植することを発表した。[ 66 ] Itanium への移植は、コンパックが当時新しかった Itanium アーキテクチャを採用するために Alpha アーキテクチャの今後の開発を中止するという決定の結果であった。[ 67 ]移植は 2001 年後半に開始され、最初の起動は 2003 年 1 月 31 日に行われた。[ 68 ]最初の起動は、 HP i2000ワークステーションで最小限のシステム構成を起動し、ユーザーとしてログインしてコマンドSYSTEMを実行することであったDIRECTORY。OpenVMS の Itanium 版は、HPE Integrity Serversの特定のモデルと構成をサポートしている。[ 9 ] Itanium 版は当初HP OpenVMS Industry Standard 64 for Integrity Serversという名前であったが、 OpenVMS I64またはOpenVMS for Integrity Servers という名前の方が一般的に使用されている。[ 69 ]
Itanium への移植は、OpenVMS Alpha ソースコードライブラリ内で共通して維持されているソースコードを使用して実現され、Itanium に固有の変更が必要な箇所には条件付きコードと追加モジュールが追加されました。[ 58 ]これにより、OpenVMS の特定のアーキテクチャ上の依存関係を置き換えるか、ソフトウェアでエミュレートする必要がありました。変更点には、オペレーティングシステムの起動に拡張ファームウェアインターフェイス(EFI) を使用すること、[ 70 ]カーネル内で Alpha PALcode によって以前提供されていた機能を再実装すること、[ 71 ]新しい実行可能ファイル形式 (実行可能リンク可能形式とDWARF ) を使用すること、[ 72 ]およびデフォルトの浮動小数点形式としてIEEE 754を採用することなどが含まれます。 [ 73 ]
VAXからAlphaへの移植と同様に、AlphaからItaniumへのバイナリトランスレータが提供され、ソースコードの再コンパイルが不可能な状況で、ユーザーモードのOpenVMS AlphaソフトウェアをItaniumに移植することが可能になった。このトランスレータはAlpha Environment Software Translator(AEST)として知られており、VESTで既に変換されたVAX実行可能ファイルの変換もサポートしていた。[ 74 ]
2003 年 6 月 30 日と 2003 年 12 月 18 日に、OpenVMS I64 V8.0 と V8.1 という 2 つのプレプロダクション リリースが利用可能になりました。これらのリリースは、ソフトウェア パッケージを OpenVMS I64 に移植する HP 組織およびサードパーティ ベンダーを対象としていました。最初のプロダクション リリースである V8.2 は、2005 年 2 月にリリースされました。V8.2 は Alpha 向けにもリリースされました。以降の OpenVMS V8.x リリースでは、Alpha アーキテクチャと Itanium アーキテクチャの間で機能の同等性が維持されています。[ 75 ]
VMS Software Inc. (VSI) は、HP から OpenVMS オペレーティングシステムの開発権を取得したと発表した際、OpenVMS をx86-64アーキテクチャに移植する意向も発表した。[ 76 ]この移植作業は、同社の設立と並行して行われ、VSI 独自の Itanium および Alpha リリースの OpenVMS V8.4-x の開発も並行して行われた。
x86-64 ポートは、HPEおよびDellの特定のサーバー、および特定の仮想マシンハイパーバイザーを対象としています。[ 77 ]当初はKVMおよびVirtualBoxがサポート対象でした。VMware のサポートは2020年に発表され、Hyper-Vは将来のターゲットとして検討されています。[ 78 ] 2021 年に、x86-64 ポートがIntel Atomベースのシングルボード コンピュータで動作することが実証されました。[ 79 ]
Alpha および Itanium ポートと同様に、x86-64 ポートでは、新しいプラットフォームでの OpenVMS の移植とサポートを簡素化するために、次のような変更が加えられました。VMS コンパイラで使用されていた独自の GEM コンパイラ バックエンドをLLVMに置き換えること[ 80 ]、OpenVMS がメモリ ディスクから起動するようにブート プロセスを変更すること[ 81 ]、x86-64 の特権レベルのうち OpenVMS で使用できるのは 2 つだけであるため、OpenVMS の 4 つの特権レベルをソフトウェアでシミュレートすること[ 71 ] 。
最初のブートは2019年5月14日に発表されました。これはVirtualBox上でOpenVMSを起動し、DIRECTORYコマンドを正常に実行することを含みます。[ 82 ] 2020年5月、V9.0早期導入キットが少数の顧客に提供されました。これは、特定の制限付きでVirtualBox VMで動作するOpenVMSオペレーティングシステムで構成されていました。最も重要なのは、利用可能なレイヤード製品が少なく、コードはItaniumベースのOpenVMSシステムで動作するクロスコンパイラを使用してx86-64用にコンパイルすることしかできないことでした。[ 20 ] V9.0リリース後、VSIは毎月または隔月で一連のアップデートをリリースし、機能とハイパーバイザのサポートを追加しました。これらはV9.0-AからV9.0-Hと指定されました。[ 83 ] 2021年6月、VSIはV9.1フィールドテストをリリースし、VSIの顧客とパートナーに提供しました。[ 84 ] V9.1はISOイメージとして出荷され、さまざまなハイパーバイザーや、V9.1-Aリリース以降のHPE ProLiant DL380サーバーにインストールできます。 [ 85 ]
1980年代、PRISMアーキテクチャ用のMICAオペレーティングシステムは、最終的にVMSの後継となることを意図していました。MICAは、VMSアプリケーションとの後方互換性を維持しながら、同じカーネル上でUltrixアプリケーションをサポートするように設計されていました。 [ 86 ] MICAは最終的にPRISMプラットフォームの残りの部分とともにキャンセルされ、デイブ・カトラーはDECを離れてマイクロソフトに移籍しました。マイクロソフトで、カトラーはMICAのアーキテクチャに大きく影響を受けたWindows NTオペレーティングシステムの作成を主導しました。 [ 87 ]その結果、VMSはRSX-11、VAXELN 、MICAとともにWindows NTの祖先とみなされており、VMSとNTの間には多くの類似点が存在します。[ 88 ]
現在では廃止されたFreeVMSというプロジェクトは、VMSの慣例に従ってオープンソースのオペレーティングシステムを開発しようと試みた。 [ 89 ] [ 90 ] FreeVMSはL4マイクロカーネル上に構築され、x86-64アーキテクチャをサポートしていた。マイクロカーネルベースのアーキテクチャを使用したVMSの実装に関する以前の研究は、DECの従業員がカーネギーメロン大学の支援を受けて、 VAXstation 3100ハードウェアに移植されたMach 3.0マイクロカーネルを使用し、マルチサーバーアーキテクチャモデルを採用してプロトタイプ作成作業として行われた。[ 91 ]

OpenVMSオペレーティングシステムは、特権を持つExecutive、中間的な特権を持つコマンド言語インタープリタ、および非特権のユーティリティとランタイムライブラリ(RTL)からなる階層型アーキテクチャを採用しています。[ 92 ]非特権コードは通常、システムサービス(他のオペレーティングシステムのシステムコールに相当)を介してExecutiveの機能を呼び出します。
OpenVMS のレイヤーとメカニズムは、VAX アーキテクチャの特定の機能を中心に構築されています。これには以下が含まれます。[ 92 ] [ 93 ]
これらの VAX アーキテクチャのメカニズムは、Alpha、Itanium、および x86-64 上で、それぞれのアーキテクチャ上の対応するハードウェア メカニズムにマッピングするか、エミュレーション ( Alpha ではPALcodeを介して、Itanium および x86-64 ではソフトウェアを介して) によって実装されています。[ 71 ]
OpenVMS エグゼクティブは、システム空間に存在する特権コードとデータ構造から構成されます。エグゼクティブはさらに、カーネルアクセスモードで実行されるコードで構成されるカーネルと、カーネルの外側でエグゼクティブアクセスモードで実行される特権の低いコードに細分化されます。[ 92 ]
エグゼクティブ アクセス モードで実行されるエグゼクティブのコンポーネントには、レコード管理サービスや、イメージ アクティベーションなどの特定のシステム サービスが含まれます。カーネル アクセス モードとエグゼクティブ アクセス モードの主な違いは、オペレーティングシステムのコア データ構造のほとんどがエグゼクティブ モードから読み取ることができますが、書き込みにはカーネル モードが必要であることです。[ 93 ]エグゼクティブ モードの実行中のコードは、カーネル モードに任意に切り替えることができます。つまり、カーネル モードとエグゼクティブ モードの間の境界は、セキュリティ メカニズムではなく、偶発的な破損に対する保護策として意図されています。[ 94 ]
カーネルは、オペレーティングシステムのコアデータ構造(ページテーブル、I/Oデータベース、スケジューリングデータなど)と、これらの構造を操作するルーチンで構成されています。カーネルは通常、I/O、プロセスおよび時間管理、メモリ管理の3つの主要なサブシステムで構成されていると説明されます。[ 92 ] [ 93 ]さらに、論理名管理、同期、システムサービスディスパッチなどの他の機能もカーネル内に実装されています。
OpenVMS では、適切な権限を持つユーザー モード コードが、それぞれ$CMEXECおよび$CMKRNLシステム サービスを使用して、エグゼクティブ モードまたはカーネル モードに切り替えることができます。[ 95 ]これにより、システム スペース外のコードがエグゼクティブのルーチンおよびシステム サービスに直接アクセスできるようになります。特権イメージは、オペレーティングシステムへのサードパーティ拡張機能を可能にするだけでなく、コア オペレーティングシステム ユーティリティによって、文書化されていないインターフェイスを介してオペレーティングシステムのデータ構造を操作するためにも使用されます。[ 96 ]
ファイルシステムへの一般的なユーザーおよびアプリケーションインターフェースはレコード管理サービス(RMS)ですが、アプリケーションはQIOシステムサービスを介して基盤となるファイルシステムと直接インターフェースすることもできます。[ 97 ] VMSでサポートされているファイルシステムはFiles-11 On-Disk Structures (ODS)と呼ばれ、その中で最も重要なのはODS-2とODS-5です。[ 98 ] VMSはISO 9660 CD-ROMおよびANSIテープラベル付き磁気テープ上のファイルにもアクセスできます。[ 99 ]
Files-11 は 2 TiB ボリュームに制限されています。[ 98 ] DEC は、1995 年に初めてリリースされたログ構造ファイルシステムSpiralog でこれを置き換えようとしました。 [ 100 ]しかし、Spiralog はフルボリュームの処理に関する問題など、さまざまな問題により開発が中止されました。[ 100 ]代わりに、オープンソースの GFS2 ファイルシステムを OpenVMS に移植することが議論されています。[ 101 ]
OpenVMSコマンド言語インタープリタ(CLI)は、OpenVMSのコマンドラインインターフェースを実装し、個々のコマンドとコマンド手順(シェルスクリプトやバッチファイルに相当)を実行する役割を担います。[ 102 ] OpenVMSの標準CLIはDIGITALコマンド言語ですが、他のオプションも利用可能です。
Unix シェルは通常、独自の独立したプロセスで実行され、他のユーザー モード プログラムと同様に動作しますが、OpenVMS CLI はプロセスのオプション コンポーネントであり、そのプロセスが実行する実行可能イメージと並行して存在します。[ 103 ] Unix シェルは通常、 fork-execを使用して別のプロセスを作成することで実行可能を実行しますが、OpenVMS CLI は通常、実行可能イメージを同じプロセスにロードし、イメージに制御を移し、イメージが終了してプロセスが元の状態に戻った後に、制御が CLI に戻されるようにします。[ 92 ]
CLI はユーザー コードと同じアドレス空間にロードされ、イメージのアクティベーションとイメージのランダウンの呼び出しを担当するため、CLI はスーパーバイザ アクセス モードのプロセス アドレス空間にマッピングされます。これは、ほとんどのユーザー コードよりも高いレベルの特権です。これは、ユーザー モード コードによる CLI のコードとデータ構造の偶発的または悪意のある操作を防ぐためです。[ 92 ] [ 103 ]

OpenVMS はクラスタリング(最初はVAXcluster、後にVMSclusterと呼ばれた) をサポートしており、複数のコンピュータがそれぞれ独自のオペレーティングシステムのインスタンスを実行します。クラスタ化されたコンピュータ (ノード) は互いに完全に独立している場合もあれば、ディスク ドライブやプリンタなどのデバイスを共有している場合もあります。ノード間の通信により、単一のシステム イメージの抽象化が提供されます。[ 104 ]ノードは、Cluster Interconnect と呼ばれる独自のハードウェア接続、または標準のEthernet LANを介して相互に接続できます。
OpenVMS は、単一のクラスタで最大 96 ノードをサポートします。また、混合アーキテクチャのクラスタも可能です。[ 23 ] OpenVMS クラスタでは、計画的または計画外の停止中にアプリケーションが機能することができます。[ 105 ]計画的停止には、ハードウェアとソフトウェアのアップグレードが含まれます。[ 24 ]
DECnetプロトコル スイートは VMS に緊密に統合されており、リモート ログインや、ネットワーク経由で VMS システム上のファイル、プリンタ、その他のリソースへの透過的なアクセスが可能です。[ 106 ] VAX /VMS V1.0 は DECnet Phase II をサポートしており、[ 107 ]最新バージョンの VMS は、従来の Phase IV DECnet プロトコルとOSI 互換のPhase V ( DECnet-Plusとも呼ばれる) の両方をサポートしています。[ 108 ] TCP/IPのサポートは、オプションのTCP/IP Services for OpenVMSレイヤード 製品 (当初はVMS/ULTRIX Connection、その後ULTRIX Communications Extensionsまたは UCX として知られていた) によって提供されます。[ 109 ] [ 110 ] TCP/IP サービスは、 BSDネットワーク スタックを OpenVMS に移植したものに基づいており、 [ 111 ] SSH、DHCP、FTP、SMTPなどの一般的なプロトコルをサポートしています。
DECは、 MS-DOS、Microsoft Windows、OS/2、またはApple Macintoshを実行しているパーソナルコンピュータをVMSシステムの端末として機能させたり、VMSシステムをファイルサーバーまたはプリントサーバーとして使用したりできるPATHWORKS(当初はPersonal Computer Systems ArchitectureまたはPCSAとして知られていた)というソフトウェアパッケージを販売した。[ 112 ] PATHWORKSは後にAdvanced Server for OpenVMSと改名され、最終的にはItaniumへの移植時にSambaのVMSポートに置き換えられた。 [ 113 ]
DECは、DECserverファミリーなどのターミナルサーバを介してリモート端末やプリンタをVMSシステムに接続できるローカルエリアトランスポート(LAT)プロトコルを提供しました。[ 114 ]
DEC(およびその後継企業)は、VMS 用に多種多様なプログラミング言語を提供しました。VMS で公式にサポートされている言語(現在または過去のもの)には、次のものがあります。[ 115 ] [ 116 ] [ 117 ]
OpenVMS の注目すべき機能の 1 つは、共通言語環境 (Common Language Environment)です。これは、プログラミング言語に依存しないスタックやレジスタなどの使用を含む関数やルーチンの呼び出し規約を厳密に定義した標準です。 [ 118 ]このため、対象言語の実装の詳細を知る必要なく、ある言語 (例えば Fortran) で書かれたルーチンを別の言語 (例えば COBOL) から呼び出すことができます。OpenVMS 自体はさまざまな言語で実装されており、共通言語環境と呼び出し標準はこれらの言語を自由に混在させることをサポートしています。[ 119 ] DEC は、共通の定義からさまざまな言語のデータ型定義を生成できる構造定義言語(SDL)というツールを作成しました。 [ 120 ]
オペレーティングシステムに直接付属する言語は、C、Fortran、Pascal、BASIC、C++、BLISS、COBOLに限定されています。自由に利用できるオープンソース言語には、Lua、PHP、Python、Scala、Javaなどがあります。[ 121 ]

DECは、 DECset(当初はVAXsetという名称)という階層型製品としてソフトウェア開発ツールのコレクションを提供した。[ 115 ]これは以下のツールで構成されていた。[ 122 ]
OpenVMS デバッガは、すべての DEC コンパイラと多くのサードパーティ言語をサポートしています。コマンドラインまたはグラフィカルユーザーインターフェイスを使用して、ブレークポイント、ウォッチポイント、対話型ランタイムプログラムのデバッグが可能です。[ 124 ] DELTAおよびXDELTAという下位レベルのデバッガのペアを使用すると、通常のアプリケーションコードに加えて特権コードのデバッグを行うことができます。[ 125 ]
2019年、VSIはVisual Studio CodeをベースとしたVMS向け公式サポート統合開発環境をリリースしました。[ 77 ]これにより、 Microsoft Windows、macOS、またはLinuxワークステーションからリモートでVMSアプリケーションを開発およびデバッグすることが可能になりました。[ 126 ]
DECはVMS向けに多数のオプションデータベース製品を開発し、その一部はVAX Information Architectureファミリーとして販売された。[ 127 ]これらの製品には以下が含まれる。
1994年、DECはRdb、DBMS、CDDをOracleに売却し、Oracleでは現在も活発に開発が続けられている。[ 132 ] 1995年、DECはDSMをInterSystemsに売却し、InterSystemsはそれをOpen Mと改名し、最終的にはCaché製品に置き換えた。[ 133 ]
OpenVMS 用のサードパーティ製データベース管理システムの例としては、MariaDB [ 134 ] 、 Mimer SQL [ 135 ] ( Itaniumおよびx86-64 [ 136 ] )、System 1032 [ 137 ]などがあります。

VMSは当初、DECのVT100などのテキストベースのビデオ端末、またはDECwriterシリーズなどのハードコピー端末を使用して対話的に使用および管理できるように設計されていました。1984年にVAXstationシリーズが導入されて以来、VMSはオプションで、ワークステーションやVT1000シリーズなどのX端末で使用するためのグラフィカルユーザーインターフェースをサポートするようになりました。
DIGITALコマンド言語(DCL)は、最初のリリース以来、OpenVMS の主要なコマンド言語インタープリタ (CLI) として機能してきました。 [ 138 ] [ 30 ] [ 9 ] VMS で利用可能なその他の公式 CLI には、RSX-11モニタ コンソール ルーチン (MCR) (VAX のみ) やさまざまなUnix シェルなどがあります。[ 115 ] DEC は、テキスト ベースのユーザー インターフェイスアプリケーションを作成するためのツール、フォーム管理システム(FMS) およびターミナル データ管理システム(TDMS) を提供し、後にDECformsに引き継がれました。[ 139 ] [ 140 ] [ 141 ] Unix cursesに匹敵する、スクリーン管理サービス(SMG$)と呼ばれる低レベル インターフェイスも存在します。[ 142 ]


VMSは長年にわたり、さまざまなGUIツールキットとインターフェースを経てきた。
1990年代のDEC Alphaワークステーションで動作していたVMSのバージョンは、OpenGL [ 153 ]とAccelerated Graphics Port (AGP)グラフィックスアダプタをサポートしていました。VMSは、 GKSやPHIGSなどの古いグラフィックス規格もサポートしています。[ 154 ] [ 155 ] DECwindowsの最新バージョンはX.Org Serverに基づいています。[ 9 ]
OpenVMS は、セキュリティ識別子、リソース識別子、サブシステム識別子、ACL、侵入検知、詳細なセキュリティ監査およびアラームなど、さまざまなセキュリティ機能とメカニズムを提供します。[ 156 ]特定のバージョンは、Trusted Computer System Evaluation Criteriaクラス C2で評価され、SEVMS セキュリティ強化リリースではクラス B1 で評価されています。[ 157 ] OpenVMS は ITSEC E3 の評価も取得しています ( NCSCおよびCommon Criteria を参照)。[ 158 ]パスワードはPurdy 多項式を使用してハッシュ化されます。
SYSTEM、、、FIELDなど)がいくつか含まれていました。 [ 159 ] [ 160 ] WANKワームやFather Christmasワームなど、VMS用の多くのコンピュータワームは、これらのデフォルトパスワードを悪用してDECnetネットワーク上のノードにアクセスしました。[ 161 ]この問題は、クリフォード・ストールが著書『カッコウの卵』で、マルクス・ヘスがVAX/VMSシステムに不正アクセスした手段としても説明されています。[ 162 ] V5.0では、デフォルトパスワードが削除され、システム設定時にこれらのアカウントのパスワードを入力することが必須になりました。[ 39 ]SYSTESTDECNETVMS 用にさまざまな公式UnixおよびPOSIX互換レイヤーが作成されました。最初のものはDEC/Shellで、これはバージョン 7 UnixのBourne シェルと他のいくつかの Unix ユーティリティを VAX/VMS に移植したレイヤード製品でした。[ 115 ] 1992 年に、DEC はKornShellをベースにしたシェルを含むPOSIX for OpenVMSレイヤード製品をリリースしました。[ 165 ] POSIX for OpenVMS は後にオープンソースのGNV ( GNU 's not VMS) プロジェクトに置き換えられ、2002 年に OpenVMS メディアに初めて含まれました。[ 166 ] GNV には、他の GNU ツールに加えて、VMS 用のBash シェルの移植が含まれています。[ 167 ] VMS 用のサードパーティ Unix 互換レイヤーの例としては、Eunice があります。[ 168 ]
1997年、OpenVMSといくつかのレイヤード製品が、OpenVMSホビイストプログラムの一環として、趣味の非商用利用向けに無償で提供されました。[ 169 ]それ以来、Process Softwareなど、OpenVMSソフトウェアを開発しているいくつかの企業が、同じ条件で自社製品を提供しています。[ 170 ] x86-64ポートが登場する以前は、OpenVMSを実行できるハードウェアの古さとコストのため、SIMHなどのエミュレータが趣味のインストールでよく使われていました。[ 171 ]
2020 年 3 月、HPE は OpenVMS ホビイスト プログラムの終了を発表しました。[ 172 ]これに続いて、2020 年 4 月、VSI は HPE ホビイスト プログラムの代替としてコミュニティ ライセンス プログラム(CLP) を発表しました。 [ 173 ] CLP は 2020 年 7 月に開始され、Alpha、Integrity、および x86-64 システム上の VSI OpenVMS リリースのライセンスを提供します。[ 174 ] VAX 用の OpenVMS は、VSI の OpenVMS VAX リリースが存在せず、古いバージョンは HPE が所有しているため、CLP の対象外です。[ 175 ]
Equipment Corp.が先週、同社のMicrovax Iファミリーのマイクロコンピュータ向けに発表したMicro VMSオペレーティングシステムは、パッケージ化されたバージョンである...
{{cite web}}: CS1 maint: url-status (リンク)