パソコン(PC)に内臓されているCPUとメモリ、I/Oを分割して各VMに割り当て、OSにそれらを直接制御させることで、ホストOSなしで各OSが独立して動作可能なHypervisor(VMM)を開発するプロジェクトです。
最初の目標は、ひとつのPCでふたつのOSを動作させること、次の目標は各OSを個別に再起動可能にすることでしたが、2014年1月にこれらの目標を達成し、1.0をリリースしました。
OSは、Linux、Windows、FreeBSDが動きます。
VMMはBitVisor(BSDライセンス)をベースとし、AMLインタープリタや標準ライブラリの一部の関数をNetBSDやFreeBSDから移植しています。 Guest BIOSはSeaBIOS(GPL)をベースとします。
なし
Fedora 20、Debian 7.0、FreeBSD 10.0、Windows 8.1(VM0のみ)が起動、再起動可能なことなどを確認しています。 詳細は以下を参照してください。
#34742 UEFI環境において、VM0でWindows 8.1を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる
#34365 VM1で起動したFreeBSDを再起動すると、NICで通信ができない
#33655 VM0でWindows 8.1を再起動すると、ストールすることがある
#32901 VM1でFedora 20を再起動すると、ログイン画面が表示されない
#32660 VM0で起動したFreeBSDを再起動すると、NICで通信ができない
#32404 VM1にCPUを1個しか割り当てずにVM1でFreeBSDを起動しようとすると、NICがリンクアップしない
------------------------------------------------------------------------ r318 | yuichi_xy | 2015-02-09 23:56:24 +0900 (月, 09 2月 2015) | 1 line UEFI なしのブランチを作成 ------------------------------------------------------------------------ r319 | yuichi_xy | 2015-02-11 21:59:02 +0900 (水, 11 2月 2015) | 1 line trunk の r304-306,308-309,311-313,315-316 をマージした。 ------------------------------------------------------------------------ r316 | yuichi_xy | 2015-01-25 23:47:26 +0900 (日, 25 1月 2015) | 1 line マージ経路: r319 r315 で埋め込んだ、 gmm_trans->mem_map_count の値が 1 小さくなる不具合を修正した ------------------------------------------------------------------------ r315 | yuichi_xy | 2015-01-18 23:02:33 +0900 (日, 18 1月 2015) | 1 line マージ経路: r319 VM0 以外の VM 向けに 4GB 直下のメモリホールを生成する処理が、gmm_assign.c と gmm_trans.c に分散していたので、 gmm_trans.c に集約した。 ------------------------------------------------------------------------ r313 | yuichi_xy | 2015-01-17 14:00:50 +0900 (土, 17 1月 2015) | 1 line マージ経路: r319 VMCS 用のメモリの確保時に、VMCS をゼロクリアするようにした。make clean 時、build_date.c と vmm/build_date.o が存在しないと、処理が中断する不具合を修正した。 ------------------------------------------------------------------------ r312 | yuichi_xy | 2015-01-11 22:11:04 +0900 (日, 11 1月 2015) | 1 line マージ経路: r319 r311 で fw_cfg のエントリを追加したのに、最大値を増やし忘れたので増やした。 ------------------------------------------------------------------------ r311 | yuichi_xy | 2015-01-11 17:33:12 +0900 (日, 11 1月 2015) | 4 lines マージ経路: r319 fw_cfg で VM に割り当てられた論理プロセッサの数を取得できるようにした。 apic_available 関数では MSR_IA32_APIC_BASE_MSR_APIC_GLOBAL_ENABLE_BIT を参照しないようにした。 UEFI 環境で shell=0 を指定して起動した場合は、VMM が BSP 以外の論理プロセッサを開始させるようにした。 BSP の APIC ID を読み取る処理がなかったため追加した。 ------------------------------------------------------------------------ r309 | yuichi_xy | 2015-01-05 22:02:42 +0900 (月, 05 1月 2015) | 1 line マージ経路: r319 svn:ignore を修正 ------------------------------------------------------------------------ r308 | yuichi_xy | 2015-01-05 19:50:34 +0900 (月, 05 1月 2015) | 1 line マージ経路: r319 r306 で vmm_elf.patch を登録し忘れていたので登録した。 ------------------------------------------------------------------------ r306 | yuichi_xy | 2015-01-04 23:15:09 +0900 (日, 04 1月 2015) | 1 line マージ経路: r319 vmm ディレクトリ配下で make を実行するだけで vmm.elf という名前でバイナリが生成されるようにした。vmm.elf や bios.bin を一番上のディレクトリにコピーしないようにした。 ------------------------------------------------------------------------ r305 | yuichi_xy | 2015-01-04 22:55:01 +0900 (日, 04 1月 2015) | 1 line マージ経路: r319 BIOS の patch の説明を追加した。 ------------------------------------------------------------------------ r304 | yuichi_xy | 2015-01-04 22:54:08 +0900 (日, 04 1月 2015) | 1 line マージ経路: r319 _S1 から _S3 を無効化するようにした(_S4 を無効化しないようにした)。 ------------------------------------------------------------------------ r321 | yuichi_xy | 2015-02-11 22:43:35 +0900 (水, 11 2月 2015) | 1 line trunk の r320 をマージした。 ------------------------------------------------------------------------ r320 | yuichi_xy | 2015-02-11 22:31:47 +0900 (水, 11 2月 2015) | 1 line マージ経路: r321 起動メッセージを更新した。 ------------------------------------------------------------------------ r323 | yuichi_xy | 2015-02-11 23:53:43 +0900 (水, 11 2月 2015) | 1 line trunk の r322 をマージした。 ------------------------------------------------------------------------ r322 | yuichi_xy | 2015-02-11 23:52:11 +0900 (水, 11 2月 2015) | 1 line マージ経路: r323 copy.sh がコピーする vmm.elf と bios.bin のパスを修正した。 ------------------------------------------------------------------------