スマートフォン用の表示で見る

Xen

コンピュータ仮想化技術の実装の一つ。最近、徐々に注目を集めてきている。

パソコンの世界では、従来、一つのコンピュータ上では一つだけの OS が動くのが常識だった。しかし、VMware などのソフトウェアが実用化されるにつれ、これは常識でなくなりつつある。実際、VMware と呼ばれるソフトウェアを使うと、一つの PC 上で複数の OSWindows, Linux, FreeBSD など)を同時に走らせることができる。

Xen もそのような技術の実装であるが、VMware とは異なる点がある。それは、既存の OSWindows など)の上で他の OS を動かすのではなく、複数の OS を動かすための基盤となるプラットフォームだけを提供するということである。つまり、実際の OS は全て、Xen の上で対等に動作することになる。

ただし、Xen の制御機構(Hypervisor)にアクセスすることができるか否かで、Vmware でいうホスト OS に相当するドメイン(Domain0;Privileged Domain)と、ゲスト OS に相当するドメイン(DomainU:Un-privileged Domain)に分けられており、前者からのみ他の仮想マシンの起動・停止を制御することができる。

なお、これまでは Xen の DomainU 上で OS を動かすためには OS 側で Ring0 動作を Ring1 動作にすげかえた Xen 対応カーネルを用いる必要があったが、IntelVT(Vanderpool; VT-i/VT-x) や AMD の Pacifica を用いて Xen の仮想化レイヤを拡張(=VMX Domain)し、その上で OS を稼働させることができるようになっている。

これまでは Xen の上で Windows を動かすことはできなかったが、現在は対応 CPU を用いることで Xen(厳密には I/O 周りを QEMU のコードでラップした QEMU-VMX) 上で Windows を動かすこともできる。

Ring1 動作に対応したカーネルに対応した OSLinuxNetBSDPlan9 があり、これらの OS 対応カーネルを用いることで、CPU による支援がなくとも Xen の DomainU の上で動作する。