仮想マシンとは–タイプと利点
仮想マシンの概念は1960年頃に導入されました。これは、タイムシェアリング技術の進化です。タイムシェアリング方式では、各プログラムはすべてのコンピュータリソースに完全にアクセスできますが、一度に実行されるプログラムは1つだけです。システムは、プログラムの状態を毎回保存および復元しながら、タイムスライス内のプログラムを切り替えます。タイムシェアリング方式を使用することで、複数のユーザーがコンピュータシステムを同時に使用できます。 IBMの研究センターは、タイムシェアリング方式を仮想マシンとして進化させました。 CP-67は、最初に利用可能な仮想マシンアーキテクチャでした 。単一のホスト上に複数の仮想マシンがあり、複数のホスト上に単一の仮想マシンがあるシステムが開発されました。
新しいハードウェアテクノロジーを起動する前に、まずエミュレーターでテストして、設計の欠陥を再現して修復し、必要な手順を実行します。同様に、新しいソフトウェアを導入する前に、エラーをチェックしてデバッグするためにシミュレーションされます。このタスクを実行するために、新しいテクノロジーを構築するためのメイン環境の代わりとして機能できるシステム。ここで仮想マシンが登場します。これは、物理システムの全機能を提供するコンピューターシステムのエミュレーションとして機能します。
仮想マシンとは何ですか?
新しいテクノロジーと新しい研究モデルの導入により、多くのハードウェアおよびソフトウェア製品が発売されています。ソフトウェアの多くはプラットフォームに依存しているため、ハードウェアリソースが限られているため、デバッグやチェックが難しい場合があります。
VM(仮想マシン)は、コンピューターシステムのエミュレーションであり、これらのマシンはコンピューターアーキテクチャを使用して、物理コンピューターの機能を提供します。仮想マシンが動作する物理デバイスはホストと呼ばれ、仮想マシンはゲストと呼ばれます。 1つのホストに複数のゲストを含めることができます。
仮想マシンの種類
仮想マシンはコンピューターのように機能し、ホストシステムの他の部分からサンドボックス化されます。ゲスト内のソフトウェアは、ホストシステムのソフトウェアに変更を加えることはできません。したがって、ウイルスファイルは、メインコンピュータシステムに影響を与えることなく、仮想マシンを使用してテストできます。仮想マシンを作成して実行するコンピューターソフトウェアは、ハイパーバイザーと呼ばれます。それらの機能に基づいて、仮想マシンには2つの異なるタイプがあります。システム仮想マシンとプロセス仮想マシンです。
1)。システム仮想マシン
これらのタイプのVMは、完全仮想化を提供します。これらは、実際のマシンの代わりとして機能し、オペレーティングシステム全体を実行する機能を提供します。ハードウェアリソースは共有および管理され、ホストシステム上に複数の環境を形成します。これらの環境は互いに分離されていますが、同じ物理ホスト上に存在します。したがって、これらはいくつかのシングルタスクオペレーティングシステム間でタイムシェアリングを提供します。
1台のコンピューターのオペレーティングシステム上の異なる仮想マシン間でメモリを共有できるようにするために、メモリオーバーコミットメントシステムを適用できます。同一のコンテンツを持つメモリページは、同じ物理ホスト上に存在する複数の仮想マシン間で共有できます。これは、読み取り専用ページに非常に役立ちます。
2)。プロセス仮想マシン(VM)
これらのVMは、アプリケーション仮想マシン、マネージドランタイム環境とも呼ばれます。このタイプのVMは、ホストのオペレーティングシステム内で通常のアプリケーションとして実行され、単一のプロセスをサポートします。プロセスの開始時に作成され、プロセスの終了時に破棄されます。これは、プラットフォームに依存しないプログラミング環境をプロセスに提供するために使用され、他のプラットフォームでも同じように実行できるようにします。
これらはインタープリターを使用して実装され、高レベルの抽象化を提供します。これらは、プログラムの実行にJava仮想マシンを使用するJavaプログラミングに広く使用されています。コンピュータークラスターの通信メカニズムを抽象化するプロセスVMの特殊なケースがあります。これらには、クラスター内の物理マシンごとに1つのプロセスが含まれます。これらは、プログラマーが相互接続と OSの仮想マシンによって提供される通信プロセスではなく、アルゴリズムに集中するのに役立ちます。 。これらのVMで実行されているアプリケーションは、すべてのオペレーティングシステムサービスにアクセスできます。 Parallel Virtual Machine、メッセージパッシングインターフェイスは、これらの仮想マシン(VM)の例です。
アーキテクチャ
ランタイムソフトウェアは、プロセスVMを実装する仮想化ソフトウェアです。これは、OSとハードウェアを組み合わせたレイヤーの上のコンピューターアーキテクチャのAPIレベルで実装されます。これは、ユーザーレベルの命令とOSまたはライブラリの呼び出しをエミュレートします。システム仮想マシンの場合、仮想化ソフトウェアは仮想マシンモニター(VMM)と呼ばれます。このソフトウェアは、ホストハードウェアマシンとゲストソフトウェアの間に存在します。 VMMはハードウェアISAをエミュレートし、ゲストソフトウェアが別のISAを実行できるようにします。
利点
仮想マシンの利点のいくつかは次のとおりです-
- 仮想マシンは、仮想マシン上で実行されているソフトウェアとのソフトウェア互換性を提供します。したがって、仮想化されたホスト用に作成されたすべてのソフトウェアは、仮想マシンでも実行されます。
- さまざまな種類のオペレーティングシステムとプロセスを分離します。したがって、1つの仮想マシンで実行されているプロセッサオペレーティングシステムは、他の仮想マシンとホストシステムのプロセスを変更できません。
- これらはカプセル化を提供し、仮想マシンに存在するソフトウェアを変更および制御できます。
- マルチオペレーティングシステムホストの場合、これらはデュアルブートなし、仮想マシン間のファイル転送、1つのOSのエラーがホストに存在する他のOSに影響を与えない、freashOSを簡単に追加できるなどのさまざまな機能を提供します。
- これらは、ホストマシンの完全なソフトウェアスタックを実行したり、レガシーOSを実行したりできるような、優れたソフトウェア管理を提供します。
- ここでは、ハードウェアリソースを独立したソフトウェアスタックと共有し、負荷を分散することができます。仮想マシンを別のコンピューターに転送できます。
したがって、最近のコンピューティングシステムはより複雑になり、密接に相互作用するさまざまなソフトウェアおよびハードウェアコンポーネントが含まれています。ここで、仮想化は相互接続テクノロジーとして機能します。仮想マシンは、互換性のないサブシステムを連携させます。また、複数のオペレーティングシステム間でハードウェアリソースをより柔軟かつ効果的に使用できます。これらは、ハードウェア、システムソフトウェア、およびアプリケーション間の相互運用性を提供します。プロセス仮想マシンとシステム仮想マシンの違いは何ですか?
埋め込み