web-dev-qa-db-ja.com

仮想マシンとハイパーバイザーの違い

「ハイパーバイザー」という用語をググると、ハイパーバイザーは仮想マシンモニターまたは仮想マシンマネージャーとも呼ばれ、それがハードウェア仮想化の形式。しかし、VMとその概念はまったく新しいため、これは私にはあいまいな定義です。

それでは、仮想マシンとそのハイパーバイザーの違いおよび/または関係は何ですか?誰かが具体的な例を挙げられますか?

29
pnongrata

ハイパーバイザーは実行仮想マシンであるデバイスまたはソフトウェアです。通常は、リソースの割り当てを担当し、仮想マシン(「ゲスト」)とホストシステムの間のインターフェース、および管理ソフトウェアを提供します。

したがって、VMware Workstationを使用してWindows 7仮想マシンを実行している場合、VMware Workstationがハイパーバイザーになります。

17
Coding Gorilla

このリンクを確認してください。 http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx

回答はベンアームストロングの仮想化ブログからです

ここに実際には「VMM」の2つの意味があります。 1つ目は「仮想メモリマネージャ」です。これはWindowsオペレーティングシステムの一部であり、コンピュータの仮想化とは何の関係もありません-オペレーティングシステムのメモリ管理とはすべて関係があります。これは私が今日話し合っていることではありません:-)

2番目の意味は「仮想マシンモニター」です。モニカ「仮想マシンモニタ」を使用するさまざまなプログラムと実装がいくつかあります。簡単に言えば、VMMは、VMMが担当する仮想マシンのポリシーを監視および適用するためのソフトウェアです。これは、VMMが仮想マシン内で発生するすべてを追跡し、必要に応じてリソースを提供したり、仮想マシンをリソースにリダイレクトしたり、リソースへのアクセスを拒否したりすることを意味します(VMMの異なる実装は、さまざまなレベルにリソースを提供またはリダイレクトしますが、それは別の日の議論のトピック)。

従来、VMMには2つのタイプがあります。

タイプII VMMは、ホスティングオペレーティングシステム上で実行され、上位レベルの仮想マシンを起動するVMMです。タイプII VMMの例には、JavaVMおよび.Net環境が含まれます。これらのVMMは仮想マシンを監視し、リソースのリクエストをホスティング環境内の適切なAPIにリダイレクトします(その間にある程度の処理が行われます)。

タイプI VMMは、ホスティングオペレーティングシステムを必要とせずにハードウェア上で直接実行されるVMMです。タイプI VMMは「ハイパーバイザー」とも呼ばれます。したがって、VMMとハイパーバイザーの唯一の真の違いは、それが実行される場所です。両方が提供する機能は同等です。タイプI VMMの例には、AmdahlやIBMなどの企業によって提供されるメインフレーム仮想化ソリューションや、VMware ESX、Xen、Windows仮想化などのソリューションによって最新のコンピューター上で提供されます。

5

これは、既存のオペレーティングシステムの用語を拡張したもので、 seed/nut metaphor に代わるいくつかの選択肢の1つです。 userプログラムはsupervisorプログラムによって制御され、非物事が停止する場所である仮想システム。仮想化では、supervisorは、hypervisorプログラム。

これらのプログラムはすべてソフトウェアです。 仮想マシンは、スーパーバイザおよびユーザープログラムが実行されていると感じるマシンのふりです。内側から見るとハードウェアのようです。

3
JdeBP

ハイパーバイザーの履歴に関するドンスキバ

私は、新しいシステム360をインストールしようとした1966年にIBMにいました。ご想像のとおり、古い「1401」、「1440」、「1410」、「7080」、「7090」モデルの「古いコード」をすべて変換することは、これまでに見たくない最大の混乱でした。 360モデル65では、いくつかの古いマシン用のエミュレーターがありました。実際、モデル75を除くすべての360モデルは、360命令セットのエミュレーターでした。モデル65で人気があったのは、IBM 7080のエミュレーターでした。ただし、マシンを360モードまたは7080モードのいずれかに専用にする必要がありました。それは私たちの顧客を非常に満足させるものではありませんでした。

モデル65には非アクティブであるいくつかの特殊レジスターがありましたが、モデル67ではアクティブであり、時分割に使用され、最終的には仮想オペレーティングシステムであるCMSであることがわかりました。これらのレジスタを使用してメモリの下半分で実行されているプログラムを上半分で実行されているプログラムと入れ替えて、どちらかが360または7080モードで動作できることを、モデル65のエンジニアが確信しました。スワッピング、モード設定、リソース(I/O)割り当てを行うための「小さな」コードが必要でした。私はフィラデルフィアのシステムエンジニアに、この関数を必死に必要とする顧客がいて、コードを書くように説得しました。当時、私たちはコードの多くの名前を投げました。 360より前は「オペレーティングシステム」がなく、以前のシステムにはすべて「スーパーバイザ」があったため、「ハイパーバイザ」が適切である可能性があることを示唆しました。それで、「ハイパーバイザー」は適切であると思われ、名前は固執しました。

2
Artru