パソコン(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)をベースとします。
なし
なし
Fedora 22、Debian 8、FreeBSD 10.2、Windows 10(VM0のみ)が起動、再起動可能なことなどを確認しています。 詳細は以下を参照してください。
次の問題があります。
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 を登録