Full、Para、Hardware assistedの仮想化の違いは何ですか?
質問
私は仮想化のトピックを進めていますが、基本的な概念を理解するのに完全に吸い寄せられています。Wikipediaはいくつかの関連情報を提供していますが、それは私が基本的な考えを理解するのに十分ではありません。コンセプトは 2 ~ 3 行になりますが、ネットでも本でもそれらを見つけることができません。
どなたか、この3種類の基本的な理解を教えていただければ幸いです。私は仮想化についてはよく知っていますし、よく理解していますが、この3つのタイプは...。
どのように解決するのですか?
-
準仮想化 は、ゲスト OS (仮想化されるもの) がゲストであることを認識し、それに応じてハードウェアコマンドを発行する代わりに、単にホスト OS に直接コマンドを発行するドライバを持っている仮想化です。これには、メモリやスレッドの管理も含まれ、通常、プロセッサに使用できない特権命令が必要になります。
-
完全仮想化 は、ゲスト OS が仮想化環境にいることを意識しない仮想化であり、したがってハードウェアはホスト OS によって仮想化され、ゲストは実際のハードウェアだと思っているものに対してコマンドを発行できますが、実際にはホストによって作成された単なるシミュレーションのハードウェア デバイスに過ぎないのです。
-
ハードウェア支援型仮想化 は完全仮想化の一種で、マイクロプロセッサのアーキテクチャがハードウェアの仮想化を支援する特別な命令を持っています。これらの命令により、仮想コンテキストをセットアップして、ゲストがホストに影響を与えることなくプロセッサ上で直接特権命令を実行できるようにすることができます。このような機能セットは、しばしば ハイパーバイザー . このような命令が存在しない場合でも、完全な仮想化は可能ですが、以下のようなソフトウェア技術によって行わなければなりません。 動的再コンパイル この場合、ホストはゲスト内の特権的な命令をその場で再コンパイルし、ホスト上で非特権的な方法で実行できるようにします。
-
というパラ仮想化と完全仮想化の組み合わせもあります。 ハイブリッド仮想化 ここでは、ゲスト OS の一部が特定のハードウェア ドライバーのために準仮想化を使用し、ホストが他の機能のために完全仮想化を使用します。これにより、ゲストを完全に準仮想化する必要なく、ゲスト上で優れたパフォーマンスが得られることがよくあります。この例を挙げます。ゲストはカーネル内の特権命令には完全仮想化を使用し、ゲスト内の特別なドライバを使用する IO 要求には準仮想化を使用します。この方法では、ゲスト OS は完全に準仮想化する必要はありませんが、ゲスト用の特別なドライバーを実装することにより、一部の準仮想化機能を利用することができます。
関連
-
[解決済み】TrapとInterruptの違いは何ですか?
-
[解決済み] トラップハンドラとは具体的にどのようなものですか?
-
[解決済み] OS:プログラムによって生成されるプロセスはいくつですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] オペレーティングシステムの開発を始めるためのリソースは?[クローズド]
-
[解決済み] ユーザー変数とシステム変数の違いは何ですか?
-
[解決済み] OSのユーザーモードとカーネルモードの違いは何ですか?
-
[解決済み] Goでos/platformを確実に検出する方法
-
[解決済み] ユーザーレベルのスレッドとカーネルがサポートするスレッドの違い?
-
[解決済み] 仮想メモリ」と「スワップ領域」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン