Enviar búsqueda
Cargar
MMIO on VT-x
•
4 recomendaciones
•
2,583 vistas
Takuya ASADA
Seguir
Tecnología
Vista de diapositivas
Denunciar
Compartir
Vista de diapositivas
Denunciar
Compartir
1 de 22
Descargar ahora
Descargar para leer sin conexión
Recomendados
軽快なBHyVe
軽快なBHyVe
Takuya ASADA
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
Preludeのprecompile
Preludeのprecompile
Glass_saga
ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話
Kohki Nakashima
dofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
Vimはこわくない
Vimはこわくない
Yuichi Watanabe
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
ROBOTIS Japan
ttwrite
ttwrite
kusabanachi
Recomendados
軽快なBHyVe
軽快なBHyVe
Takuya ASADA
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
Preludeのprecompile
Preludeのprecompile
Glass_saga
ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話
Kohki Nakashima
dofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
Vimはこわくない
Vimはこわくない
Yuichi Watanabe
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
ROBOTIS Japan
ttwrite
ttwrite
kusabanachi
coma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshop
Eto Haruhiko
Kiso sekkei 01rev03
Kiso sekkei 01rev03
tetsuya matsuno
d-kami x86-1
d-kami x86-1
Daisuke Kamikawa
Kiso sekkei 02rev02
Kiso sekkei 02rev02
tetsuya matsuno
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディション
Kuninobu SaSaki
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
Takashi Yamanoue
neobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
Yuto Hayamizu
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
Zio stm
Zio stm
keisunagawa
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
Let's play with Goldfish
Let's play with Goldfish
Tetsuyuki Kobayashi
Symfony2 behat-bdd
Symfony2 behat-bdd
Hidenori Goto
軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -
Go Saito
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
Mruby jitプレゼン
Mruby jitプレゼン
miura1729
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
できる!trema-switch
できる!trema-switch
Hiroaki Kawai
Bhyve Internals
Bhyve Internals
Takuya ASADA
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
Más contenido relacionado
La actualidad más candente
coma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshop
Eto Haruhiko
Kiso sekkei 01rev03
Kiso sekkei 01rev03
tetsuya matsuno
d-kami x86-1
d-kami x86-1
Daisuke Kamikawa
Kiso sekkei 02rev02
Kiso sekkei 02rev02
tetsuya matsuno
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディション
Kuninobu SaSaki
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
Takashi Yamanoue
neobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
Yuto Hayamizu
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
Zio stm
Zio stm
keisunagawa
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
Let's play with Goldfish
Let's play with Goldfish
Tetsuyuki Kobayashi
Symfony2 behat-bdd
Symfony2 behat-bdd
Hidenori Goto
軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -
Go Saito
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
Mruby jitプレゼン
Mruby jitプレゼン
miura1729
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
できる!trema-switch
できる!trema-switch
Hiroaki Kawai
La actualidad más candente
(20)
coma Study Room vol.2 Arduino Workshop
coma Study Room vol.2 Arduino Workshop
Kiso sekkei 01rev03
Kiso sekkei 01rev03
d-kami x86-1
d-kami x86-1
Kiso sekkei 02rev02
Kiso sekkei 02rev02
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディション
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作
neobundle.vimについて+おまけ
neobundle.vimについて+おまけ
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
Zio stm
Zio stm
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Let's play with Goldfish
Let's play with Goldfish
Symfony2 behat-bdd
Symfony2 behat-bdd
軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Mruby jitプレゼン
Mruby jitプレゼン
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
できる!trema-switch
できる!trema-switch
Destacado
Bhyve Internals
Bhyve Internals
Takuya ASADA
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
Progetto CIVITAS: Modello di Accoglienza Partecipata
Progetto CIVITAS: Modello di Accoglienza Partecipata
Luigi A. Dell'Aquila
Curso de Marketing y Publicidad Digital
Curso de Marketing y Publicidad Digital
Exito Digital Formación - Formación en la digitalización de Pymes, profesionales y emprendedores.
St Michael Presentation
St Michael Presentation
BudgetVideo4BIZ
2017 customer intelligence signs which brands should never ignore
2017 customer intelligence signs which brands should never ignore
Subhakar Rao Surapaneni
15 ideas para la Transformación Digital de tu Negocio
15 ideas para la Transformación Digital de tu Negocio
Lluis Serra
El relleno fluido no fue el único culpable - Foro Técnico sobre la Troncal Ca...
El relleno fluido no fue el único culpable - Foro Técnico sobre la Troncal Ca...
Sociedad Colombiana de Ingenieros
Fanny Leberquier
Fanny Leberquier
SoSPIE
The Power of Beneficiary-Directed Data (CMS BlueButton on FHIR API Update)
The Power of Beneficiary-Directed Data (CMS BlueButton on FHIR API Update)
Mark Scrimshire
Ouellette elixir 2017
Ouellette elixir 2017
Neuro, McGill University
openEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidad
Pablo Pazos
臨床心理学における例数設計
臨床心理学における例数設計
Senshu University
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
Jun-ichi Sakamoto
Deeplinkから考えるWebとAppの今後とは
Deeplinkから考えるWebとAppの今後とは
Yohhei Someya
SLLA Book: SLLA Crash Course
SLLA Book: SLLA Crash Course
Wafa Hozien
CSCA 2017 - Water Nonprofit Case Studies
CSCA 2017 - Water Nonprofit Case Studies
Rahul Mitra
Destacado
(17)
Bhyve Internals
Bhyve Internals
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
Progetto CIVITAS: Modello di Accoglienza Partecipata
Progetto CIVITAS: Modello di Accoglienza Partecipata
Curso de Marketing y Publicidad Digital
Curso de Marketing y Publicidad Digital
St Michael Presentation
St Michael Presentation
2017 customer intelligence signs which brands should never ignore
2017 customer intelligence signs which brands should never ignore
15 ideas para la Transformación Digital de tu Negocio
15 ideas para la Transformación Digital de tu Negocio
El relleno fluido no fue el único culpable - Foro Técnico sobre la Troncal Ca...
El relleno fluido no fue el único culpable - Foro Técnico sobre la Troncal Ca...
Fanny Leberquier
Fanny Leberquier
The Power of Beneficiary-Directed Data (CMS BlueButton on FHIR API Update)
The Power of Beneficiary-Directed Data (CMS BlueButton on FHIR API Update)
Ouellette elixir 2017
Ouellette elixir 2017
openEHR: aspectos de interoperabilidad y mantenibilidad
openEHR: aspectos de interoperabilidad y mantenibilidad
臨床心理学における例数設計
臨床心理学における例数設計
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
Deeplinkから考えるWebとAppの今後とは
Deeplinkから考えるWebとAppの今後とは
SLLA Book: SLLA Crash Course
SLLA Book: SLLA Crash Course
CSCA 2017 - Water Nonprofit Case Studies
CSCA 2017 - Water Nonprofit Case Studies
Similar a MMIO on VT-x
Bhyve code reading
Bhyve code reading
Takuya ASADA
BHyVeってなんや
BHyVeってなんや
Takuya ASADA
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Minoru Nakamura
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Minoru Nakamura
あるmmapの話
あるmmapの話
nullnilaki
Open VZ
Open VZ
Kazuaki Fujikura
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS Virtualized Infrastructure Operators group ARCHIVES
2008-03-19 第2回セキュアVMシンポジウム
2008-03-19 第2回セキュアVMシンポジウム
Takahiro Shinagawa
2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップ
Takahiro Shinagawa
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
Satoshi Kume
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
Preferred Networks
Gingerbread
Gingerbread
android sola
Swift 2.0 変更点(だいたい)まとめ
Swift 2.0 変更点(だいたい)まとめ
Ken Toriumi
2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウム
Takahiro Shinagawa
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
Similar a MMIO on VT-x
(16)
Bhyve code reading
Bhyve code reading
BHyVeってなんや
BHyVeってなんや
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
あるmmapの話
あるmmapの話
Open VZ
Open VZ
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS04: Intel VT ~仮想化を支える基礎技術~
2008-03-19 第2回セキュアVMシンポジウム
2008-03-19 第2回セキュアVMシンポジウム
2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップ
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
Gingerbread
Gingerbread
Swift 2.0 変更点(だいたい)まとめ
Swift 2.0 変更点(だいたい)まとめ
2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウム
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
Más de Takuya ASADA
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
Takuya ASADA
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
OSvのご紹介 in Java 8 HotSpot meeting
OSvのご紹介 in Java 8 HotSpot meeting
Takuya ASADA
OSvパンフレット v3
OSvパンフレット v3
Takuya ASADA
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
OSv噺
OSv噺
Takuya ASADA
OSvの概要と実装
OSvの概要と実装
Takuya ASADA
Linux network stack
Linux network stack
Takuya ASADA
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
Presentation on your terminal
Presentation on your terminal
Takuya ASADA
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
Interrupt Affinityについて
Interrupt Affinityについて
Takuya ASADA
OSvパンフレット
OSvパンフレット
Takuya ASADA
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
Más de Takuya ASADA
(20)
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
UEFI時代のブートローダ
UEFI時代のブートローダ
OSvのご紹介 in Java 8 HotSpot meeting
OSvのご紹介 in Java 8 HotSpot meeting
OSvパンフレット v3
OSvパンフレット v3
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
OSv噺
OSv噺
OSvの概要と実装
OSvの概要と実装
Linux network stack
Linux network stack
Ethernetの受信処理
Ethernetの受信処理
Presentation on your terminal
Presentation on your terminal
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Interrupt Affinityについて
Interrupt Affinityについて
OSvパンフレット
OSvパンフレット
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Último
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Último
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
MMIO on VT-x
1.
MMIO ON VT-X
@syuu1228 13年4月13日土曜日
2.
よくこんな風に説明しますね
単純なエミュレーション:ゲストOSのプログラムの全命令を ソフトウェアエミュレーションして実行→すごい遅い VT-x以前の仮想化:ゲストOSのプログラムをそのままCPUで実行 するとホストOSのステートが壊れる →実行してはならない命令を動的に置き換えてネイティブに実行 (VMwareのBinary Translation) VT-xを用いた仮想化:CPUをゲストモードへ切り替え、ゲストOS のプログラムをネイティブに実行(置き換え不要) 13年4月13日土曜日
3.
ゲストOSのプログラムを
そのまま実行できる! 13年4月13日土曜日
4.
ゲストOSの命令は全部ネイティブに実行される
から、ハイパーバイザは介入しないんだよね! 13年4月13日土曜日
5.
( ゚д゚)ハッ! こんな所に
BHyVeのソースコードが… int vmm_emulate_instruction(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) { int error; if (!vie->decoded) return (EINVAL); 命令エミュレーションっぽい switch (vie->op.op_type) { コードが有るんですけど… case VIE_OP_TYPE_MOV: error = emulate_mov(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; case VIE_OP_TYPE_AND: error = emulate_and(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; 13年4月13日土曜日
6.
VT-Xなハイパーバイザで
命令エミュレーション必要なの…? 13年4月13日土曜日
7.
_人人人人人人_
> 必要です <  ̄Y^Y^Y^Y^Y ̄ 13年4月13日土曜日
8.
何故? 13年4月13日土曜日
9.
VT-xなハイパーバイザの
ライフサイクル guest /usr/sbin/bhyve userland ioctl(VM_RUN) VMExit BSD guest vmm.ko kernel kernel VMEntry Host mode Guest mode ホストOSのカーネルからゲストモードへ切替(VMEntry) ハードウェアへのアクセスなどハイパーバイザの介入が必要な処理 が実行されたらゲストモードを停止、ホストOSへ戻る(VMExit) 13年4月13日土曜日
10.
IO命令によるVMExit
IO命令が実行された時点でVMExitが発生 VMExitの詳細情報(Exit Qualification)から以下のような情報を取得 アクセスサイズ(1,2,4 bytes) IN方向かOUT方向か String命令(INS)か REP prefixが付いているか IOポート番号はイミディエイト値か、DXレジスタ参照か IOポート番号(イミディエイト値) 13年4月13日土曜日
11.
IO命令のエミュレーション
Exit Qualificationの情報に基いてIO命令をエミュレーション出来る IN命令(イミディエイト値):EAX = ioport_read(imm) OUT命令(イミディエイト値):ioport_write(imm, EAX) IN命令(DX参照):EAX = ioport_read(DX) OUT命令( DX参照):ioport_write(DX, EAX) INS命令:*(ES:EDI) = ioport_read(DX) OUTS命令:ioport_write(DX, *(ES:EDI)) 13年4月13日土曜日
12.
MMIOによるVMExit
MMIOは通常のメモリアクセスと同じ命令を用いる →IO命令と違って命令で判別してVMExit出来ない アクセスしたアドレスで判別可能 →MMIO領域に該当するページにアクセスした時に VMExit(EPT violation)が起きるようにEPTを設定 (read/write共に拒否) 13年4月13日土曜日
13.
MMIOでのVMExit時に
得られる情報 EPT violation時のVMExit Qualification どの種類のアクセス権違反でVMExitが起きたか ページに設定された権限 ゲストOSがアクセスしたアドレス(論理・物理) アクセスしたアドレスとアクセス方向(読み・書き)は分かる 書き込み元・読み込み先の情報(アドレス or レジスタ)とアクセス幅 が分からない どんな命令が実行されたのか分からない 13年4月13日土曜日
14.
情報が足りない状態でMMIOを
エミュレートするには ゲストEIPの指すアドレスの命令をデコードして、 オペコード・オペランドを取得 オペコード通りの動作をエミュレート アクセス先アドレスがMMIO領域ならデバイスの挙動 をエミュレート 13年4月13日土曜日
15.
情報が足りない状態でMMIOを
エミュレートするには ゲストEIPの指すアドレスの命令をデコードして、 オペコード・オペランドを取得 オペコード通りの動作をエミュレート アクセス先アドレスがMMIO領域ならデバイスの挙動 をエミュレート 13年4月13日土曜日
16.
_人人人人人人人人人人人人_
> 命令エミュレーション <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ 13年4月13日土曜日
17.
( ゚д゚)ハッ! これがそうだったのか
int vmm_emulate_instruction(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) { int error; if (!vie->decoded) return (EINVAL); switch (vie->op.op_type) { case VIE_OP_TYPE_MOV: error = emulate_mov(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; case VIE_OP_TYPE_AND: error = emulate_and(vm, vcpuid, gpa, vie, memread, memwrite, memarg); break; 13年4月13日土曜日
18.
なんでCPUがやってくれないのか
(想像) x86アーキテクチャでは、メモリアクセス可能な命令 やアドレッシングモードの種類が非常に多い そもそもEPT violationはページへのアクセス権限エラー を知らせるVMExitであって、MMIOを知らせるVMExit ではない 13年4月13日土曜日
19.
しんどい
デバイス guest /usr/sbin/bhyve userland エミュレータ ioctl(VM_RUN) VMExit BSD guest vmm.ko kernel kernel VMEntry Host mode Guest mode ただでさえMMIO領域に触れる度にVMExitするのに、 更にデバイスエミュレータがユーザランドに居るので コンテキストスイッチが発生 13年4月13日土曜日
20.
Local APIC仮想化支援
Local APICは割り込み周りで頻繁にアクセスされる が、MMIOを使っており準仮想化にも馴染みづらいデ バイス この領域のMMIOだけVT-xが特別扱い 専用のVMExit ReasonとExit Qualificationを用意 →命令エミュレーションが不要に レジスタ・条件によってはVMExit自体省略 13年4月13日土曜日
21.
Coalesced MMIO (KVM)
MMIO領域の中には読み書きによる副作用が無く、 単純なメモリ読み/書きに置き換えられる部分が存在 VGAボードのピクセルデータの領域とか VMExitが発生したらカーネル内で命令エミュレーション を実行、メモリ読み/書きを実施 ユーザランドでのデバイスエミュレーションを省略 e1000ドライバ(NIC)のパフォーマンスが9.7%向上 13年4月13日土曜日
22.
まとめ
ハードウェア仮想化支援機構といっても、なんでもや ってくれるわけじゃない 最後はソフト屋が頑張るしかない 根性とバッドノウハウ・転んでも泣かない すげぇ頑張ったのに新しいハード出るとハード出来る ようになってたりすることもある(VT-x自体がそう) 13年4月13日土曜日
Descargar ahora