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 の上で動作する。