Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

x86における仮想化と
仮想化支援機能

3,536 views

Published on

x86とIntel VT-xとかについて
なんか間違いとかあるかもしれない……

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

x86における仮想化と
仮想化支援機能

  1. 1. x86における仮想化と
 仮想化支援機能 @gion_U" グンマー大CS科2年" Y.Oh"
  2. 2. 自己紹介 •  " –  aka. 擬音 @gion_U" –  最近こっちで呼ばれる頻度の方が高い……" •  情報工B2" •  興味" –  –  –  –  –  OS, カーネル" 仮想化" C++, Haskell" Objective-C(iPhoneアプリ開発)" サーバ(gion-xy.net をちまちま弄ってます)" •  本業(勉強)が忙しい……"
  3. 3. アジェンダ •  •  •  •  •  仮想機械(VM)の概要" 『仮想化の要件』" x86アーキテクチャの仮想化可能性" 実現の手法" CPUによる仮想化支援機能" –  命令の処理" –  メモリアクセスの仮想化" •  まとめ"
  4. 4. 仮想機械 – Virtual Machine •  仮想マシンモニタ(VMM)" –  単一マシンの資源を分割、配分" –  複数のOSを同時に実行" •  メリット" –  ハードウェアの抽象化・隠蔽" •  物理的な移行が楽" –  資源の有効活用" •  単一機能のサーバー……資源が余ることも"
  5. 5. 仮想化の手法 •  従来(仮想化を用いない)" プロセス プロセス ユーザ空間 OS ハードウェア プロセス
  6. 6. 仮想化の手法 •  Type I (ベアメタル) VMM" –  Xen, ESX(i), Hyper-V, KVM, ..." ユーザ空間 ユーザ空間 ユーザ空間 管理OS ゲストOS ゲストOS VMM ハードウェア
  7. 7. 仮想化の手法 •  Type II (ホスト) VMM" –  VMware Player, VirtualBox, QEMU, ..." ユーザ空間 ホストの プロセス ユーザ空間 ゲストOS ゲストOS VMM(ホスト上のプロセス) ホストOS ハードウェア
  8. 8. 仮想化の要件 •  "PopekとGoldbergの仮想化要件"" –  1974年の論文による" •  "Formal Requirements for Virtualizable Third Generation Architectures"" –  現代のマシンにも拡張して適用可能" •  VMMたりえる3つの条件" –  等価性" –  資源管理" –  効率性"
  9. 9. 仮想化の要件 •  等価性" –  VMM上と実マシン上で
 同じ振る舞いを示さなくてはならない" •  資源管理" –  仮想化された資源を
 完全に管理しなくてはならない" •  効率性" –  大部分の命令を
 実CPUで直接実行しなくてはならない"
  10. 10. 仮想化の要件 •  命令を3種類に分類" –  特権命令" •  特権モードでないと実行できない" •  ユーザーモードであればトラップ" –  制御センシティブ命令" •  システムの資源状態に変更を加える命令" –  動作センシティブ命令" •  システムの資源状態に動作や結果が依存する命令" •  これらは排他的ではない
  11. 11. 仮想化の要件 •  定理 1 (仮想マシンモニタの構成要件):
 コンピュータが仮想化可能であるために は、すべてのセンシティブ命令が特権命令 でもある必要がある" –  センシティブ命令が実行されようとする" –  トラップが発生、
 特権モードで動くVMMに処理が移る" –  適切に処理してから復帰できる"
  12. 12. 仮想化の要件 命令セット 特権命令 センシティブ 命令 無害な命令
  13. 13. x86 では? •  Ring Protection" –  x86での権限の扱い" •  OSは
 Ring0(=特権モード)
 で実行" •  一般プロセスは
 Ring3で実行" Ring 3 Ring 2 Ring 1 Ring 0
  14. 14. x86 では? •  RobinとIrvineの論文(2000)" –  Intel CPUでセキュアな仮想マシンモニタを
 構築できるか" •  "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor"" –  x86 が仮想化可能かの分析を行っている" •  結果は……
  15. 15. x86 では? x86 命令セット 特権命令 センシティブ 命令 無害な命令
  16. 16. 理想 命令セット 特権命令 センシティブ 命令 無害な命令
  17. 17. 現実 x86 命令セット 特権命令 センシティブ 命令 無害な命令
  18. 18. x86の仮想化は
 つらい……
  19. 19. x86仮想化の実現のために •  完全エミュレーション (例: QEMU)" –  1命令ずつソフトでエミュレート" –  他プラットフォームの模倣も可能" –  遅い……"
  20. 20. x86仮想化の実現のために •  バイナリ変換 (例: VMware)" –  ゲストに実行されたくない命令を、
 実行する前に動的に書き変える" –  OS側の変更が不要" •  準仮想化 (例: Xen)" –  仮想環境で実行されることを前提に、
 OSカーネルを書き変える" –  VMMをRing0、OSをRing1で実行"
  21. 21. x86仮想化の実現 •  このような仮想化技術の確立により、
 PCサーバの仮想化が流行り始める" •  x86自体を仮想化可能なものにしよう" •  仮想化支援技術" –  Intel VT-x" –  AMDも同様の機能を AMD-V として実装"
  22. 22. Intel VT-x •  VMX Mode" –  VMX root / non-root" •  VMEntry / VMExit" •  メモリアクセスの仮想化"
  23. 23. VMX Mode VMX non-root Mode" (ゲスト) VMX root Mode" (VMM)" VMEntry Ring 3 Ring 3 Ring 2 Ring 2 Ring 1 VMCS Ring 1 Ring 0 Ring 0 VMExit
  24. 24. VMCS •  Virtual Machine Control Structure" •  内容" –  VMMとしてのコンフィグ" •  この命令はゲストに任せる、
 これはVMMで処理、……" –  VMExit時のゲストのレジスタ、要因など" •  この情報からVMMは
 何を処理すればよいかを読み取る
  25. 25. VT-x 利用の流れ 1.  準備" –  VMCSの設定、セットなど" 2.  VMLAUNCH" 3.  VMでVMExit要因が発生" 4.  VMMに処理が移る" 5.  VMExit要因に対応した処理" 6.  VMRESUME" 7.  3に戻る"
  26. 26. メモリアクセスの仮想化 •  ゲストにはホストの物理メモリの一部が
 配分される" •  ゲストから見えるアドレスに対する命令を そのまま実CPUで実行したら?" –  ゲスト側アドレスで実物理メモリにアクセス" –  意図しない結果"
  27. 27. メモリアクセスの仮想化 •  モダンなOS…‥メモリ保護" •  プロセス毎の仮想メモリ空間" •  MMUとページングを用いて実現" –  メモリをページと呼ばれる単位に分割" –  プロセスにはメモリをページ単位で提供" –  仮想/物理アドレスの関係を記録" •  ページテーブル" –  MMUが記録を基にアドレスの変換を行う" •  x86… CR3 レジスタ"
  28. 28. メモリアクセスの仮想化 仮想化無効の場合 PT1 プロセス1 物理メモリ 1 1 2 2 2 3 1 2 3 4 5 PT2 プロセス2 1 1 5 2 2 7 6 7
  29. 29. メモリアクセスの仮想化 仮想化有効の場合" ホストの " 物理メモリ ゲスト 1 " ゲストの 物理メモリ 2 " プロセス PT 3 1 4 " 1 2 1 2 5 2 3 2 3 " 6 7 " 素のメモリ空間を参照されるのは困る
  30. 30. メモリアクセスの仮想化 •  シャドウページング" ゲスト ゲストの 物理メモリ PT プロセス 1 1 2 2 2 3 1 2 3 ホストの 物理メモリ 1 2 3 4 5 6 1 4 2 5 PT(edited) 7
  31. 31. メモリアクセスの仮想化 •  シャドウページング" –  ゲストのページテーブルを複製、
 実物理メモリに対応するように書き換えて
 CR3レジスタにセット" –  ページテーブルの更新毎にVMExitが発生" –  オーバーヘッドが大きい"
  32. 32. メモリアクセスの仮想化 •  EPT(Extended Page Table)" ホストの 物理メモリ 1 ゲスト ゲストの 物理メモリ PT プロセス 1 1 2 2 2 3 1 2 3 EPT 2 3 1 4 4 2 5 5 3 6 6 7
  33. 33. メモリアクセスの仮想化 •  EPT(Extended Page Table)" –  Nehalemからの機能" –  通常のページングと同様にページテーブルを 作成、VMCSにセット" –  アドレスはCR3レジスタで変換され、更に
 EPTで変換される"
  34. 34. まとめ •  VMを動かすためのモードを作った" –  VMX root/non-root Mode" •  ヤバそうな命令はVMMに戻って処理" –  併せてメモリのアクセスもなんとかする" •  シャドウページング" •  EPT"
  35. 35. ご清聴ありがとうございました

×