パソコン(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)をベースとします。
TinyVisor 0.5 (r42) 以下のことを確認済みです。 1. 次の場所にTinyVisorをインストールし、vm0とvm1それぞれで Debian GNU/Linux 6.0(amd64版)を起動可能なこと。 - USBメモリ - Linuxのファイルシステム 2. vm1に以下のI/Oデバイスを割り当て動作すること。 SATA: 玄人志向 SATA312-PCIe (Marvell 88SE9128) NIC: Realtek RTL811DH USB: 玄人志向 USB3.0N4-PCIe (ルネサス uPD720200) VGA: GeForce 8400 GS 3. vm0のみでも起動可能なこと。 (VMMのオプション無し) お問い合わせは、 tinyvisor-devel@lists.sourceforge.jp 宛にメールを送付してください。
------------------------------------------------------------------------ r32 | yuichi_xy | 2012-05-23 23:36:37 +0900 (水, 23 5月 2012) | 1 line Guest ソフトウェアから INIT 割り込みを送信可能にした。 ------------------------------------------------------------------------ r33 | yuichi_xy | 2012-05-26 17:21:39 +0900 (土, 26 5月 2012) | 1 line Guest BIOS を改造し、APIC IDを調べてACPIテーブルやMPテーブルを作成するようにした。 ------------------------------------------------------------------------ r34 | yuichi_xy | 2012-06-03 13:41:16 +0900 (日, 03 6月 2012) | 1 line lage page の場合 pmap_read が level 2 table を正しく読めないバグを修正。 ------------------------------------------------------------------------ r35 | yuichi_xy | 2012-06-03 14:43:02 +0900 (日, 03 6月 2012) | 1 line Shadow paging のコードを整理した。 ------------------------------------------------------------------------ r36 | yuichi_xy | 2012-06-03 20:19:17 +0900 (日, 03 6月 2012) | 1 line TinyVisor 固有の BIOS の設定が一目でわかるように CONFIG_XXX で切り替えられるようにした ------------------------------------------------------------------------ r37 | yuichi_xy | 2012-06-03 23:26:58 +0900 (日, 03 6月 2012) | 1 line SVM: ゲストソフトウェアが Real Mode の場合、INTx 命令で VMEXIT を発生させて、VMM が INTx 命令をエミュレートするようにした。#28386 参照。 ------------------------------------------------------------------------ r38 | yuichi_xy | 2012-06-05 21:47:23 +0900 (火, 05 6月 2012) | 1 line シリアルエミュレータから I/O APIC エミュレータを経由してベクタ 0 の割り込みを vm0 に Inject してしまうバグを修正。 #28637 参照。 ------------------------------------------------------------------------ r39 | yuichi_xy | 2012-06-09 11:47:54 +0900 (土, 09 6月 2012) | 1 line make config で TTY_SERIAL を無効にした場合に VMM のシリアルドライバとシリアルエミュレータをビルドしないようにした。 ------------------------------------------------------------------------ r40 | yuichi_xy | 2012-06-09 17:26:54 +0900 (土, 09 6月 2012) | 1 line SVM: Shadow Paging の PTE を無効化した時のみ TLB をフラッシュするようにした。 ------------------------------------------------------------------------ r41 | yuichi_xy | 2012-06-09 22:17:20 +0900 (土, 09 6月 2012) | 1 line BitVisor 1.2 のブートローダを取り込んでブートローダを高速化した。install_to_usb.sh を更新して、引数で bootloader や vmm.elf, bios.bin を指定不要にした。 ------------------------------------------------------------------------ r42 | yuichi_xy | 2012-06-11 22:17:10 +0900 (月, 11 6月 2012) | 1 line Device() ブロックに If() 演算子が存在する場合の workaround を BitVisor 1.2 からバックポート。 ------------------------------------------------------------------------