ダウンロードリスト

プロジェクト概要

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

システム要件

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

リリース時刻: 2016-01-16 21:38
tinyvisor 1.7 (1 個のファイル 非表示)

リリースノート

TinyVisor 1.7


新機能

なし


その他の変更

  • VMM とゲスト BIOS のベースを新しくしました。
  • ソースコードの管理を subversion から mercurial に変更しました
  • install_to_usb.shを廃止し、vmm/boot/loader/install.sh または vmm/boot/uefi-loader/install.sh を使ってインストールするようにしました
  • 他の CPU 宛に Startup IPI を送信する時に、送信元 CPU にも送信している不具合を修正した
  • PIT エミュレータを、 Read Back Command と Counter Latch Command に対応させた
  • ヘッダタイプ 0 の PCI デバイスは拡張 ROM のベースアドレスが 30h だが、ヘッダタイプ 1 の PCI デバイスは 38h だった。全て 30h として扱っていたため、ヘッダタイプで切り分けるように修正した。


修正した問題

なし


動作確認内容

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


既知の問題

次の問題があります。

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

変更履歴

VMM

リビジョン:   210:00383cd396d4
タグ:         tip
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Jan 16 20:28:23 2016 +0900
要約:         Added tag TinyVisor 1.7 for changeset 84802a6df98c

リビジョン:   209:84802a6df98c
タグ:         TinyVisor 1.7
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sun Jan 03 21:18:50 2016 +0900
要約:         CONFIG_NET_BNX と CONFIG_NET_VIRTIO_NET をデフォルトで 0 にした。boot/loader/Makefile に clean ターゲットを追加した。/boot/uefi-loader/install.sh での変数の扱い方を修正した。

リビジョン:   208:f0de3c33f5f3
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Fri Jan 01 14:18:05 2016 +0900
要約:         README.md の英文の誤りを修正した。TinyVisor 用に追加したファイルの著作権とライセンスをライセンスを整理したファイル(README.tinyvisor)を追加した。 strlcpy の移植元コードを変更した。aml_compat.h に著作権表示が記載されていなかったので記載した。

リビジョン:   207:b1698c6d6cf5
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 30 20:13:23 2015 +0900
要約:         他の CPU 宛に Startup IPI を送信する時に、送信元 CPU にも送信している不具合を修正した。

リビジョン:   206:61f401c7bc38
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sun Dec 27 23:44:46 2015 +0900
要約:         PIT エミュレータを、 Read Back Command と Counter Latch Command に対応させた。

リビジョン:   205:0f0f3d3bfc8a
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Dec 26 20:15:54 2015 +0900
要約:         UEFI 用の install.sh を登録した。loadvmm.elf を改造して、VMM のパラメータや、 Guest BIOS などのモジュールもロードできるようにした。

リビジョン:   204:fea0aed539e2
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Tue Dec 22 23:30:27 2015 +0900
要約:         vmm と bootloader, install.sh を cmdline パラメータに対応させた。

リビジョン:   203:32d879fa9a4f
親リビジョン: 186:9a43a3b96535
親リビジョン: 202:90f0b2bb8c87
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sun Dec 20 20:36:20 2015 +0900
要約:         最新の BitVisor の改造を TinyVisor へマージした。

リビジョン:   186:9a43a3b96535
親リビジョン: 180:5b3632e9ef69
親リビジョン: 185:25612079b131
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 21:55:02 2015 +0900
要約:         最新の BitVisor の改造を TinyVisor へマージした。

リビジョン:   180:5b3632e9ef69
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:21:47 2015 +0900
要約:         README.md を更新した

リビジョン:   179:3c4461513288
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:11:38 2015 +0900
要約:         ヘッダタイプ 0 の PCI デバイスは拡張 ROM のベースアドレスが 30h だが、ヘッダタイプ 1 の PCI デバイスは 38h だった。全て 30h として扱っていたため、ヘッダタイプで切り分けるように修正した。

リビジョン:   178:1d9067ae1d7c
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:11:35 2015 +0900
要約:         .config のデフォルト値を TinyVisor に適する値にする。

リビジョン:   177:62d601c71178
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:11:31 2015 +0900
要約:         特に設定しなくても、xHCI にドライバが関連付けられるようにした。

リビジョン:   176:956e95e8dab5
親リビジョン: 105:c7b5b5651fb7
親リビジョン: 175:1aaeef1cf8fe
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:06:38 2015 +0900
要約:         TinyVisor のコードを最新の BitVisor へマージした

リビジョン:   175:1aaeef1cf8fe
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 70/70] RDTSCP 命令を有効にする。

リビジョン:   174:1cbdaaa067a1
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 69/70] 割り込みのインターセプトを make config で無効化できるようにする。

リビジョン:   173:b7000440a9f1
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 68/70] ブートローダがロードした GBIOS のサイズが 128 KB を超えた場合、 GBIOS が UEFI と判断し、次の処理を行う。

リビジョン:   172:0b6a828455c2
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 67/70] VMCS のページを確保した時に、ゼロクリアするようにする。

リビジョン:   171:d4f57218fd7f
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 66/70] UEFI 環境で、VM0 の OS がリセットを要求した場合は、他の VM がシャット ダウンすることを待ち合わせてから、マシン全体を再起動する。

リビジョン:   170:c9402030e70c
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 65/70] OS が CPUID 命令(EAX=1)で CPU が対応している機能一覧を取得しようとした 場合に、 VMM が x2APIC を隠す。

リビジョン:   169:a873deffc5d2
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 64/70] UEFI 環境でゲスト BIOS をロードする。

リビジョン:   168:33e4161ad5d1
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 63/70] UEFI 環境で VMM をブートした場合、BSP 以外の論理プロセッサが遅延して初 期化されるが、IO ポートのフックの設定が IO ビットマップに反映されない問 題を修正した。

リビジョン:   167:ca3b2673f40d
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 62/70] UEFI 環境で、 VM0 以外の VM に割り当てたメモリを UnusableMemory として 予約するようにした。

リビジョン:   166:cb462b01232b
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 61/70] UEFI 環境では、CPU0 以外の CPU は遅れて初期化されるため、PIT を使って周 波数を測定することができない。そのため、CPU0 の周波数を、そのまま使う。

リビジョン:   165:43ffcc011218
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 60/70] UEFI 環境で、VMM ローダがメモリ中に格納したパラメータを、引き取り保存す る。パラメータの物理アドレスとサイズを格納した構造体のアドレスは、VMM ローダが VMM を呼び出すときの引数で渡される。

リビジョン:   164:7bbe67090eb5
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 59/70] Edk 1.06 からコピーしたヘッダファイル

リビジョン:   163:a94a0bf0ff33
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 58/70] UEFI 環境でも、UEFI のインタフェースを使用してメモリマップを取得し、 VMM がメモリ管理できるようにする。

リビジョン:   162:f9cdb70d8935
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 57/70] 全プロセッサで vminit が完了してから initfunc "pass" を実行するようにする。

リビジョン:   161:e76ebf7e2175
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 56/70] MCFG が見つからない場合に NULL ポインタ参照しないようにする。

リビジョン:   160:01eea49164a5
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 55/70] 起動メッセージを変更する。

リビジョン:   159:f9bd699cbced
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 54/70] panic 時に出力する情報を強化する。

リビジョン:   158:1bf5391cacda
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 53/70] shell 上で trigger_panic コマンドを実行することで VMM を panic させる ことができるようにする。

リビジョン:   157:abf5a8d3365c
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 52/70] VM を独立的に再起動可能にします。また、全ての VM がシャットダウンするこ とを待ち合わせてから、 PC の電源を OFF にします。

リビジョン:   156:902fb2b42ba5
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 51/70] vmmcall_boot_thread を、vmmcall_boot_enable が実行された論理プロセッサ にバインドする。

リビジョン:   155:df605f43796b
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 50/70] get_tmpbuf 関数を main.c から callrealmode.c に移動する。

リビジョン:   154:d543db44b965
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 49/70] shell=<apic id> パラメータを指定することで、特定の apic id を持つ CPU 上で shell を起動可能にする。

リビジョン:   153:5f51e3d29aef
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 48/70] ホストの MCFG を VM0 以外の VM の OS にも見せるようにする。

リビジョン:   152:8d4bfa0154b9
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 47/70] ACPI コントローラのエミュレータを追加する。

リビジョン:   151:2bbcbada8ea3
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 46/70] PCH の USB2 port を XHCI に接続する。

リビジョン:   150:27797bb5b018
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 45/70] VM に割り当てられている PCI デバイスが、VM に割り当てられているメモリに アクセス(DMA)できるように I/O ページテーブルを作成する。

リビジョン:   149:a925924b59db
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 44/70] phys_to_virt の宣言を include/core/mm.h に移動する。

リビジョン:   148:9eaa858966c6
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 43/70] PCI デバイスを各 VM に割り当てる。

リビジョン:   147:978b6a696291
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 42/70] PCI デバイスに割り当てられているリソースを管理する。

リビジョン:   146:ad71a5ce41f9
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 41/70] OSによるI/Oポートアクセスをフックするためのフレームワークを、複数VMに対 応させる。

リビジョン:   145:fedf74cd5a24
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 40/70] usleep 関数の宣言を include/core/sleep.h に移動する。

リビジョン:   144:41720917a9d5
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 39/70] VM のリソース(MMIO,IO)の管理を行う。

リビジョン:   143:62444d61ed69
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 38/70] レガシーデバイスのフックとエミュレートを行う。

リビジョン:   142:9df48b0e85e4
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 37/70] 外部割り込み処理に以下の拡張を行う。

リビジョン:   141:40a333a19385
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 36/70] CPU 固定のタイマを登録できるようにする。

リビジョン:   140:5ecd1a0272bc
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 35/70] 特定の CPU にバインドしてスレッドを生成する機能を追加する。

リビジョン:   139:a090333e0a73
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 34/70] ゲスト BIOS と VMM 間のインタフェース(fw_cfg) を実装する。

リビジョン:   138:e1dabb7e6f91
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 33/70] FreeBSD から byteorder 関連関数を移植する。

リビジョン:   137:c010b2172a06
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 32/70] Guest BIOS をロード可能にする。

リビジョン:   136:02e576115440
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 31/70] VM0 以外の VM の場合、ゲスト物理アドレスからホスト物理アドレスへの変換 を行う。

リビジョン:   135:b847dd09d098
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 30/70] メモリを各 VM に割り当てる。 VM0 に割り当てたメモリを、 VM0 の OS に認識させる。

リビジョン:   134:8aaf374afe5b
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 29/70] リソース管理機能を追加する。

リビジョン:   133:8f11e46fdda5
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 28/70] I/O APIC とシリアルコントローラのエミューレートと、HPET の VM1 への割り 当てを行う。

リビジョン:   132:1ebc34ff2097
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 27/70] VM0 の OS に、割り当てられている論理プロセッサを認識させる。

リビジョン:   131:57db9685bc9f
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 26/70] init 関数呼び出しのデバッグメッセージを追加。

リビジョン:   130:9b0b59d5d2c6
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 25/70] drivers ディレクトリのコードが、割り込みを送信可能にする。

リビジョン:   129:9207e0cf2f3a
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 24/70] drivers ディレクトリのコードが ACPI table を参照できるようにする。

リビジョン:   128:b9c456f02a4d
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 23/70] emun iotype に iotype_t という名前をつける。

リビジョン:   127:f6991dbfdd16
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 22/70] 以下の INITFUNC を定義する。

リビジョン:   126:a2d64289c082
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 21/70] 割り込みの宛先を VM に割り当てられた論理プロセッサに制限する。

リビジョン:   125:2d6b058ec2db
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 20/70] MMIO 処理用関数 (mmio_do_nothing, mmio_memcopy) を追加する。

リビジョン:   124:93c626e4e6af
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 19/70] VM0 の起動方法を VMM のパラメータで指定可能にする。

リビジョン:   123:e1e845c696f6
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 18/70] 複数の VM を管理可能なデータ構造、処理にする。

リビジョン:   122:e794021f6b9a
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 17/70] Multiboot spec で定義されている cmdline で VMM のパラメータを指定可能にする。

リビジョン:   121:971cf7b9775b
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 16/70] LIST2_NEXT の追加。

リビジョン:   120:397b68864594
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 15/70] 他の CPU を待つ関数を追加する。

リビジョン:   119:870c87c3b8c1
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 14/70] 時刻関連機能を追加する。

リビジョン:   118:3ea124d54173
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 13/70] ACPI 関連関数の追加、移動、修正。

リビジョン:   117:d084f8eeb982
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 12/70] MAPMEM_UC というマクロを追加する。

リビジョン:   116:ecac4db99f8f
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 11/70] writex, readx 関数を追加する。

リビジョン:   115:bec5243a641e
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 10/70] Net BSD 6.1.3 の AML インタープリタを移植し、次の処理を行う。 * _S0 から _S5 の解析 * _S1 から _S4 の無効化 * シリアルコントローラの _DIS メソッドを無効化

リビジョン:   114:59964f406cbb
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 09/70] マクロを定義することで、 VPD, EPT, Unrestricted guest を無効にできるよ うにする。

リビジョン:   113:30fb2b4420ee
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 08/70] halt_cpu 関数を追加する。

リビジョン:   112:5b60fed783a6
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 07/70] 計算用マクロを定義する。

リビジョン:   111:11ad66bb7240
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 06/70] off_t と gsi_t を追加する。

リビジョン:   110:7743d0370c78
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 05/70] strncmp, strncpy, strcpy, strncat を FreeBSD から移植する。strlcpy, strlcat を NetBSD から移植する。memcpy, strcmp, memcmp, stllen の入力 引数に const を付与する。

リビジョン:   109:e645ae7b8f34
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 04/70] enum vmmerr の定義を include/core/vmmerr.h に移動する。

リビジョン:   108:d54a40a4fda8
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 03/70] CFLAGS に -O2 -Wall を追加する。--fno-strict-aliasing を削除する。

リビジョン:   107:a7571055a20f
ブランチ:     1.4-base
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 02/70] VMM のバイナリを vmm.elf という名前にする。

リビジョン:   106:0f889f0ab3e0
ブランチ:     1.4-base
親リビジョン: 20:c69fb57fd3c4
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Oct 24 17:01:54 2015 +0900
要約:         [patch 01/70] GNU Make 4.0 以降で、同一のオブジェクトファイルが2度指定されてしまうた め、1度のみ指定するよう修正する。また、process ディレクトリ配下のソー スファイルがコンパイルされない問題を修正する。

ゲストBIOS

リビジョン:   15:51e62c37761c
タグ:         tip
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Jan 16 20:27:37 2016 +0900
要約:         Added tag TinyVisor 1.7 for changeset 9eb3aac4380f

リビジョン:   14:9eb3aac4380f
タグ:         TinyVisor 1.7
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sun Jan 03 21:48:20 2016 +0900
要約:         xHCI にデバイスをつなぐとストールすることがあるので、USB を無効にした。

リビジョン:   13:66155d184894
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Fri Jan 01 14:38:30 2016 +0900
要約:         README を TinyVisor 用に更新した

リビジョン:   12:424f3e7608fd
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 30 21:09:44 2015 +0900
要約:         2 番目以降の CPU が SMPLock を獲得できるよう、1 番目の CPU は SMPLock 解放してから、もう一度獲得するまでの間に、少し待つようにした。

リビジョン:   11:f6753270be68
親リビジョン: 9:16e0741a2a48
親リビジョン: 10:de0b91ffe31a
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sun Dec 27 21:52:07 2015 +0900
要約:         SeaBIOS 1.9.0 をマージした

リビジョン:   10:de0b91ffe31a
ブランチ:     upstream
親リビジョン: 0:572bd7359a11
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Sat Dec 26 21:09:00 2015 +0900
要約:         SeaBIOS 1.9.0 を登録

リビジョン:   9:16e0741a2a48
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:09:44 2015 +0900
要約:         .config を登録

リビジョン:   8:2102f2e2c0f1
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 8/8] APIC ID が不連続でも正しく MPTABLE を作成できるようにする

リビジョン:   7:e9e4680ff7b5
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 7/8] ACPI テーブルと AML を VMM の仕様に合わせて変更

リビジョン:   6:8984e0b13e7a
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 6/8] PCI デバイスに ホスト BIOS が割り当てたリソースを引き継いで使用する

リビジョン:   5:973badfeb08a
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 5/8] Int 15/AH=86h BIOS CALL が指定時間待つときに、 RTC を使用せずに TSC を使用するようにする

リビジョン:   4:6b0fb2012e64
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 4/8] 拡張 ROM を実行する前に、コマンドレジスタのメモリ有効ビットを立てる

リビジョン:   3:1810edfa1fcf
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 3/8] TinyVisor の fw_cfg シグネチャに対応する

リビジョン:   2:700c6d750e43
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 2/8] AHCI ドライバを、 VM に割り当てた AHCI デバイスから OS を起動可能にする

リビジョン:   1:42d95bf3e256
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 22:07:09 2015 +0900
要約:         [patch 1/8] バージョン文字列にホスト名が埋め込まれないようにする

リビジョン:   0:572bd7359a11
ユーザ:       Yuichi Watanabe <yuichi_xy@ybb.ne.jp>
日付:         Wed Dec 23 21:28:10 2015 +0900
要約:         SeaBios 1.7.5 を登録