More Related Content
Similar to 「ハイパーバイザの作り方」読書会#1 (17)
More from Takuya ASADA (20)
「ハイパーバイザの作り方」読書会#1
- 7. INTELVT-X
• アーキテクチャ拡張で仮想化に対応
• Ring Protectionから独立した2つのモードを導入
• VMX root mode(ハイパーバイザ)、VMX non-root mode(ゲストマシン)
User
(Ring 3)
Kernel
(Ring 0)
User
(Ring 3)
Kernel
(Ring 0)
VMX
root mode
VMX
non-root
mode
VMEntry
VMExit
13年8月22日木曜日
- 8. INTELVT-X
• VMX non-root modeでセンシティブ命令を実行するとトラップされて
VMX root modeへ切り替わる
• VMX non-root modeへの切り替え:VMEntry、VMX root modeへ戻る:VMExit
User
(Ring 3)
Kernel
(Ring 0)
User
(Ring 3)
Kernel
(Ring 0)
VMX
root mode
VMX
non-root
mode
VMEntry
VMExit
13年8月22日木曜日
- 10. VMCS
• VMCS revision identifier:VMCSのデータフォーマットのリビジョン番号。CPUにより書き込まれる。
• VMX-abort indicator:VMExitが失敗した時にCPUによりエラーコードが書き込まれる。
• Guest-state area:VMExit時にゲストレジスタを待避し、VMEntry時に復帰するための領域。
• Host-state area:VMEntry時にハイパーバイザのレジスタを待避し、VMExit時に復帰するための領域。
• VM-execution control fields:ゲストマシン実行時のCPUの挙動を設定する。(例:どのイベントで
VMExitするか
• VM-exit control fields:VMExit時のCPUの挙動を設定する。(例:外部割り込み発生時のCPUの挙動
• VM-entry control fields:VMEntry時のCPUの挙動を設定する。(例:ゲストマシンへの割り込み挿入
• VM-exit information fields:VMExit時にCPUによりVMExit Reasonが書き込まれる。
13年8月22日木曜日
- 12. VMEXIT REASON
• VMExitが発生すると、CPUはモードをVMX root modeへ切り
替えてVMCSのVM-exit information fieldsにExit Reasonを書き込
む
• Exit Reasonの一覧はAppendix Cにある
• IO命令・RDMSR/WRMSR命令の実行・CRレジスタへのアク
セスなどセンシティブ命令に相当するものの他にも外部割
り込みの着信などゲストマシン由来ではない要因も存在
13年8月22日木曜日
- 13. EXIT QUALIFICATION
• Exit Reasonによっては追加の情報が提供される:Exit
Qualification
• Volume3, Chapter 27.2.1
• CRレジスタアクセスの場合:
レジスタ番号・使われた命令・使われたレジスタ、etc
13年8月22日木曜日