OpenVMS(Open Virtual Memory System)は、かつて
ディジタル・イクイップメント・コーポレーション(DEC、現在は
ヒューレット・パッカード・エンタープライズ)によって開発された、高度な
オペレーティングシステムです。タイムシェアリング、
バッチ処理、
トランザクション処理など、多岐にわたる用途に対応しています。元々はVMSと呼ばれていましたが、その歴史の中で名称が変更されてきました。当初は
VAXシステムで動作していましたが、後にDEC Alphaや
インテルItaniumといった異なるアーキテクチャにも移植されています。
OpenVMSの歴史
起源と名称の変遷
OpenVMSの歴史は、1970年代にDECが開始した二つのプロジェクトに遡ります。一つは、PDP-11用の32
ビット仮想アドレス拡張を目的とした
ハードウェアプロジェクト「Star」、もう一つは、Starプロセッサ向けの新しい
オペレーティングシステムを開発する
ソフトウェアプロジェクト「Starlet」です。デヴィッド・カトラー率いるStarletプロジェクトは、RSX-11Mをベースとしており、これらのプロジェクトは緊密に連携して進められました。そして、これらのプロジェクトの成果が、
VAX-11/780コンピュータと
VAX-11/VMS
オペレーティングシステムとして結実しました。
製品名は、その歴史の中で何度か変更されています。
1980年にはバージョン2.0のリリースに伴い、
VAX/VMSと改称されました。
1991年には、POSIXや
UNIX互換性といった業界標準への対応、そして64
ビットDEC Alpha
RISC CPUへの移植が進んでいたため、アーキテクチャとの関連性を薄める目的でOpenVMSへと再度名称が変更されました。このOpenVMSという名称は、バージョン5.5のリリースと共に初めて登場しました。
DEC Alphaへの移植
OpenVMSのDEC Alphaへの移植は、32
ビットアーキテクチャと64
ビットアーキテクチャ向けに異なるコードを必要としました。
1992年には、Alpha AXPシステム向けの最初のバージョンであるOpenVMS AXP V1.0がリリースされました。その後、OpenVMS AXP 1.5が
VAX/VMS 5.5相当としてリリースされています。初期のAlpha版のバージョン番号が顧客に混乱を招いたため、その後の移植版ではこの方式は用いられませんでした。
1994年には、OpenVMSバージョン6.1のリリースと共に、
VAX版とAlpha版の機能とバージョン番号が統一されました。
Itaniumへの移植
2001年、DECを買収した
コンパックが
ヒューレット・パッカード(HP)に吸収される直前に、OpenVMSの
インテルItaniumアーキテクチャへの移植が発表されました。この移植は、Alpha版のコードをベースとしており、
VAXコードの成熟も手伝って、移植プロセスは大幅に簡略化されました。初期のItanium版であるOpenVMS IA64 V8.0は
2003年にリリースされ、製品版であるOpenVMS V8.2は2005年1月18日に発表されました。その後、V8.4ではHP Integrity VMのゲストOSとしてサポートされています。
OpenVMSの機能
OpenVMSは、以下の3つの層に分けることができます。
1.
カーネル:
入出力、メモリ管理、プロセス管理などの基本機能を提供します。
2.
コアサービス: DCL(コマンド言語)、RMS(
レコード管理システム)、DECwindows(X11準拠ウィンドウシステム)、RTL(ランタイムライブラリ)などで構成されます。
3.
ユーティリティプログラム: システム管理、プログラミング、サポートなどに使用される様々なツールを提供します。
クラスタリング
OpenVMSは、クラスタリング(
VAXcluster、後にVMScluster)をサポートしており、複数のシステムを接続して、処理、ジョブキュー、プリントキュー、ディスクストレージなどを共有できます。これにより、システム全体としての可用性や処理能力を向上させることができます。共有は「Shared Everything」方式で、分散ロックマネージャーを使用し、すべてのシステムから同時にアクセスできます。
イーサネットによるクラスタはLAVC(Local Area Network VMScluster)と呼ばれます。OpenVMSは、単一クラスタあたり96ノードまでサポートし、異なるアーキテクチャ(
VAX、Alpha、Itanium)を混在させたクラスタもサポートします。
Common Language Environment (CLE)
OpenVMSの大きな特徴の一つに、Common Language Environment (CLE) があります。これは、
プログラミング言語に依存せず、関数や
サブルーチンの呼び出し方を定義する厳格な標準です。CLEによって、異なる言語で書かれたプログラム間での連携が容易になります。OpenVMS自体が多種の言語(BLISS、
VAX Macro、
Ada、
PL/I|PL_I、C、FORTRAN、
BASICなど)で実装されていることも特徴的です。
OpenVMSは、ストリームや
レコード指向の
入出力、アクセス制御リスト、ファイルバージョニングなど、多くの機能を備えた
ファイルシステムを搭載しています。ファイルバージョニング機能は、ファイルの編集や保存のたびにファイル名の後ろに番号を付与するもので、最新版を容易に特定できます。また、ファイル名の大文字と小文字は区別されず、ディレクトリパスは角括弧で囲み、ディレクトリはピリオドで区切る必要があります。
時刻の管理
OpenVMSは、エポックからの経過ナノ秒を64
ビットで保持することにより時刻を管理します。OpenVMSのエポックは、1858年11月17日の真夜中です。
OpenVMS ホビイスト・プログラム
OpenVMSは、商用
オペレーティングシステムでありながら、1997年からホビイスト向けのプログラムを提供しています。このプログラムを通じて、OpenVMSと一部のレイヤード
ソフトウェアが、非商用利用については無料で利用可能となっています。現在では、複数の企業が同様の条件で
ソフトウェアを提供しています。
まとめ
OpenVMSは、その高度な機能と柔軟性で、長年にわたり多くのシステムで活用されてきました。その歴史、アーキテクチャの変遷、多様な機能、そしてホビイストプログラムの存在は、この
オペレーティングシステムの魅力的な側面です。
参考