OpenVMS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
OpenVMS (Virtual Memory System) は、ディジタル・イクイップメント・コーポレーション (DEC、現在はヒューレット・パッカード) によって設計された、タイムシェアリングシステム、バッチ処理およびトランザクション処理用のオペレーティング・システムである。当初は単にVMSと一般的には呼ばれており、元々はVAXシステム上で動作していたが、後にDEC AlphaとIntel Itaniumに移植された。
目次 |
[編集] 経緯
[編集] 起源と名前の変遷
1975年4月、PDP-11用に32ビットの仮想アドレス拡張を設計するために、DECはコードネームStarというハードウェアのプロジェクトを開始した。それに伴って、Starファミリのプロセッサ用にRSX-11Mを基にした全く新しいオペレーティングシステムを開発すべく、コードネームStarletというソフトウェアのプロジェクトも1975年7月に開始された。これら2つのプロジェクトは当初から緊密に統合されていた。Star・Starletの両プロジェクトは、VAX 11/780コンピュータとVAX-11/VMSオペレーティング・システムとして結実した。
年を経るにつれて製品名は変化していった。1980年にはバージョン2.0のリリースに伴ってVAX/VMSと改名された(同時にVAX-11コンピュータは単にVAXと改名された[最初のVAXコンピュータは1984年発表のVAX8600である])。1991年には、POSIXやUNIX互換性といった業界標準のサポートを示唆し、さらにはDECの64ビット Alpha RISC CPU への移植が進行中であったので特定のハードウェアとの繋がりを断ち切るために、OpenVMSと再度改名された。OpenVMSの名前はバージョン5.5のリリースとともに最初に登場した。
[編集] DEC Alphaへの移植
VMSのAlphaへの移植は、32ビットと64ビットの各アーキテクチャ向けに別々のコードの作成を必要とした。1992年にはAlpha AXPシステム用の最初のバージョンのOpenVMSがリリースされ、OpenVMS AXP V1.0と名づけられた。その後、OpenVMS AXP 1.5がVAX/VMS 5.5相当としてリリースされた。(OpenVMS AXPの試作品クオリティのリリースに1.xといったバージョン番号を使用したことは顧客に混乱をもたらし、その後の移植版では繰り返されなかった)
1994年には、OpenVMSバージョン6.1のリリースに伴って、VAXとAlpha版の機能(とバージョン番号)が同等になった。その後のVAXとAlpha版の製品のバージョン番号は一貫している。
[編集] Intel Itaniumへの移植
2001年、DECを買収したコンパックがヒューレット・パッカード (HP) へ吸収される直前に、OpenVMSをIntel Itaniumアーキテクチャへ移植することを発表した。この移植はAlphaのコードを利用して行われ、VAXコードの成熟もあって移植プロセスは大幅に簡略化された。VAXコードベースの「スナップショット」がAlphaリリースの基として使用されたVAX版のAlphaへの移植と異なり、OpenVMSのAlphaとItenium版は共通のコードベースを利用してビルドされている。
最初の試作品クオリティのリリースであるOpenVMS IA64 V8.0は、2003年に出荷された。最初の製品クオリティのItanium版リリースであるOpenVMS V8.2は2004年後期に出荷される予定だったが、OpenVMS/Itanium移植版は2005年1月18日に発表された。
[編集] 機能
OpenVMSは3つのレイヤに分けることができる:
- 入出力、メモリ管理およびプロセス管理サブシステムからなるカーネル
- en:DCL、en:RMS、en:DECwindows(OpenVMSのX11準拠ウィンドウ・システム)およびen:RTLからなるコア・サービス
- サポート、システム管理およびプログラミングのためのユーティリティ・プログラム
[編集] クラスタリング
OpenVMSはクラスタリング (VAXclusterと呼ばれ、後にVMSclusterとなった)をサポートし、これにより、特別なハードウェアまたはイーサネットで接続された複数のシステムが、処理、ジョブ・キュー、プリント・キューおよびディスク・ストレージ、ファイルとファイルレコードを共有することができる。この場合の共有は、分散ロックマネジャを使用したShared Everythingと呼ばれクラスタ内のすべてのシステムから同時にアクセスが可能である。イーサネットによるクラスタは、Local Area Network VMSclusterを意味するLAVCと呼ばれる。OpenVMSは単一クラスタあたり96ノードまでサポートし、VAXとAlphaシステム、あるいはAlphaとItaniumシステムが単一のクラスタ内で共存するような混成アーキテクチャ・クラスタもサポートする。(OpenVMS Engieeringは理論上3アーキテクチャクラスタも可能であることを示唆していたが、HPはサポートしない)
[編集] Common Language Environment
OpenVMSの特筆すべき機能の一つがCommon Language Environmentであり、これはプログラミング言語から独立して、スタックやレジスタの使用も含めた関数やサブルーチンの呼び出し方を定義する、厳格に定められた標準である。これにより、対象となる言語の実装の詳細を知ることなく、ある言語(例えばFORTRAN)で書かれたサブルーチンを他の言語(例えばC言語)から呼び出すことが可能である。OpenVMS自体は多種の異なる言語(BLISS、VAX Macro、Ada、PL/I、C、FORTRAN、BASICなど)によって実装されており、ほぼ全体がC言語によって実装されているUNIXなどのシステムとは対照的である。
[編集] ファイルシステム
OpenVMSは、ストリームやレコード志向の入出力、アクセス・コントロール・リスト、ファイル・バージョニング等をサポートする非常にリッチなファイルシステムを持っている。en:OpenVMS filesystemを参照のこと。
[編集] 時刻の管理
VMSは、64ビットのエポックからの経過ナノ秒として時刻を管理している。OpenVMSのエポックは、1858年11月17日の深夜である。
[編集] OpenVMS ホビイスト・プログラム
商用オペレーティングシステムでありながら、1997年にはOpenVMSホビイスト・プログラムの一環として、OpenVMSと複数のレイヤ化された製品が、ホビイストの非商用利用については無料で利用可能となった。それ以降、OpenVMS用ソフトウェアを生産している複数の会社が、自社の製品を同様の条件で利用可能とした。