TinyVisor is a hypervisor(VMM) which assigns cpus, memory and I/O in personal computer(PC) to VMs, and allows OSs controlling them. OSs work without host OS.
The first milestone is that two OSs work in one PC. The second milestone is that OSs reboot individually. The milestones have been achived in Jan. 2014, and 1.0 is released.
Linux, Windows, and FreeBSD work.
VMM is based on BitVIsor(BSD license). AML interpriter and some functions of standard library are ported from NetBSD and FreeBSD.
Guest BIOS is based on SeaBIOS(BSD license).
TinyVisor 0.6 (r52) 以下のことを確認済みです。 1. USB メモリに TinyVisor をインストール可能なこと。 2. Linux のファイルシステムに TinyVisor をインストール可能なこと。 3. vm0 のみで OS を起動可能なこと。 4. 次の組み合わせで OS を起動可能なこと。 vm0: Debian GNU/Linux 6.0 (amd64版) vm1: FreeBSD 9.0-RELEASE (amd64版) 5. 次の組み合わせで OS を起動可能なこと。 vm0: FreeBSD 9.0-RELEASE (amd64版) vm1: Debian GNU/Linux 6.0 (amd64版) 6. 次の組み合わせで OS を起動可能なこと。 vm0: Debian GNU/Linux 6.0 (amd64版) vm1: Debian GNU/Linux 6.0 (amd64版) 7. vm1 に以下のI/Oデバイスを割り当て動作すること。 vm1 のOS は Linux とする。 SATA: 玄人志向 SATA312-PCIe (Marvell 88SE9128) NIC: Realtek RTL811DH USB: 玄人志向 USB3.0N4-PCIe (ルネサス uPD720200) VGA: GeForce 8400 GS 8. vm1 に以下のI/Oデバイスを割り当て動作すること。 vm1 のOS は FreeBSD とする。 SATA: 玄人志向 SATA312-PCIe (Marvell 88SE9128) NIC: Realtek RTL811DH お問い合わせは、 tinyvisor-devel@lists.sourceforge.jp 宛にメールを送付してください。
------------------------------------------------------------------------ r43 | yuichi_xy | 2012-06-24 20:46:32 +0900 (日, 24 6月 2012) | 1 line VMCS_IDT_VECTORING_INFO が有効でも、イベントを再度 inject しないようにした。 #28838 参照 ------------------------------------------------------------------------ r44 | yuichi_xy | 2012-06-24 23:56:15 +0900 (日, 24 6月 2012) | 1 line MADT を書き換えて、vm0 に割り当てた論理プロセッサ以外を vm0 の OS から隠すようにした。 #28838 参照。 ------------------------------------------------------------------------ r45 | yuichi_xy | 2012-06-30 20:07:28 +0900 (土, 30 6月 2012) | 1 line r42 の変更内容を元に戻し、VMCS_IDT_VECTORING_INFO が有効な場合は、イベントを再度 inject するようにした。 #28881 参照 ------------------------------------------------------------------------ r46 | yuichi_xy | 2012-06-30 23:31:01 +0900 (土, 30 6月 2012) | 1 line Guest ソフトウェアが、vm に割り当てられた他の全ての論理プロセッサに IPI を送信する時に、ディスティネーション簡略表記を使用可能にした。 #28840 参照 ------------------------------------------------------------------------ r47 | yuichi_xy | 2012-07-01 00:17:58 +0900 (日, 01 7月 2012) | 1 line PIC の IRQ 0 がマスク解除されている間、IRQ 0 (タイマ割り込み) のエミュレーションを行うようにした。 #28885 参照 ------------------------------------------------------------------------ r48 | yuichi_xy | 2012-07-01 22:01:07 +0900 (日, 01 7月 2012) | 1 line Int 15/AH=86h BIOS CALL が指定時間待つときに、 RTC を使用せずに TSC を使用するようにした。 ------------------------------------------------------------------------ r49 | yuichi_xy | 2012-07-08 23:25:25 +0900 (日, 08 7月 2012) | 1 line レガシー割り込みを無効にした状態で HPET を使用可能にした。 #28893 参照。 ------------------------------------------------------------------------ r50 | yuichi_xy | 2012-07-15 23:02:51 +0900 (日, 15 7月 2012) | 1 line シリアルエミュレータを改造し、INTRSTAT レジスタが読み込まれたら、 TBR Empty 割り込み状態をクリアするようにした。 ------------------------------------------------------------------------ r51 | yuichi_xy | 2012-07-16 14:58:07 +0900 (月, 16 7月 2012) | 1 line Makefile の不要な export と不要なマクロを削除。 ------------------------------------------------------------------------ r52 | yuichi_xy | 2012-07-16 15:50:38 +0900 (月, 16 7月 2012) | 1 line Free BSD の GCC (4.2.1 20070831 patched) でコンパイルした際の警告を修正した。た だし、invept をコンパイルできないことや、ld が「unrecognised emulation mode」と いうエラーを発生させてしまうため、 Free BSD 上ではコンパイル可能になっていない。 ------------------------------------------------------------------------