ダウンロードリスト

プロジェクト概要

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

システム要件

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

リリース時刻: 2015-02-12 00:09
tinyvisor 1.5 (1 個のファイル 非表示)

リリースノート

TinyVisor 1.5 (without-uefi branch r323)


新機能

なし


その他の変更

  • UEFI 環境でも、 shell=0 を指定して起動した場合は、VMM が BSP 以外の論理プロセッサを開始させるようにしました。
  • _S1 から _S3 を無効化するようにしました(_S4 を無効化しないようにしました)。


修正した問題

  • panic 時に未初期化の VMCS がダンプされる不具合を修正しました。
  • BSP の APIC ID を読み取る処理がなかったため追加しました。


動作確認内容

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がリンクアップしない

変更履歴

------------------------------------------------------------------------
r318 | yuichi_xy | 2015-02-09 23:56:24 +0900 (月, 09  2月 2015) | 1 line

UEFI なしのブランチを作成
------------------------------------------------------------------------
r319 | yuichi_xy | 2015-02-11 21:59:02 +0900 (水, 11  2月 2015) | 1 line

trunk の r304-306,308-309,311-313,315-316 をマージした。
------------------------------------------------------------------------
r316 | yuichi_xy | 2015-01-25 23:47:26 +0900 (日, 25  1月 2015) | 1 line
マージ経路: r319

r315 で埋め込んだ、 gmm_trans->mem_map_count の値が 1 小さくなる不具合を修正した
------------------------------------------------------------------------
r315 | yuichi_xy | 2015-01-18 23:02:33 +0900 (日, 18  1月 2015) | 1 line
マージ経路: r319

VM0 以外の VM 向けに 4GB 直下のメモリホールを生成する処理が、gmm_assign.c と gmm_trans.c に分散していたので、 gmm_trans.c に集約した。
------------------------------------------------------------------------
r313 | yuichi_xy | 2015-01-17 14:00:50 +0900 (土, 17  1月 2015) | 1 line
マージ経路: r319

VMCS 用のメモリの確保時に、VMCS をゼロクリアするようにした。make clean 時、build_date.c と vmm/build_date.o が存在しないと、処理が中断する不具合を修正した。
------------------------------------------------------------------------
r312 | yuichi_xy | 2015-01-11 22:11:04 +0900 (日, 11  1月 2015) | 1 line
マージ経路: r319

r311 で fw_cfg のエントリを追加したのに、最大値を増やし忘れたので増やした。
------------------------------------------------------------------------
r311 | yuichi_xy | 2015-01-11 17:33:12 +0900 (日, 11  1月 2015) | 4 lines
マージ経路: r319

fw_cfg で VM に割り当てられた論理プロセッサの数を取得できるようにした。
apic_available 関数では MSR_IA32_APIC_BASE_MSR_APIC_GLOBAL_ENABLE_BIT を参照しないようにした。
UEFI 環境で shell=0 を指定して起動した場合は、VMM が BSP 以外の論理プロセッサを開始させるようにした。
BSP の APIC ID を読み取る処理がなかったため追加した。
------------------------------------------------------------------------
r309 | yuichi_xy | 2015-01-05 22:02:42 +0900 (月, 05  1月 2015) | 1 line
マージ経路: r319

svn:ignore を修正
------------------------------------------------------------------------
r308 | yuichi_xy | 2015-01-05 19:50:34 +0900 (月, 05  1月 2015) | 1 line
マージ経路: r319

r306 で vmm_elf.patch を登録し忘れていたので登録した。
------------------------------------------------------------------------
r306 | yuichi_xy | 2015-01-04 23:15:09 +0900 (日, 04  1月 2015) | 1 line
マージ経路: r319

vmm ディレクトリ配下で make を実行するだけで vmm.elf という名前でバイナリが生成されるようにした。vmm.elf や bios.bin を一番上のディレクトリにコピーしないようにした。
------------------------------------------------------------------------
r305 | yuichi_xy | 2015-01-04 22:55:01 +0900 (日, 04  1月 2015) | 1 line
マージ経路: r319

BIOS の patch の説明を追加した。
------------------------------------------------------------------------
r304 | yuichi_xy | 2015-01-04 22:54:08 +0900 (日, 04  1月 2015) | 1 line
マージ経路: r319

_S1 から _S3 を無効化するようにした(_S4 を無効化しないようにした)。
------------------------------------------------------------------------
r321 | yuichi_xy | 2015-02-11 22:43:35 +0900 (水, 11  2月 2015) | 1 line

trunk の r320 をマージした。
------------------------------------------------------------------------
r320 | yuichi_xy | 2015-02-11 22:31:47 +0900 (水, 11  2月 2015) | 1 line
マージ経路: r321

起動メッセージを更新した。
------------------------------------------------------------------------
r323 | yuichi_xy | 2015-02-11 23:53:43 +0900 (水, 11  2月 2015) | 1 line

trunk の r322 をマージした。
------------------------------------------------------------------------
r322 | yuichi_xy | 2015-02-11 23:52:11 +0900 (水, 11  2月 2015) | 1 line
マージ経路: r323

copy.sh がコピーする vmm.elf と bios.bin のパスを修正した。
------------------------------------------------------------------------