[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
「ハイパーバイザの作り方」
読書会#1
@syuu1228
13年8月22日木曜日
はじめに:SDMの読み方
• VT-xの範囲はVolume 3, Chapter 23-33 + Appendix A-C
• VMCSの構造:Chapter 24
• VT-x拡張命令:Chapter 30
• VMExit Reason:Appendix C
13年8月22日木曜日
「仮想化可能」とは
(POPEKとGOLDBERGの仮想化用件)
• システムに影響を及ぼすセンシティブ命令が全て特権命令なら、ユーザ権限で実行
することでトラップ可能
• センシティブでない命令はCPUで実行、センシティブな命令だけエミュレーション
User
(Ring 3)
Kernel
(Ring 0)
Hypervisor
(Ring 0)
ハイパー
バイザなし
ハイパー
バイザあり
User/
Kernel
(Ring 3)
センシティブ命令の
発行などでトラップ
13年8月22日木曜日
X86は「仮想化可能」でない
• トラップできないセンシティブ命令がある
• ゲストOSを直接CPUで実行するとホスト環境が壊れる
User
(Ring 3)
Kernel
(Ring 0)
Hypervisor
(Ring 0)
ハイパー
バイザなし
ハイパー
バイザあり
User/
Kernel
(Ring 3)
センシティブ命令の
発行などでトラップ
13年8月22日木曜日
VMWARE’S APPROACH
• BinaryTranslation(BT)
• ゲストマシンで実行される予定のプログラムを先回り
してチェック、問題のある命令を置き換え
• 性能の出るBTを実装するのは大変だが、そこそこ高速
に動作していた
13年8月22日木曜日
XEN’S APPROACH
• 準仮想化(Para-virtualization)
• ゲストOSをXen専用に書き換え、ゲストOSのカーネルをRing1で実行
させる
• 仮想デバイスへのI/Oはソフト割り込みを用いてハイパーバイザに要求
• 本来センシティブ命令を実行していた部分はハイパーバイザ呼び出し
に書き換え
• 速いがゲストOSの移植が必要(結局Windowsは公式対応ならず)
13年8月22日木曜日
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日木曜日
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日木曜日
VMCS
• どんなイベントでVMExitしたいかはハイパーバイザの実装による→VMCSで設定可能(メモリ上の設
定用構造体)
• ゲストステートの保持、ホストステートの待避、VMExitした理由の通知などにも利用されている
• 4KBアラインの4KB長のデータ構造 内部構造は非公開、専用命令でアクセス
• 詳しくは→SDMVolume 3, Chapter 24
VMCS revision identifier
VMX-abort indicator
VMCSdata
Guest-state area
Host-state area
VM-exection control fields
VM-exit control fields
VM-entry control fields
VM-exit information fields
13年8月22日木曜日
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日木曜日
VT-X拡張命令
• VT-xを有効・無効:VMXON/VMXOFF
• VMEntry:VMLAUNCH(初回)/VMRESUME(再開)
• VMCSをCPUにセット・クリア:VMPTRLD/VMCLEAR
• VMCS読み・書き:VMREAD/VMWRITE
• 詳しくは→SDMVolume 3, Chapter 30
13年8月22日木曜日
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日木曜日
EXIT QUALIFICATION
• Exit Reasonによっては追加の情報が提供される:Exit
Qualification
• Volume3, Chapter 27.2.1
• CRレジスタアクセスの場合:
レジスタ番号・使われた命令・使われたレジスタ、etc
13年8月22日木曜日
ハイパーバイザのライフサイ
クル
• 何かあるとVMExit、ハイパーバイザでエミュレーション
してVMEntryの繰り返し
①初期化
②VMEntry
③VMExit
③エミュレ
ーション
VMLAUNCH
VMExitイベント発生
VMRESUME
VMExit要因に対応した
エミュレーション処理を呼び出し
13年8月22日木曜日

More Related Content

What's hot (20)

PDF
CUDAメモ
Yuuki Takano
 
PDF
SSHDノートPC高速化 / Let's note CF-S9
Yukio Saito
 
PDF
[Basic 8] プロセスとスレッド / 入出力 / シェル
Yuto Takei
 
PDF
UNIXアレコレ調べたい3
Hirokazu Yatsunami
 
PDF
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
shimadah
 
PDF
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
PDF
2013/08/01 JAWS-UG福岡 x e-Zuka-Tech Night 「今一度、EC2を」
Aya Komuro
 
PDF
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Yuto Takei
 
PDF
今時のチープなノートPC HP Stream 11でXubuntuを動かす
shimadah
 
PDF
JMeter基礎
優之 田中
 
PDF
AllwinnerタブレットのOSを作ってみる(中編)
shimadah
 
PDF
BitVisor Summit 7「2. BitVisor 2018年の主な変更点」
BitVisor
 
ODP
32bit UEFIマシンで遊ぶ
shimadah
 
PDF
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
shimadah
 
PPT
Csec52 45 Ruo Ando
Ruo Ando
 
PPT
GingerBread on S21HT
Yuya Adachi
 
PDF
181106 03
openrtm
 
PDF
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
tokuhy
 
PPTX
Arch rinko
masatora atarashi
 
PDF
opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)
shimadah
 
CUDAメモ
Yuuki Takano
 
SSHDノートPC高速化 / Let's note CF-S9
Yukio Saito
 
[Basic 8] プロセスとスレッド / 入出力 / シェル
Yuto Takei
 
UNIXアレコレ調べたい3
Hirokazu Yatsunami
 
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
shimadah
 
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
2013/08/01 JAWS-UG福岡 x e-Zuka-Tech Night 「今一度、EC2を」
Aya Komuro
 
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Yuto Takei
 
今時のチープなノートPC HP Stream 11でXubuntuを動かす
shimadah
 
JMeter基礎
優之 田中
 
AllwinnerタブレットのOSを作ってみる(中編)
shimadah
 
BitVisor Summit 7「2. BitVisor 2018年の主な変更点」
BitVisor
 
32bit UEFIマシンで遊ぶ
shimadah
 
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
shimadah
 
Csec52 45 Ruo Ando
Ruo Ando
 
GingerBread on S21HT
Yuya Adachi
 
181106 03
openrtm
 
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
tokuhy
 
Arch rinko
masatora atarashi
 
opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)
shimadah
 

Viewers also liked (20)

PDF
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
 
PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
PDF
Ethernetの受信処理
Takuya ASADA
 
PDF
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
Takuya ASADA
 
PDF
Interrupt Affinityについて
Takuya ASADA
 
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
 
PPTX
Virtual rootkit
黒 林檎
 
PPTX
Total learning: Communities - Learning through Knowledge Sharing
Brightwave Group
 
PDF
94 Crane Overturns
Alan Bassett
 
PPTX
http://izhtc.ru Банер для перехода с 1.6 на 2.0
eugenij eugenij
 
PPT
What Advisors Do Online 2009
kasina
 
PPS
Viagra
verka 123
 
PDF
Lord Young\'s Review
Alan Bassett
 
PPTX
Scalable custom production Moving to the next level – and taking everyone wit...
Brightwave Group
 
PDF
Twice Reply_Company Presentation
Sprint Reply GmbH
 
PPTX
Italiaxelementaryschool
Alessandro Lovari
 
PDF
Os negros africanos no Brasil Colonial Monize e Hanna
nice miranda
 
PPT
Oddziaływanie COŚ na środowisko
Ekokonsultacje
 
ODP
Joomla! 1.6 uuendused
Joomla Eesti MTÜ
 
PDF
Infographic: Onboard (not Overboard) The smart way to embed new graduates in ...
Brightwave Group
 
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
Ethernetの受信処理
Takuya ASADA
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
Takuya ASADA
 
Interrupt Affinityについて
Takuya ASADA
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
 
Virtual rootkit
黒 林檎
 
Total learning: Communities - Learning through Knowledge Sharing
Brightwave Group
 
94 Crane Overturns
Alan Bassett
 
http://izhtc.ru Банер для перехода с 1.6 на 2.0
eugenij eugenij
 
What Advisors Do Online 2009
kasina
 
Viagra
verka 123
 
Lord Young\'s Review
Alan Bassett
 
Scalable custom production Moving to the next level – and taking everyone wit...
Brightwave Group
 
Twice Reply_Company Presentation
Sprint Reply GmbH
 
Italiaxelementaryschool
Alessandro Lovari
 
Os negros africanos no Brasil Colonial Monize e Hanna
nice miranda
 
Oddziaływanie COŚ na środowisko
Ekokonsultacje
 
Joomla! 1.6 uuendused
Joomla Eesti MTÜ
 
Infographic: Onboard (not Overboard) The smart way to embed new graduates in ...
Brightwave Group
 
Ad

Similar to 「ハイパーバイザの作り方」読書会#1 (18)

PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
 
PDF
OpenStack & SELinux
Hiroki Ishikawa
 
PDF
BitVisor Summit 2 「BitVisorの現状と今後」
Takahiro Shinagawa
 
PDF
ディペンダブルなクラウドコンピューティング基盤を目指して
Kazuhiko Kato
 
PDF
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Ruo Ando
 
PDF
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
Brocade
 
PPTX
Microsoft Tunnel 概要
Yutaro Tamai
 
PDF
プラットフォームセキュリティin Windows ブートタイム保護 概要編
Yurika Kakiuchi
 
PDF
Cloud stack徹底入門7章 20130514
samemoon
 
PDF
190418 titech robotics
NoriakiAndo
 
PDF
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
PDF
仮想化技術の今後の動向
VirtualTech Japan Inc.
 
PDF
東京工業大学「ロボット技術」ロボットミドルウェア
NoriakiAndo
 
PDF
Microsoft tech fielders_cisco_20150126_配布版
Takao Setaka
 
PPTX
SCCM を用いた OS 展開
Yutaro Tamai
 
PDF
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
 
PDF
Video mqtt
Masaaki Nabeshima
 
PDF
BitVisor Summit 12「BitVisor 2023年から2024年3 月の主な変更点」
BitVisor
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
 
OpenStack & SELinux
Hiroki Ishikawa
 
BitVisor Summit 2 「BitVisorの現状と今後」
Takahiro Shinagawa
 
ディペンダブルなクラウドコンピューティング基盤を目指して
Kazuhiko Kato
 
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Ruo Ando
 
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
Brocade
 
Microsoft Tunnel 概要
Yutaro Tamai
 
プラットフォームセキュリティin Windows ブートタイム保護 概要編
Yurika Kakiuchi
 
Cloud stack徹底入門7章 20130514
samemoon
 
190418 titech robotics
NoriakiAndo
 
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
仮想化技術の今後の動向
VirtualTech Japan Inc.
 
東京工業大学「ロボット技術」ロボットミドルウェア
NoriakiAndo
 
Microsoft tech fielders_cisco_20150126_配布版
Takao Setaka
 
SCCM を用いた OS 展開
Yutaro Tamai
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
 
Video mqtt
Masaaki Nabeshima
 
BitVisor Summit 12「BitVisor 2023年から2024年3 月の主な変更点」
BitVisor
 
Ad

More from Takuya ASADA (20)

PDF
UEFI時代のブートローダ
Takuya ASADA
 
PDF
OSvのご紹介 in 
Java 8 HotSpot meeting
Takuya ASADA
 
PDF
OSvパンフレット v3
Takuya ASADA
 
PDF
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
 
PDF
OSv噺
Takuya ASADA
 
PDF
OSvの概要と実装
Takuya ASADA
 
PDF
Linux network stack
Takuya ASADA
 
PDF
Presentation on your terminal
Takuya ASADA
 
PDF
僕のIntel nucが起動しないわけがない
Takuya ASADA
 
PDF
OSvパンフレット
Takuya ASADA
 
PDF
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
 
PDF
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
 
PDF
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
PDF
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
 
PDF
仮想化環境での利用者公平性
Takuya ASADA
 
PDF
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
PDF
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
 
PDF
MMIO on VT-x
Takuya ASADA
 
PDF
Implements BIOS emulation support for BHyVe
Takuya ASADA
 
PDF
Play with UEFI
Takuya ASADA
 
UEFI時代のブートローダ
Takuya ASADA
 
OSvのご紹介 in 
Java 8 HotSpot meeting
Takuya ASADA
 
OSvパンフレット v3
Takuya ASADA
 
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
 
OSv噺
Takuya ASADA
 
OSvの概要と実装
Takuya ASADA
 
Linux network stack
Takuya ASADA
 
Presentation on your terminal
Takuya ASADA
 
僕のIntel nucが起動しないわけがない
Takuya ASADA
 
OSvパンフレット
Takuya ASADA
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
 
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
 
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
 
仮想化環境での利用者公平性
Takuya ASADA
 
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
 
MMIO on VT-x
Takuya ASADA
 
Implements BIOS emulation support for BHyVe
Takuya ASADA
 
Play with UEFI
Takuya ASADA
 

Recently uploaded (8)

PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 

「ハイパーバイザの作り方」読書会#1