jailhouse
jailhouseというハイパーバイザが出てきたので、ソースコードをさらっと見てみる。
スケジューラなしの分離だけ司るハイパーバイザ。具体的には、CPUコア、メモリ、PCIバス空間の分離を行う。そこで、ゲストOSは実行されるので、効率よく稼動する。
呼び出し関係を、制御用ユーザコマンドがあり、それからsysfs経由で、Linuxの制御用ドライバを制御する。そして、制御用ドライバは、ハイパーコールでハイパーバイザ(jailhouse.bin)を操作する。
なお、ドメインは、Cellと呼ばれており、C言語の構造体として記述しそれをファイルとして取り扱い定義操作を行う。個人的に、面白いのは、設定ファイルを.cから.cellへ変換する形式であること。
なお、vmx/vtd辺りを見ると、当然のことながらx86しか対応していない。(arch_cell_create辺りを見ると一目瞭然)
結局cell毎に、vmx/vtd/pci/ioapicを設定して自由に使わせるモデルというべきなのかもしれない。
- ソースコード
- GitHub - siemens/jailhouse: Linux-based partitioning hypervisor
- 設定ファイル(Cellの元)
- inmate
- サンプルコード
- 起動関連(start16からinmate_mainまで)
- Cellの操作(コマンドライン)コード
- Linux側に組み込むドライバ
- ハイパーバイザのコード
- GitHub - siemens/jailhouse: Linux-based partitioning hypervisor
- 資料
- プレスリリース(0.1)
- 解説資料
- FOSDEM 2014
- KVM Forum 2013