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).
VM0に割り当てたデバイスから、VM1やVMMに割り当てたメモリへアクセスできないようにしました。
VM1のデバイスに割り当てられたメモリリソースの上端と下端を、ACPI PCI Root Bridgeオブジェクトの_CRSメソッドで返却するようにしました。
VM1のOSが読みだし可能なRTCのレジスタを増やし、OSが正しい時刻を認識できるようにしました。
バグ修正をしました。「修正した問題」を参照してください。
以下のことを確認済です。
1. USB メモリに TinyVisor をインストール可能なこと。 2. Linux のファイルシステムに TinyVisor をインストール可能なこと。 3. vm0 のみで OS を起動可能なこと。 15. IvyBridge マシンにおいて、次の組み合わせで OS を起動可能なこと。 vm0: Debian GNU/Linux 7.0 (amd64版) vm1: FreeBSD 9.2-RELEASE (amd64版) この時、vm1のOSから以下のI/Oデバイスを使用可能なこと。 SATA: ASMedia ASM1062 NIC: Realtek RTL8111E USB: Intel 7 Series/C210 Series ChipsetのxHCI 16. IvyBridge マシンにおいて次の組み合わせで OS を起動可能なこと。 vm0: FreeBSD 9.2-RELEASE (amd64版) vm1: Debian GNU/Linux 7.0 (amd64版) この時、vm1のOSから以下のI/Oデバイスを使用可能なこと。 SATA: ASMedia ASM1062 NIC: Realtek RTL8111E USB: Intel 7 Series/C210 Series ChipsetのxHCI VGA: GeForce 8400 GS 11. IvyBridge マシンにおいて次の組み合わせで OS を起動可能なこと。 vm0: Debian GNU/Linux 7.0 (amd64版) vm1: Debian GNU/Linux 7.0 (amd64版) 12. IvyBridge マシンにおいて vm1 で動作している Debian GNU/Linux 7.0 (amd64版) を再起動可能なこと。
#32428 2013-11-10 21:20 VM1でFreeBSDを起動すると、RTC関連のエラーメッセージが出力される
#32407 2013-11-05 22:06 VM1でLinuxを起動すると、RTC関連のエラーメッセージが出力される
#32324 2013-10-24 23:24 vm1.cpu=4,6 shell=4を指定してTinyVisorを起動するとpage fault
#32301 2013-10-15 22:54 VMMの起動開始メッセージの出力直後にPCがリセットされる
#32404 VM1にCPUを1個しか割り当てずにVM1でFreeBSDを起動しようとすると、NICがリンクアップしない
#31925 Qemu上でTinyvisorを起動したところ、Linuxが起動しない
#31392 vm1のFreeBSDを再起動すると、AHCIの初期化に失敗する
#30457 複数のCPUを生成したQEMU上でTinyVisorを動作させると、Guest Linuxがsoft lockupのエラー
------------------------------------------------------------------------ r113 | yuichi_xy | 2013-10-20 08:17:37 +0900 (日, 20 10月 2013) | 1 line currentcpu が初期化されていない状態では、割り込みが有効化されないようにした。 #32301 参照 ------------------------------------------------------------------------ r114 | yuichi_xy | 2013-10-28 23:23:23 +0900 (月, 28 10月 2013) | 1 line BIOS: VM1 のデバイスに割り当てられたメモリリソースの上端と下端を _CRS で返却するようにした ------------------------------------------------------------------------ r115 | yuichi_xy | 2013-10-28 23:30:24 +0900 (月, 28 10月 2013) | 1 line 拡張ROMにリソースが割り当てられていた場合は、VMMが割り当て直さないようにした ------------------------------------------------------------------------ r116 | yuichi_xy | 2013-11-03 13:01:50 +0900 (日, 03 11月 2013) | 1 line VM0 に割り当てたデバイスから、 VM1 や VMM に割り当てたメモリへアクセスできないようにした ------------------------------------------------------------------------ r117 | yuichi_xy | 2013-11-03 17:12:38 +0900 (日, 03 11月 2013) | 1 line vm1.cpu=で指定した最初のCPUと、shellで指定したCPUが一致する場合、VM1の起動を抑止してshellを起動するようにした。#32324 参照 ------------------------------------------------------------------------ r118 | yuichi_xy | 2013-11-05 00:06:53 +0900 (火, 05 11月 2013) | 1 line vmパラメータでvm0を指定しない場合、vm_get_id が返却する値が-1になる不具合を修正 ------------------------------------------------------------------------ r119 | yuichi_xy | 2013-11-05 23:08:38 +0900 (火, 05 11月 2013) | 1 line RTC の Register B の Data Mode フィールドと Hour Format フィールドを VM1 から読 み出せるようにした。 #32407 参照 ------------------------------------------------------------------------ r122 | yuichi_xy | 2013-11-10 23:05:10 +0900 (日, 10 11月 2013) | 1 line FreeBSD が RTC の Update In Progress と Valid RAM and Time Bit を参照しているた め、パススルーするようにした。 #32428 参照 ------------------------------------------------------------------------ r123 | yuichi_xy | 2013-11-18 22:21:44 +0900 (月, 18 11月 2013) | 1 line BIOS: MTTR の初期化を無効化 ------------------------------------------------------------------------