後藤弘茂のWeekly海外ニュース

進むPCハードの仮想化
~Intelの「Vanderpool」とMicrosoftの「Virtual PC」




●トレンドは仮想マシンへと向かう

 PCハードウェアの仮想化が新しいステップに入ろうとしている。Intelの「Vanderpool(バンダプール)」とMicrosoftの「Virtual PC」と、Intel/Microsoftともに仮想マシンへと向かっている。Vanderpoolは、Intel CPUに仮想マシンのためにメカニズムをハードウェアベースで組み込もうという構想。一方、MicrosoftのVirtual PCは、Connectixから今年2月に獲得したもので、既存CPUベースのマシン上で複数の仮想マシンを実現するソフトウェア製品。PC世界の2強が仮想マシンに本格的に取り組み始めたことで、いきなりハードウェアの仮想化がトレンドになってしまったように見える。

 IntelとMicrosoftが仮想マシンに同時に向かっているのは、もちろん偶然ではあり得ないだろう。この2つの技術は、最終的に違いに補完しあうようになると思われる。

 例えば、IntelのVanderpoolは、バーチャルマシンマネージャ(VMM:Virtual Machine Manager)ソフトウェアを必要とする。一方、MicrosoftのVMMソフトであるVirtual PCは、ハードウェア側に仮想化のためのメカニズムがあれば、もっと堅牢なものになる。両技術が協調し合うのは自然に見える。

 というより、MicrosoftがVirtual PCを買った最大の理由は、IntelのVanderpoolが見えてきたからではないだろうか。IntelのVanderpoolが実装された時、MicrosoftがVMMソフトウェアを持っていなければ、誰か他の会社がOSの下のVMMレイヤーを提供してしまうことになるからだ。とすれば、Microsoftが先手を打たないわけはない。


●Vanderpoolのメカニズム

 IntelのVanderpoolは、同社のセキュリティハードウェアアーキテクチャ「LaGrande(ラグランド)」とある程度共通のメカニズムを使う。

 「VanderpoolとLaGrandeの関係は、次のように考えることができる。LaGrandeはセキュリティに特化した技術で、Vanderpoolはより汎用化した技術だ。Vanderpoolでは、アンダーラインの仮想化メカニズムが、メモリやI/Oに割り込みをかける。そのため、(仮想マシン上の)OSからは、仮想マシンがハードウェアのフルイメージを備えているように見える。仮想マシンの実装がうまくいけば、OS側は、現実のマシン上で走っているのか、仮想マシン上で走っているのか、区別ができないだろう」とIntelのPatrick P. Gelsinger(パット・P・ゲルシンガー)CTO兼上級副社長(CTO & Senior Vice President)は、9月のIntel Developer Forum(IDF)で説明している。

 つまり、OSの下層のレイヤで、各仮想マシンごとのメモリやI/Oアクセスを、Vanderpoolが管理してしまうため、仮想マシンメカニズムはOS側からは不可視になるというわけだ。では、これはどのような実装で実現するのだろう。

 Vanderpoolの実装はまだわからないが、LaGrande側の実装は、ある程度までは明らかになっている。Intelは、次世代CPU「Prescott(プレスコット)」から、新しく優先度の高い特権レベル(Gelsinger氏は便宜的にRING -1と仮称していた)を追加する。LaGrandeでは、そのRING -1モードで、セキュア実行(=ドメイン分割:Domain separation)を行うマネージャソフトウェア「Domain Manager(ドメインマネージャ)」が動作する。Domain Managerとハードウェア実装の組み合わせで、OS側からは見えないようにドメインの管理を行う仕組みだ。9月のIntel Developer Forum(IDF)では、「Domain Managerは、言ってみれば、保護エリアを管理するコード。自分自身も保護メモリ内で動作する」と説明していた。

 LaGrandeのDomain Managerが行うのは、CPUに複数のドメインを生成し、標準モードのドメイン以外は、保護エリアとしてドメイン分割して保護することだ。これも、一種の仮想化と考えることができる。LaGrandeでは、RING -1を利用するのはDomain Managerで、実装されている機能もドメイン管理に必要なレベルに限られているらしい。

 もっとも、LaGrandeの実装でも、Vanderpoolの目指すことの一部は実現できると見られる。というのは、9月のIDFでは、ハードウェアベースと称するVanderpoolのデモを行ったからだ。「まあ、IDFのデモでは、実際になんらかのメカニズムが必要だ。2つのOSを扱うためのローレベルの機能があってということになる」とGelsinger氏は示唆する。

 おそらく、Vanderpoolでは、このメカニズムをさらに拡張し、Gelsinger氏が言うようなフルの仮想化ができるようにすると思われる。そして、Vanderpoolもハードウェアとソフトウェアの協調するソリューションとなる。


●VanderpoolとVMMソフトウェア

 Gelsinger氏はVanderpoolとVMMソフトウェアの関係について次のように説明する。

Intelが示したVanderpoolの概念図

 「現在、仮想マシンはバーチャルマシンマネージャ(VMM:Virtual Machine Manager)ソフトウェアだけで実現されている。これらVMMソフトは、既存のハードの上で仮想マシンを作り出している。だから、その上でLinuxでもWindowsでも、好きなOSを複数同時に走らせることができる。

 しかし、既存アーキテクチャの制約の中で仮想化するために、VMMソフトにはマジックが必要だ。マジック、つまりカーネルのバイナリハッキングやキャプチャが必要で、VMMは言ってみれば、非常に汚いコードの集まりになっている。そのため、今日のソフトウェア実装は、非常に込み入っていて、どうしても堅牢性に欠ける。

 Vanderpoolテクノロジで目指しているのは、こうした問題を解決することだ。Vanderpoolでは、仮想化のメカニズムを直接ハードウェアに加える。といっても、VMMソフトウェアを完全に置き換えるわけではない。というのは、まだ(ソフトウェアが)必要な処理がたくさんあるからだ。しかし、ハードウェアを加えることで、VMMソフトウェアが、より堅牢で、より高パフォーマンスになる」とGelsinger氏は言う。

 つまり、Vanderpoolハードウェアと対応VMMソフトウェアによって堅牢な仮想化を実現するのが、Vanderpoolの構想というわけだ。また、Vanderpoolの場合は、今のVMMのようにホストOSとゲストOSという関係もなくなりそうだ。

 では、VanderpoolのVMMソフトウェア層は誰が提供するのか。

 Intelは、今のところLaGrandeのDomain Managerについても、誰が供給するのか明確にしていない。IDFでは「LaGrandeテクノロジはどんなDomain Managerも、OSカーネルも走らせることができる」と述べただけに留まった。もし、IntelがDomain Managerを用意していたとしても、Intelだけが提供するのではないと示唆しているように聞こえる。もちろん、Domain Managerはブート前から保護された領域に格納されている必要がある。

 Vanderpool対応のVMMについてはさらにぼかされている。「VMMでは2つの製品が市場で成功している。ひとつはVMwareで、もうひとつはMicrosoftが買収したVirtual PCだ。Microsoftは現在、優れたVMMのコードを持っている。また、そのほかに、半ダースの異なるオープンソースの仮想マシン技術が開発中だ」(Gelsinger氏)

 絶妙のタイミングでMicrosoftがVirtual PCを買収したことを考えると、VanderpoolサポートにMicrosoftが名乗りを上げることは間違いがない。最終的には、OSはその下のVMMレイヤー込みという形態が当たり前になると予想しているのかもしれない。


●技術の流れは、やはりメインフレームから

 ドメイン分割によるセキュリティ機能のLaGrandeも、ハードウェア支援の仮想化のVanderpoolも、いずれもIntelがオリジナルに編み出した技術ではない。

 「コンピュータ科学ではドメインセパレーションの歴史は古い。'70年代初めにはすでに登場していた。(LaGrandeは)それをメインストリームのクライアントPCに持ってきたことに意義がある」とIDFでは説明された。

 Gelsinger氏もVanderpoolについて、すでにメインフレームやミニコンで成立していた技術だとあっさり認める。

 「まさに、(IBMメインフレームやVAXの)技術と同じ方向のものだ。IBMはこれ(仮想マシン)をS360で始めた。私個人も、'80年頃にVM/CMS(Virtual Machine/Conversational Monitor System)を使ったことがある。ポイントは、基本アイデアとコンセプトは、ずっと以前からあったということだ。最初に実装されてから、長い汎用化の道を辿り、ついにx86アーキテクチャにまでやってきた」

 Vanderpoolで、まだ不鮮明なのはユーセージモデルだ。特定の使い方は想定しやすい。すでにVMMソフトを使ってLinuxとWindowsを共存させるといった使い方はされているわけで、その部分はVanderpoolで置き換えられる。問題は、もっと一般的なユーザーでのモデルだ。

 IDFのスピーチでは、同じマシン上で、片方のOSがビデオ再生をしている最中に、もうひとつのOSをリブートするというデモをして見せた。つまり、家庭に1台ハイパフォーマンスなPCがあって、それを家族でシェアしているという想定のモデルを見せたわけだ。増大するCPUパワーのうまい使い方の提案ということになるだろうか。

 しかし、ここにはアイロニーが見える。1台の(比較的)パワフルマシンを複数ユーザーがシェアするメインフレーム文化に対して、チープでローパワーなマシンを一人一人に提供すればいいという観点からPCは産まれた。ところが、今度は強力になったPCハードウェアを、仮想マシン化して使おうという発想が出てきたわけだ。歴史は繰り返しつつある。

□関連記事
【11月25日】【海外】Intelの2つの新技術「LaGrande」と「Vanderpool」の関係
http://pc.watch.impress.co.jp/docs/2003/1125/kaigai048.htm
【11月11日】Microsoft、「Virtual PC 2004」の開発を完了
http://pc.watch.impress.co.jp/docs/2003/1111/ms.htm
【2月20日】Microsoft、Connectixの仮想マシン技術を獲得
http://pc.watch.impress.co.jp/docs/2003/0220/ms.htm

バックナンバー

(2003年11月26日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2003 Impress Corporation All rights reserved.