1972年の伝説的名機 System/370 + VM/370 がどのようにしてその『平和』を築き上げ、それが巡り巡って、なぜ現代の Kubernetes という複雑な怪物に繋がっているのか。
その 50 年を超える壮大な物語を紐解いていきたいと思います。
この記事は弊社(Prop Tech plus)エンジニア内での LT 会で発表した内容を元にしています。
その発表内容や記事の作成にあたっては、基本アイディアは私が出しつつも、壁打ち&情報調査という観点で AI(Gemini) が膨大な資料から抽出してくれた知識からの助けを多大に受けています。
特に歴史的な技術情報の深堀りという面で、私自身も知らなかったことを、この記事作成を通じて知った面が多いです。
また、参考となる画像は Gemini/Nano Banana 2 が作ってくれました。
なるべく裏取りはしていますが、なにせ年数・話題的に広く、及ばずなところもあると思います。
そういったところはコメントで指摘していただけたると助かります!(反映してバージョンアップしていきたいです!)
1. はじめに:資源管理という名の「平和維持活動」
プログラムという生き物は本質的に「暴君」です。
隙あらばCPUを100%占有し、メモリを食い尽くそうとする本能を持っています。しかし、物理的なシリコン(資源)は同時に一人の主しか持てません。管理者が不在のカオスな世界では、一人のプログラムの暴走がシステム全体の沈黙を招きます。
仮想化とは、プログラム/OS に「自由」を与えつつ、システム全体の「秩序」を守るための強制的な平和維持活動なのです。
「仮想(Virtual)」という言葉の呪い
「仮想」は英語の Virtual の訳語ですが、IBM 日本法人の方は、後にこの訳語を充てたことを反省したという話があります。
本来、Virtualとは「表面上は違うが、実質そのもの」を意味しますが、日本語の「仮想」は「仮の」というニュアンスが強くなってしまいました。
本連載で扱う「仮想化」とは、偽物を作ることではなく、実質的な物理資源をいかに高度に抽象化するかという技術を指します。
上記のこと含めた、日本での Virtual の訳に関する考察は、こちらの「Virtualはどうして「仮想」になったのか~『VRの訳語』について新たにわかったこと~」が詳しいです!
ハードウェア層を Virtual に / 1 を N に / 1970年代~
2. ハイパーバイザー:偉大なる欺瞞者(Great Deceiver)
仮想化の中心に座るのが「ハイパーバイザー」です。
ハイバーバイザーは OS たちに対し、「君こそがこのマシンの唯一の主だ」という嘘の現実(仮想マシン)を見せ続ける手品師です。
ハイパーバイザーが提供する価値は、大きく分けて以下の3点に集約されます。
| 要素 | 役割 |
|---|---|
| 抽象化 (Abstraction) | 物理ハードウェアの複雑さを隠蔽し、扱いやすい論理資源に変える。 |
| 隔離 (Isolation) | 一つのVMがクラッシュしても、他のVMやホストに影響を与えない「壁」を作る。 |
| 集約 (Consolidation) | 低稼働なサーバーを1台にまとめ、物理資源を限界まで使い倒す。 |
3. 1972年、System/370 + VM/370 の衝撃
現代の私たちが享受している仮想化のテクニックは、50年以上前の1972年にすでに完成の域に達していました。
それが IBMが発表した System/370 + VM/370 です。
System/370 + VM/370 はハードウェアとソフトウェアの完璧な協調によって「完璧な嘘」を成立させました。
欺瞞の柱 ①:特権命令のトラップ(優しい嘘)
OSには「自分が王様である」という役割を演じさせ続けますが、実際には Problem State という制限されたモードで動かします。
OSがI/O実行などの「特権命令」を発行した瞬間、ハードウェアがそれを検知して実行を一時停止(トラップ)し、ハイパーバイザーである CP (Control Program) に制御を戻します。CPは命令を肩代わりし、OSには「成功」の結果だけを返します。
欺瞞の柱 ②:タイムスライス(時間の分断)=タイムシェアリング(時間の分有)
物理CPU時間を適切な小さな単位で切り刻み、複数のVMに順番に割り当てます。これにより、各OSは「自分が常時CPUを独占している」と錯覚します。
欺瞞の柱 ③:状態の保存・復元(PSW切り替え)
切り替えの瞬間、PSW (Program Status Word) と呼ばれるCPUのモードや命令アドレスを含む「OSの記憶」を一瞬で保存・復元します。この「時間の継ぎ目」を消す技術により、OSは自分が一時停止されていたことにすら気づきません。
IBM z/VM 50周年と技術詳細資料
1972年8月2日が VM/370 の誕生日とされており、2022年に50周年を迎えました。それを記念して IBM が 50年の歴史を振り返った資料が現在も公開されています。
また、特に以下の2つのPDFは、現代のハイパーバイザー設計思想の源流を知る上で必読です
もし System/370 と VM/370 についてより深掘りしてみたい人は、 bitsavers.org にアーカイブされている次のようなドキュメントを探ってみると興味深いと思います!
(…と書きつつ、斜め読みしかしてない
)
4. 第1回のまとめ:Stateful(保存)の時代
この時代の仮想化は、「状態(State)を完璧に保存すること」 に命を懸けていました。OS を死なせないために、ハードウェアとハイパーバイザーが協力して全力で嘘をつき、一瞬の状態も逃さずPSWとして記録する。
しかし、この「完璧な理想郷」は、後に登場する x86 アーキテクチャの台頭によって、一度「暗黒時代」へと突き落とされることになります。


