V (オペレーティングシステム)
V オペレーティングシステム(V-Systemとも記されるが System V との混同に注意)は、1980年代にデビッド・チェリトンを中心としたスタンフォード大学の Distributed Systems Group が開発したマイクロカーネル型のオペレーティングシステムである。V はチェリトンが以前に開発した Thoth と Verax の後継であった。
- V では今日「スレッド」と呼ばれているものを「プロセス」と呼び、複数のスレッドが1つのアドレス空間を共有する「プロセス」と呼ばれているものを「チーム」と呼んでいた。しかし、本項目では現代的な用語を使う。
V における重要な概念として「マルチスレッド」と「同期メッセージパッシング」がある。V におけるスレッド間通信には同期メッセージパッシングが使われ、簡単に言えば応答する前に送信元のアドレス空間の一部の読み書きができるアクセス権を含めた固定長のメッセージである。このメッセージパッシング・インタフェースは、同じプロセス内のスレッド間でも、同じマシン上の異なるプロセスにあるスレッド間でも、イーサネットで接続された異なるマシン上のスレッド間でも使われる。メッセージを受信したスレッドは、他のメッセージを受信する前に必ず応答しなければならないわけではない。この点はAdaのランデブー機能とは異なる。
メッセージ機能を使う典型パターンは、クライアントがサーバに対して何らかのサービスを要求するパターンである。クライアント側から見れば、これは遠隔手続き呼出し (RPC) のようなものである。自動スタブジェネレータのような便利さはないが、一方でクライアントはパラメータを参照渡しでき、これはRPCには不可能である。サーバ側から見てRPCとは大きくことなる点として、全てのクライアントからの要求はデフォルトでは1つのサーバスレッドに多重化される点が挙げられる。ただし、サーバはスレッドを明示的にフォークさせて、クライアントの要求を並行して処理することもできる。この場合、サーバ側のモデルはRPCにより近くなる。
V はそれ自体がチェリトンのグループの目的というわけではなかった。V は様々な分散オペレーティングシステムやネットワーキングの研究プロジェクトに利用された。当時の同様のオペレーティングシステム研究プロジェクト(Spriteなど)と同様、ほぼセルフホスティング式の完全なシステムであった。多くの学生がサンやDECのディスクレス型ワークステーションに V を唯一のオペレーティングシステムとして搭載し、使っていた。コンパイルは V 自身でも可能だったし、VAX上のUNIXでも可能だった(こちらの方が安定しているため、V の動作するマシンのファイルサーバとなっていた)。
最近では、PCクラスのマシンで Linux や BSD が広く利用できるようになったため、この種のセルフホスティング式でのオペレーティングシステム研究は稀となり、基盤を提供するためだけにそれほどのことをする動機が失われつつある。V は今ではほとんど忘れ去れているが、時代に足跡を残したと言える。V 用に開発された W Window System は、X Window System の元になった。V はまた、より純粋なマイクロカーネルの研究プロジェクトであるAppleの Vanguard も生み出した。Vanguard は基本システムに様々な改良を加えたが、組織改編に伴って消えていった。テクトロニクスのテレビ用測定器 VM700 は1980年代末に V を使っているネットワーク環境で開発され、若干修正を加えた V がオペレーティングシステムとして搭載されている。この機器は現在もまだ製造販売されている。