Download List

프로젝트 설명

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).

System Requirements

System requirement is not defined

Released at 2012-09-29 22:03
tinyvisor 0.7 (1 files Hide)

Release Notes

TinyVisor 0.7 (r64)

以下のことを確認済みです。

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 宛にメールを送付してください。

Changelog

------------------------------------------------------------------------
r53 | yuichi_xy | 2012-08-06 14:53:16 +0900 (月, 06  8月 2012) | 1 line

vm0 以外の vm で動作している OS が、キーボードコントローラを使用して装置の再起動を試みた場合、再起動を試みた仮想 CPU を止めるようにした。 #28291 参照。
------------------------------------------------------------------------
r54 | yuichi_xy | 2012-08-06 22:04:26 +0900 (月, 06  8月 2012) | 1 line

HPET を 2 つめの VM (vm0 の次の vm) に占有させた。 #27965 参照。
------------------------------------------------------------------------
r55 | yuichi_xy | 2012-08-06 22:54:54 +0900 (月, 06  8月 2012) | 1 line

IOMMU が無効の状態で複数の VM を生成した場合は panic するようにした。 #27965 参 照。
------------------------------------------------------------------------
r56 | yuichi_xy | 2012-08-10 22:02:04 +0900 (金, 10  8月 2012) | 1 line

リアルモードの BIOS を呼び出す時や 2 個目以降のプロセッサを実行開始させる時に使 用するページテーブルと、VMM が普段使用するページテーブルを分けた。
------------------------------------------------------------------------
r57 | yuichi_xy | 2012-08-11 21:21:39 +0900 (土, 11  8月 2012) | 1 line

プロセス間で memmap 領域 (0x80000000 以降の領域) と、hphys 領域 (0x8000000000 以降の領域) を共有するようにした(r55以前は共有だったがr56で個別になってしまったの で元に戻した)。プロセスの実行中に例外が発生した場合、レジスタのダンプなどの情報 を出力してから、プロセスを殺すようにした。
------------------------------------------------------------------------
r58 | yuichi_xy | 2012-08-11 23:03:18 +0900 (土, 11  8月 2012) | 1 line

spin ロック保持中は、割り込みを無効にするようにした。
------------------------------------------------------------------------
r59 | yuichi_xy | 2012-08-11 23:33:37 +0900 (土, 11  8月 2012) | 1 line

Guest ソフトウェアのシリアル出力を、VMM 内の log バッファに保存しないようにした 。
------------------------------------------------------------------------
r60 | yuichi_xy | 2012-08-12 15:04:55 +0900 (日, 12  8月 2012) | 1 line

vm0.boot_int18 を指定しない時に 0x0007 へ jamp してしまうバグを修正。vm0.boot_parttion を vm0.boot_partition に修正。
------------------------------------------------------------------------
r63 | yuichi_xy | 2012-09-23 23:00:30 +0900 (日, 23  9月 2012) | 1 line

VT-d の Cap レジスタと Ecap レジスタをダンプするようにした。IOPT/EPT を構築する コードを整理した。
------------------------------------------------------------------------
r64 | yuichi_xy | 2012-09-23 23:27:11 +0900 (日, 23  9月 2012) | 1 line

コンパイラの対応状況にかかわらずデフォルトで 64 ビットの VMM を生成するようにし た。デフォルトでは DBGSH を無効化した。
------------------------------------------------------------------------