ダウンロードリスト

プロジェクト概要

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

システム要件

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

リリース時刻: 2013-08-25 23:39
tinyvisor 0.9 (1 個のファイル 非表示)

リリースノート

TinyVisor 0.9 (r107)


新機能

IvyBridge 世代の PC で TinyVisor および OS を起動可能にしました。

vm1 の再起動時、vm1 に割り当てられたデバイスをリセットするようにしました。


その他の変更

gcc (4.7.2) でコンパイル可能にしました。

Guest BIOS のベースを SeaBIOS 1.7.3 にアップデートしました。

その他、バグ修正。


既知の問題

#31926 vm0 と vm1 を作成した時に vm1 側で AHCI タイムアウトが発生し OS が起動しない

#31925 Qemu上でTinyvisorを起動したところ、Linuxが起動しない

#31923 vm1 の Linux を再起動しようとしたところ、General Protection Fault

#31858 4GB以上のメモリをvm1に割り当てると、Linux が起動中にストールする

#31857 4GB境界を跨ぐメモリをvm1に割り当てると、vm1の再起動時にAHCIがタイムアウト する

#31392 vm1のFreeBSDを再起動すると、AHCIの初期化に失敗する

#30457 複数のCPUを生成したQEMU上でTinyVisorを動作させると、Guest Linuxがsoft lockupのエラー

#29706 vm0 を GRUB で止めている状態で、 vm1 を起動しシャットダウンすると、0x0F の割り込みが発生し VMM がパニック

#29240 VMM起動後のGRUB画面で、Ctrl+ALT+DELを入力すると、VMMがpanic

#29191 USBメモリにVMMとGRUBを書き込んでみたところ、panic

#28765 boot_drive=81でOSの起動したところ、General protection faultが発生し panic

変更履歴

------------------------------------------------------------------------
r93 | yuichi_xy | 2013-07-04 23:45:34 +0900 (木, 04  7月 2013) | 1 line

OS が xsetbv 命令を実行して VMexit が発生した場合、ハイパーバイザが代わりに実行 するようにした。OS が CR4 の OSXSAVE ビットを設定した場合、Host の CR4 の OSXSAVE ビットも設定するようにした。VMM を移動するために move_vmm_area64 を呼ぶと原因 不明のリセットされるので、memcpy に変更。 #31580 参照
------------------------------------------------------------------------
r94 | yuichi_xy | 2013-07-06 08:50:59 +0900 (土, 06  7月 2013) | 1 line

不明な DMAR Structure が存在するときに DMAR の clear をし忘れるバグを修正。
------------------------------------------------------------------------
r95 | yuichi_xy | 2013-07-06 08:52:42 +0900 (土, 06  7月 2013) | 1 line

ACPI APIC structure の local x2APIC を無効化
------------------------------------------------------------------------
r96 | yuichi_xy | 2013-07-06 23:34:53 +0900 (土, 06  7月 2013) | 1 line

Guest BIOS コンパイル時の warning を修正。
------------------------------------------------------------------------
r97 | yuichi_xy | 2013-07-07 21:39:39 +0900 (日, 07  7月 2013) | 1 line

gcc (4.7.2) の warning を修正
------------------------------------------------------------------------
r98 | yuichi_xy | 2013-07-07 22:34:29 +0900 (日, 07  7月 2013) | 1 line

struct pci_device のポインタを引数に、configuration access 可能にした
------------------------------------------------------------------------
r99 | yuichi_xy | 2013-07-10 23:03:15 +0900 (水, 10  7月 2013) | 1 line

vm1 の再起動時、vm1 に割り当てられたデバイスに対し Secondary Bus Reset を発行す るようにした。
------------------------------------------------------------------------
r100 | yuichi_xy | 2013-07-14 23:17:41 +0900 (日, 14  7月 2013) | 1 line

BIOS の自動で生成される VERSION の値を変更
------------------------------------------------------------------------
r101 | yuichi_xy | 2013-07-21 13:25:39 +0900 (日, 21  7月 2013) | 1 line

SeaBIOS 1.7.3 を登録
------------------------------------------------------------------------
r102 | yuichi_xy | 2013-07-21 14:08:28 +0900 (日, 21  7月 2013) | 1 line

ファイルの登録漏れと削除漏れを修正
------------------------------------------------------------------------
r103 | yuichi_xy | 2013-07-28 00:25:32 +0900 (日, 28  7月 2013) | 1 line

r3 から r100 の間に BIOS に対して行った変更をマージ
------------------------------------------------------------------------
r104 | yuichi_xy | 2013-07-28 16:20:28 +0900 (日, 28  7月 2013) | 1 line

r103 で入ってしまった余計な変更を元に戻した
------------------------------------------------------------------------
r105 | yuichi_xy | 2013-08-09 10:15:20 +0900 (金, 09  8月 2013) | 1 line

IO page table をダンプするコードを修正。
------------------------------------------------------------------------
r106 | yuichi_xy | 2013-08-25 15:12:31 +0900 (日, 25  8月 2013) | 1 line

VMM 起動時、APIC を無効化しないようにした。 #31863 参照
------------------------------------------------------------------------
r107 | yuichi_xy | 2013-08-25 20:12:58 +0900 (日, 25  8月 2013) | 1 line

OS 上で General Protection Fault が発生しても VMM が panic しないようにした。
------------------------------------------------------------------------