ダウンロードリスト

プロジェクト概要

パソコン(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)をベースとします。

システム要件

システム要件が設定されていません

リリース時刻: 2012-09-29 22:03
tinyvisor 0.7 (1 個のファイル 非表示)

リリースノート

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

変更履歴

------------------------------------------------------------------------
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 を無効化した。
------------------------------------------------------------------------