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: 2015-09-27 22:55
tinyvisor 1.6 (1 files Esconder)

Release Notes

TinyVisor 1.6 (r347)


新機能

  • Fedora 22, Debian 8, FreeBSD 10.2, Windows 10(VM0のみ) を起動・再起動可能にしました。


その他の変更

  • OSの再起動時、PCIデバイスのレジスタを再初期化していますが、その対象を絞りました。まず、対象とするPCIデバイスをSecondary Bus Reset の影響を受けるデバイスと、D3 hot へ遷移させたデバイスに絞りました。また、対象とするレジスタも、標準的なレジスタに絞りました。これによって、再起動後、PCIデバイスが正常動作するようになりました。
  • BitVisorの開発ツリーから改造内容をバックポートし、RDTSCP 命令を使えるようにしました。これによって、 Windows 10の起動が可能になりました。
  • BitVisorの開発ツリーから改造内容をバックポートし、GNU Make 4.0でビルド可能にしました。
  • マルチファンクションデバイスのファンクション0を他のVMに割り当てた場合に、OSに見せるダミーのファンクション0のベンダIDを変更しました。これによって、Fedora 21以降が起動可能になりました。


修正した問題

次の問題を修正しました。

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


動作確認内容

Fedora 22、Debian 8、FreeBSD 10.2、Windows 10(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


既知の問題

次の問題があります。

  • #33570 VM1でDebian 8を再起動すると、ログイン画面が表示されない(回避策あり)
  • #33357 VM1でFedora 22を再起動すると、ログイン画面が表示されない
  • #34742 UEFI環境において、VM0でWindows 8.1,10を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる
  • #33655 VM0でWindows 8.1を再起動すると、ストールすることがある
  • #32404 VM1にCPUを1個しか割り当てずにVM1でFreeBSDを起動しようとすると、NICがリンクアップしない

Changelog

------------------------------------------------------------------------
r347 | yuichi_xy | 2015-09-26 21:44:33 +0900 (2015年09月26日 (土)) | 2 lines

VM1 の再起動時に、割り当ている xHCI の再設定を行うようにした。
#35569 参照
------------------------------------------------------------------------
r346 | yuichi_xy | 2015-09-23 22:48:28 +0900 (2015年09月23日 (水)) | 5 lines

VMの再起動時に行うレジスタの再初期化を改造し、対象とするデバイスをSecondary Bus Reset の影響を受けるデバイスと、D3 hot へ遷移させたデバイスに絞った。また、対象とするレジスタも、標準的な次のレジスタに絞った。
  * PCI ヘッダ
  * PM Capability Structure
  * PCIe Capability Structure
#35557, #34365 参照
------------------------------------------------------------------------
r345 | yuichi_xy | 2015-09-21 23:07:53 +0900 (2015年09月21日 (月)) | 1 line

r344 の実装を変更して、USB2 port を xHCI へ接続する設定値を、VMM の起動時に保存しておき、VM1 の再起動時にリストアする方式にした。VM1 の再起動時に、一瞬 EHCI へ接続されてしまうと困るので。 #35527 参照
------------------------------------------------------------------------
r344 | yuichi_xy | 2015-09-21 21:58:00 +0900 (2015年09月21日 (月)) | 1 line

VM1 の再起動後、USB2 port を xHCI へ接続するよう xHCI を再設定するようにした。 #35527 参照
------------------------------------------------------------------------
r343 | yuichi_xy | 2015-09-21 20:13:44 +0900 (2015年09月21日 (月)) | 1 line

VM1 の再起動時におこなう、PCI デバイスのコンフィグレーションレジスタを再設定処理において、コマンドレジスタの再設定を最後に行うようにした。
------------------------------------------------------------------------
r342 | yuichi_xy | 2015-09-12 22:17:33 +0900 (2015年09月12日 (土)) | 1 line

マクロを一つ変更するだけで、VMM がエミュレートするシリアルポートを変更できるようにした。
------------------------------------------------------------------------
r341 | yuichi_xy | 2015-09-12 22:09:53 +0900 (2015年09月12日 (土)) | 1 line

r338 で登録した exint_pass.patch に、 exint_8259a.o を vmm/core/Makefile に追加する差分が入っていなかったので追加した。
------------------------------------------------------------------------
r340 | yuichi_xy | 2015-09-12 21:56:43 +0900 (2015年09月12日 (土)) | 1 line

make all と make clean の対象から uefi を除外した。
------------------------------------------------------------------------
r339 | yuichi_xy | 2015-09-12 21:43:30 +0900 (2015年09月12日 (土)) | 1 line

RDTSCP 命令を有効にする。 BitVisor の開発ツリーからのバックポート。 #35522 参照
------------------------------------------------------------------------
r338 | yuichi_xy | 2015-09-08 23:38:31 +0900 (2015年09月08日 (火)) | 1 line

process ディレクトリ配下のソースファイルがコンパイルされない問題を解決するため BitVisor の開発ツリーからら修正内容をバックポートした。
------------------------------------------------------------------------
r337 | yuichi_xy | 2015-09-06 22:16:16 +0900 (2015年09月06日 (日)) | 1 line

割り込みのインターセプトを make config で無効化できるようにした。
------------------------------------------------------------------------
r336 | yuichi_xy | 2015-09-06 11:31:33 +0900 (2015年09月06日 (日)) | 1 line

callrealmode_call_vcpu で CS_SEL/CS_BASE を 0 に設定するようにした。 #35482 参照
------------------------------------------------------------------------
r335 | yuichi_xy | 2015-09-05 23:36:49 +0900 (2015年09月05日 (土)) | 1 line

マクロを1つ変更するだけで、VMM のメッセージを出力するシリアルポートを変更できるようにした。
------------------------------------------------------------------------
r334 | yuichi_xy | 2015-09-05 23:05:15 +0900 (2015年09月05日 (土)) | 1 line

パッチにコメントを追加した。
------------------------------------------------------------------------
r329 | yuichi_xy | 2015-05-04 11:18:09 +0900 (2015年05月04日 (月)) | 1 line

debian 8.0 でコンパイルすると、定義が重複というエラーになる不具合を修正した。
------------------------------------------------------------------------
r326 | yuichi_xy | 2015-02-22 22:54:46 +0900 (2015年02月22日 (日)) | 1 line

マルチファンクションデバイスのファンクション0を他のVMに割り当てた場合に、OSに見せるダミーのファンクション0のベンダIDを変更した。 #34907 参照
------------------------------------------------------------------------
r325 | yuichi_xy | 2015-02-22 22:18:05 +0900 (2015年02月22日 (日)) | 1 line

make clean で map ファイルを削除するようにした。
------------------------------------------------------------------------
r317 | yuichi_xy | 2015-02-09 23:25:32 +0900 (2015年02月09日 (月)) | 1 line

ブートローダがロードした GBIOS のサイズが 128 KB を超えた場合、GBIOS が UEFI と判断し、次の処理を行う。
------------------------------------------------------------------------
r314 | yuichi_xy | 2015-01-17 14:02:07 +0900 (2015年01月17日 (土)) | 1 line

make clean で uefi 配下のバイナリファイルも削除するようにした。
------------------------------------------------------------------------
r310 | yuichi_xy | 2015-01-05 23:59:07 +0900 (2015年01月05日 (月)) | 1 line

UEFI をビルドするようにした。
------------------------------------------------------------------------