Download List

Projeto Descrição

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

Liberado: 2014-12-31 17:22
tinyvisor 1.4 (1 files Esconder)

Release Notes

TinyVisor 1.4 (r302)


新機能

VM0でUEFI環境のOSを起動可能にしました。Windows 8.1とFedora 20が起動することを確認しました。VM1はBIOS環境のOSのみ起動可能です。


その他の変更

  • IOAPIC に論理ディスティネーションモードが指定された場合の、割り込みのエミュレーションに対応しました。これによって、シリアルコンソールを有効にしたFedora 20をVM0で起動可能になりました。
  • VM0 の OS が S4 への遷移を要求した場合も、シャットダウン処理(他の VM の待ち合わせと電源 OFF)を実行するようにしました。
  • xHCI を VM0 に割り当てた場合は、USB2 port を xHCI へ接続する設定を行わないようにしました。


修正した問題

  • CONFIG_VTD_TRANS を 0 にしても、VT-d が無効にならない不具合を修正しました。
  • 未初期化の変数を参照するバグを修正しました。


動作確認内容

Fedora 20、Debian 7.0、FreeBSD 10.0、Windows 8.1(VM0のみ)が起動、再起動可能なことなどを確認しています。 詳細は以下を参照してください。

https://sourceforge.jp/projects/tinyvisor/wiki/%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E6%99%82%E3%81%AE%E8%A9%95%E4%BE%A1%E9%A0%85%E7%9B%AE


既知の問題

#34742 UEFI環境において、VM0でWindows 8.1を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる

#34365 VM1で起動したFreeBSDを再起動すると、NICで通信ができない

#33655 VM0でWindows 8.1を再起動すると、ストールすることがある

#32901 VM1でFedora 20を再起動すると、ログイン画面が表示されない

#32660 VM0で起動したFreeBSDを再起動すると、NICで通信ができない

#32404 VM1にCPUを1個しか割り当てずにVM1でFreeBSDを起動しようとすると、NICがリンクアップしない

Changelog

------------------------------------------------------------------------
r287 | yuichi_xy | 2014-09-27 22:34:53 +0900 (土, 27  9月 2014) | 1 line

IOAPIC に論理ディスティネーションモードが指定された場合の、割り込みのエミュレーションに対応した。宛先は、割り込みをトリガする処理が実行された論理プロセッサとした。 #32787 参照
------------------------------------------------------------------------
r288 | yuichi_xy | 2014-10-08 00:15:13 +0900 (水, 08 10月 2014) | 1 line

UEFI 用のブートローダを自動的にビルドできるようにした。install_to_usb.sh で UEFI 用のブートローダと VMM を USB メモリにコピーできるようにした。 #34391 参照
------------------------------------------------------------------------
r289 | yuichi_xy | 2014-10-12 22:38:32 +0900 (日, 12 10月 2014) | 1 line

未初期化の変数を参照するバグを修正した。
------------------------------------------------------------------------
r290 | yuichi_xy | 2014-10-13 12:36:17 +0900 (月, 13 10月 2014) | 1 line

UEFI で起動時に、VMM 内のメモリマップを初期化するようにした。UEFI で 起動時に、 VM0 の起動コードを格納するバッファを予め確保するようにした。BIOS 起動時しか get_tmpbuf を使えないようなので、mm.c から callrealmode.c へ移動した。 #34391 参照
------------------------------------------------------------------------
r291 | yuichi_xy | 2014-10-13 17:17:06 +0900 (月, 13 10月 2014) | 1 line

OS が IOMMU へアクセスできないようにした。 #34391 参照
------------------------------------------------------------------------
r292 | yuichi_xy | 2014-10-13 22:29:01 +0900 (月, 13 10月 2014) | 1 line

xHCI を VM0 に割り当てた場合は、USB2 port を xHCI へ接続する設定を行わないようにした。
------------------------------------------------------------------------
r293 | yuichi_xy | 2014-12-06 23:50:34 +0900 (土, 06 12月 2014) | 1 line

UEFI で VMM を起動する場合、vmm.elf と同じディレクトリに param.txt ファイルを置くことで、 VMM のパラメータを指定可能にした。
------------------------------------------------------------------------
r294 | yuichi_xy | 2014-12-07 13:48:29 +0900 (日, 07 12月 2014) | 1 line

UEFI 環境で、CPU0 以外の CPU の周波数が異常に小さく認識されてしまうバグを修正した。
------------------------------------------------------------------------
r295 | yuichi_xy | 2014-12-07 23:43:55 +0900 (日, 07 12月 2014) | 1 line

param.txt のサイズが格納される変数を間違えていたため修正した。(Size -> FileSize)
------------------------------------------------------------------------
r296 | yuichi_xy | 2014-12-07 23:51:07 +0900 (日, 07 12月 2014) | 1 line

UEFI 環境で、 VM0 以外の VM に割り当てたメモリを UnusableMemory として予約するようにした。UEFI 環境で、 VMM のパラメータが保存された領域をアンマップするときのサイズが間違えていたので修正した。UEFI 環境で、 CPU0 以外の CPU の周波数が異常に小さく表示されてしまうバグを修正した。VMM のパラメータに改行文字が含まれていた場合、空白文字と同じように扱うようにした。
------------------------------------------------------------------------
r297 | yuichi_xy | 2014-12-14 21:49:19 +0900 (日, 14 12月 2014) | 1 line

UEFI 環境で、BSP 以外の論理プロセッサにおいて、 IO ポートのフックの設定が IO ビットマップに反映されない問題を修正した。 #34391 参照
------------------------------------------------------------------------
r298 | yuichi_xy | 2014-12-14 23:40:09 +0900 (日, 14 12月 2014) | 1 line

UEFI 環境でゲスト BIOS をロード可能にしました。
------------------------------------------------------------------------
r299 | yuichi_xy | 2014-12-21 00:10:18 +0900 (日, 21 12月 2014) | 1 line

loadvmm のデバッグメッセージを無効化
------------------------------------------------------------------------
r300 | yuichi_xy | 2014-12-21 23:10:10 +0900 (日, 21 12月 2014) | 1 line

OS が CPUID 命令(EAX=1)で CPU が対応している機能一覧を取得しようとした場合に、 VMM が x2APIC を隠すようにした。CONFIG_VTD_TRANS を 0 にしても、VT-d が無効にならない不具合を修正した。
------------------------------------------------------------------------
r301 | yuichi_xy | 2014-12-24 21:38:40 +0900 (水, 24 12月 2014) | 1 line

UEFI 環境で、VM0 の OS がリセットを要求した場合は、他の VM がシャットダウンすることを待ち合わせてから、マシン全体を再起動するようにした。
------------------------------------------------------------------------
r302 | yuichi_xy | 2014-12-30 17:30:48 +0900 (火, 30 12月 2014) | 1 line

VM0 の OS が S4 への遷移を要求した場合も、シャットダウン処理(他の VM の待ち合わせと電源 OFF)を実行するようにした。
------------------------------------------------------------------------