JP5042848B2 - 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法 - Google Patents

仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法 Download PDF

Info

Publication number
JP5042848B2
JP5042848B2 JP2007545682A JP2007545682A JP5042848B2 JP 5042848 B2 JP5042848 B2 JP 5042848B2 JP 2007545682 A JP2007545682 A JP 2007545682A JP 2007545682 A JP2007545682 A JP 2007545682A JP 5042848 B2 JP5042848 B2 JP 5042848B2
Authority
JP
Japan
Prior art keywords
privilege level
micro
hypervisor
platform
svm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007545682A
Other languages
English (en)
Other versions
JP2008523511A (ja
Inventor
アンドリュー アンダーソン
ベネット,スティーヴン
コタ−ロブレス,エリック
カギ,アラン
ネイジャー,ギルバート
マドゥッカルムクマナ,ラジェシュ
シェーンブルク,セバスティアン
アーリグ,リチャード
ロスマン,マイケル
ジマー,ヴィンセント
ジェヤシン,スタリンセルヴァラヤ
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2008523511A publication Critical patent/JP2008523511A/ja
Application granted granted Critical
Publication of JP5042848B2 publication Critical patent/JP5042848B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Description

本発明の実施例は、一般に仮想化プラットフォームに関し、特に、より低い特権レベルにおいて仮想マシン・モニタの構成部分を実行するためのシステム及び方法に関する。
仮想化プラットフォームにおいて仮想マシンを管理する種々の機構が存在している。一管理手法は、システム上で仮想マシン・モニタ(VMM)を実施することである。仮想マシン・モニタに一般的な2つのアーキテクチャが存在している。第1のアーキテクチャは、システム内の他のソフトウェア全てを、特権化されたハイパーバイザ(仮想マシン・モニタ)が制御するハイパーバイザ・アーキテクチャである。ハイパーバイザは、仮想マシン(VM)(本明細書ではゲストVMと表す)において実行するソフトウェアに供給したいデバイス全てのネイティブ・ドライバ及びモデルを含んでいなければならない。VMMのこのアーキテクチャでは、前述の必要性が問題になっている。ハイパーバイザ・アーキテクチャでは、VMMは、下にあるプラットフォームに対する完全なコントロールを有しており、プラットフォーム・ハードウェアに対するゲストVMのアクセスを制限し得る。ハイパーバイザは、ハードウェア全てに対するアクセスを有する。ゲストVMは、ハイパーバイザが許す場合にのみハードウェアを直接アクセスすることができる。ハイパーバイザ・システムは、ゲストVMがハードウェアを直接アクセスすることを阻止することができる(そのように設計されている場合)。ハイパーバイザが実現された場合、物理デバイス毎のデバイス・ドライバも実現されなければならない。物理デバイスが変わった(デバイスの別のバージョンによって置き換えられた)場合、新たな、又は代わりのデバイス・ドライバがハイパーバイザに存在していなければならない。通常、オペレーティング・システムは全て、VMにおいて実行する。VMは種々のやり方で特権化することができる。例えば、VM1が装置番号1に対するアクセスを有し得る一方、VM2は装置番号2に対するアクセスを有する。
VMMに一般的な第2のアーキテクチャは、ホストされたVMMである。このアーキテクチャでは、VMMは、ホスト・オペレーティング・システム(OS)に密接に結合され、ホストOSによって提供されるサービスを用いてその仮想化機能を実行する。このアーキテクチャでは、ホストOSは、プラットフォームに対する完全なコントロールを有する。VMM構成部分は、プラットフォームのゲストVMのコントロールを有する。すなわち、VMM構成部分は、下にあるハードウェアを直接制御しない。VMMは、ホストOSによって提供されるサービスを用いて、下にあるハードウェアにアクセスする。VMMの安定性は、ホストOSの安定性と同程度良好でしかない。ホストOSは、必要なデバイス・ドライバを全て有している。VMMは、ゲストVMに提示されるデバイス全てのモデルを実現しなければならない。このハイレベル・アーキテクチャによって実現されるVMMは、特定のホストOSに依存するので、移植性の制約を受ける。更に、スケジューリングを実行するためにホストOSに対する依存が存在している。VMMは、ゲストVMのスケジューリングを制御するが、ホストOSによって与えられる時間の量を制御しない。例えば、ホストOSがVMMを毎ミリ秒ウェークアップする旨を要求することは可能でないことがあり得る。
現在、いくつかの仮想化製品が存在している。例えば、ハイパーバイザ・ベースのアーキテクチャであるESXサーバは、VMウェア(登録商標)社から入手可能である。マイクロソフト(登録商標)社及びVMウェア(登録商標)社はともに、ホスト・ベースのアーキテクチャ・ソフトウェアを提供している。すなわち、マイクロソフト社はバーチャルPC及びバーチャル・サーバを提供しており、VMウェア(登録商標)社はVMワークステーション及びGSXサーバを提供している。現在、前述のソフトウェア・システムは、ハードウェア仮想化サポートを有していないサーバ上又はパソコン(PC)上にロードすることができる。
本発明の実施例は、仮想マシン・モニタの構成部分を特権化解除すること、及び、選択された機能を提供するよう特権化解除されたサービス仮想マシン(SVM)をイネーブルすることに関するシステム及び方法である。
本発明の実施例は、移植性及び信頼性を向上させた仮想マシン・モニタ(VMM)を構成することができる手段を提供する。本発明の実施例は、ハイパーバイザ・ベースのVMMアーキテクチャ及びホスト・ベースのVMMアーキテクチャアーキテクチャからの構成を用いたハイブリッドVMMである。少なくとも1つの実施例では、伝統的なVMMの機能は、マイクロハイパーバイザ(MH)と呼ばれる小さなプラットフォーム依存部分、及び、サービス仮想マシン(SVM)と呼ばれる1つ又は複数のプラットフォーム独立部分に区分することができる。 このハイブリッドVMMアーキテクチャは、既存のVMMソフトウェア・アーキテクチャに対して開発、検証、セキュリティ、信頼性及び可用性の利点をもたらす。
本発明の特徴及び利点は、本発明の以下の詳細な説明から明らかになるであろう。
本明細書において本発明の「one embodiment」又は「an embodiment」に言及していることは、その実施例に関して説明する特定の特徴、構造又は特性が本発明の少なくとも1つの実施例に含まれていることを意味している。よって、本明細書を通した種々の箇所に存在している句「in one embodiment」は必ずしもその全てが同じ実施例を表している訳でない。
説明の目的で、特定の構成及び詳細を表して、本発明が徹底的に分かるようにしている。しかし、本明細書記載の特定の詳細なしで本発明の実施例を実施することができるということは当業者には明らかであろう。更に、本発明を分かりにくくすることのないように周知の特徴を割愛又は単純化していることがあり得る。本明細書を通して種々の例を記載していることがあり得る。これらは、本発明の特定の実施例の説明に過ぎない。本発明の範囲は記載された例に限定されない。
本発明の実施例では、マイクロハイパーバイザは、SVMを含む仮想マシン(VM)間の要求のプロキシの役目を担い、分離ポリシー及びセキュリティ・ポリシーを実施するモジュールである。マイクロハイパーバイザの設計は、固有のプラットフォーム知識、及び特権リソース(例えば、プラットフォーム・チップセット等)に対するアクセスを必要とする。図2A乃至図2Bに関して説明するように、マイクロハイパーバイザは、最も特権化されたモードにおいて実行する。マイクロハイパーバイザは、システム・ブートの初期に(OSモジュールと同様に)ロードされるモジュールとして実現するか、又は、ホストOSからドライバとして、若しくは、システム・ファームウェアの一部として起動することができる。
図2A乃至図2Bに関して説明するように、SVMは、VMにおいて特権化解除モードで実行するプラットフォーム独立モジュールである。SVMは、市販のOS及びデバイス・ドライバ、又は1つ若しくは複数のプラットフォーム独立ファームウェア・モジュールをベースに構築することができる。SVMは、デバイス仮想化、実際のハードウェアに対する、又は他のSVMに対する要求のプロキシなどのサービスを提供することができる。
図1は、伝統的なハイパーバイザVMMアーキテクチャ・プラットフォーム100を示す構成図である。いくつかのゲストVM101、103、105及び107がプラットフォーム100上で同時に実行し得る。仮想マシン・モニタ(VMM)110は、ゲストVMの、ハードウェア120に対するアクセスを、プロセッサ/プラットフォーム仮想化層111によって制御する。いくつかの仮想デバイス・モデル113及び115がVMM110内に存在し得る。図2A乃至図2Bに関して以下に説明するように、VMM110は最高の特権レベルで動作し得る。以下に更に説明するように、VMM110は、ファイル・システム、メモリ及びデバイス全てに対するアクセスをコントロールする。VMM110は通常、プラットフォーム上のハードウェア・デバイス毎にデバイス・ドライバ119を有する。
VMM110、並びにゲストVMM101、103、105及び107は、プラットフォーム・ハードウェア120上で実行する。プラットフォーム・ハードウェア120は、プロセッサ122、メモリ124、並びに、1つ又は複数のI/Oデバイス126及び128を含み得る。プラットフォーム・ハードウェアは、パソコン(PC)、メインフレーム、ハンドヘルド・デバイス、ポータブル型コンピュータ、セット・トップ・ボックス、又は何れかの他の計算機システムであり得る。
プロセッサ122は、ソフトウェアを実行することができる何れかのタイプのプロセッサ(マイクロプロセッサ、ディジタル信号プロセッサ、マイクロコントローラや同様なものなど)であり得る。図1は前述の1つのプロセッサ122しか示していないが、プラットフォーム・ハードウェア120には1つ又は複数のプロセッサがあり得る。1つ又は複数のプロセッサは、複数のスレッド、複数のコア、又は同様なものを含み得る。
メモリ124は、プロセッサ122によって読み取り可能なハード・ディスク、フロッピー(登録商標)・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、フラッシュ・メモリ、又は何れかの他のタイプの媒体であり得る。メモリ124は、本発明の方法実施例の実行を行う命令を記憶することができる。
1つ又は複数のI/O装置126及び128は例えば、システム・バス上のネットワーク・インタフェース・カード、通信ポート、ビデオ・コントローラ、ディスク・コントローラ(例えば、PCI(周辺機器の相互接続)、ISA(業界標準アーキテクチャ)、AGP(アドバンスト・グラフィクス・ポート))、チップセット・ロジック又はプロセッサに一体化されたデバイス(例えば、リアルタイム・クロック、プログラム可能タイマ、パーフォーマンス・カウンタ)や、プラットフォーム・ハードウェア120上の何れかの他のデバイスであり得る。1つ又は複数のI/Oデバイス126及び128は、当該技術分野において知られているI/O命令若しくはメモリ・マップI/Oアクセスによって、又は何れかの他の手段によってアクセスすることができる。
(本明細書ではIA-32 ISAとして表す)インテル社ペンティアム(登録商標)4を含む大半の命令セット・アーキテクチャ(ISA)は、命令セット・アーキテクチャにおける特権レベルのコンセプトで設計されている。前述の特権レベルは本明細書ではISA特権レベルとして表す、図2A及び図2Bを参照すれば、種々のISA特権レベルを備えたプラットフォームを示す構成図を示す。IA-32 ISAは例えば、4つのISA特権レベル(リング・レベル(リング-0 301、リング-1 303、リング-2 305及びリング-3 307)として表す)を有する。IA-32 ISAでは、リング-0 (301)が、最も特権化されたISA特権レベルである一方、リング-3 (307)は、最も特権化されていないISA特権レベルである。
ISA特権レベルをOSによって用いて、ユーザ・モードとカーネル・モードとの間で機能を区分する。既存のシステムでは、プロセッサ命令セット・アーキテクチャは通常、ハードウェアに対する完全なコントロール(すなわち、リング-0モード301)をOSコードに与えるよう設計される。ISAは、より低いISA特権レベル(すなわち、リング-1(303)、リング-2(305)及びリング-3(307))で他のソフトウェアが実行するためのコンテナをOSが作成することを可能にする。一般に、既存のシステムでは、OSコードは最高ISA特権レベル(すなわち、リング-0 301)で実行し、アプリケーションは最低ISA特権レベル(すなわち、リング-3 307)で実行する。デバイス・ドライバは通常、マイクロソフト(登録商標)社のウィンドウズ(登録商標)などの既存のOSにおける最高ISA特権レベルで実行する。既存のOSでは、一層多くのコードが最高ISA特権レベルで実行される。最高ISA特権レベルで実行されるコードのサイズが増大するにつれ、コード内の考えられる相互作用の計算量、及びコードの検証の計算量が増大する。前述の増大は、不完全なソフトウェアによるシステム・クラッシュの増加につながり得る。更に、既存のシステムは、構成部分間の明確なインタフェースがないこと、及び、何れかの定義済みインタフェースの使用の実施が満足でないことに問題を来している。
小さな特権化コア、及び特権化解除されたサービス構成部分を利用するという一般的な手法が、一部のシステムで試みられている。例えば、マイクロカーネルOSの研究 (Jochen Liedtkeによる「Toward Real Microkernels、September 1996/Vol. 39, No. 9 COMMUNICATIONS OF THE ACM参照」は、OSの一部を特権化解除する同様な手法を施そうとしている。マイクロカーネルは、OSの非常に小さな、完全特権化部分である。完全特権化部分はリング-0(IA-32の用語では)を用いているので、OSの残りは、単独で最高ISA特権レベルにマイクロカーネルがあることを可能にするために特権化解除されなければならない。OSは、より低いISA特権レベルで対処するために修正されなければならない。
別個のコンテナにおける構成部分が、直接互いに影響すること、又はマイクロカーネルの動作に影響することが可能でないように、マイクロカーネルは、より下のISA特権レベルで動作するコンテナに移動させることによってオペレーティング・システムの構成部分を分離する。一部のマイクロカーネルは、既存システムにおいて実現されているが、遅くて複雑であり、仮想化プラットフォーム用に開発されていない。
プラットフォームがハードウェア仮想化サポートを有する場合、特権を2つの特権空間に区分する新たなやり方を導入することができる。第1の特権空間は、前述のISA特権レベルである。第2の特権空間は、本明細書ではVM特権レベルとして表す。実施例では、2つのVM特権レベルが存在している。最高VM特権レベルはルート・オペレーション(311)として表される一方、より低いVM特権レベルは非ルート・オペレーション(320)として表される。一実施例では、VMM又はマイクロハイパーバイザはルート・オペレーション311で実行する。ゲストVMは、非ルート・オペレーション320で実行する。より高いVM特権レベルにおいて実行するソフトウェアは、低いVM特権レベルにおいて実行するソフトウェアのISA特権レベルにかかわらず、低いVM特権レベルにおいて実行するソフトウェアを制御することができる。一実施例では、何れのVM特権レベルにおけるソフトウェアも、プロセッサのISA特権レベル・アーキテクチャ(例えば、IA-32 ISAにおけるリング-0 (301a))を利用することができる。しかし、より低いVM特権レベル(例えば、非ルート・オペレーション320)において実行するリング-0ソフトウェアは、より高いVM特権レベル(例えば、ルート・オペレーション311)において実行するソフトウェアによってなお制御することができる。
一実施例では、特定の処理のVM特権レベル及びISA特権レベルは独立している。すなわち、VMMの構成部分は、最高VM特権レベルにおいて実行することができ、最低ISA特権レベルにおいても実行することができる。最高VM特権レベルにおいて、しかし、より低いISA特権レベル(例えば、IA-32 ISAにおけるリング-3)において実行するVMMコードの機能は、より低いVM特権レベルにおいて実行するゲスト・ソフトウェアの状態を直接、制御又は操作することができることにおいて制限され得る。前述の制限は、仮想化アーキテクチャによって課され得る(例えば、ハードウェアは、より低いISA特権レベル・コードが新たなVMを起動させることを阻止し得る)か、又は、最高VM特権レベルにおいて実行する最高ISA特権レベル・コードによって(例えば、ゲスト・ソフトウェアのメモリに対するアクセスによって、より低いISA特権レベルのコードのページ・テーブルを構成することによって)課され得る。
図3は、本発明の実施例による、ハイブリッド・アーキテクチャVMMを示す構成図である。ハイブリッド・アーキテクチャVMMは、ハイパーバイザ・ベースのVMMアーキテクチャ及びホスト・ベースのVMMアーキテクチャからの構成要素を用いる。 図1のVMM(110)、及びマイクロハイパーバイザ210は、最高VM特権レベルにおいて実行し、プラットフォーム・ハードウェア120及び220それぞれに対する完全なコントロールを有する。
ハイブリッド・アーキテクチャは、SVM201などの1つ又は複数のサービス仮想マシン(SVM)を利用することができる。SVM201は、ユーザレベルVMM211及びデバイス・モデル213を備え得る。SVM201内のデバイス・モデル213は、やはりSVM201内のハードウェア・ドライバ219と相互作用し得る。以下に説明するように、ハードウェア・ドライバ219は、マイクロハイパーバイザ210のコントロール下でプラットフォーム・ハードウェア220と通信する。図3は前述のSVM201を1つしか示していないが、以下に説明するようにシステム200において1つ又は複数のSVMが存在し得る。
マイクロハイパーバイザ210、サービスVM201並びにゲストVM203、205及び207は、プラットフォーム・ハードウェア220上で実行する。プラットフォーム・ハードウェア220は、プロセッサ222、メモリ224、並びに1つ又は複数のI/Oデバイス226及び228を含み得る。プラットフォーム・ハードウェア220は、パソコン(PC)、メインフレーム、ハンドヘルド・デバイス、ポータブル型コンピュータ、セット・トップ・ボックス、又は何れかの他の計算機システムのものであり得る。
プロセッサ222は、ソフトウェアを実行することができる何れかのタイプのプロセッサ(マイクロプロセッサ、ディジタル信号プロセッサ、マイクロコントローラや同様なものなど)であり得る。図3は前述の1つのプロセッサ222しか示していないが、プラットフォーム・ハードウェア220には1つ又は複数のプロセッサがあり得る。1つ又は複数のプロセッサは、複数のスレッド、複数のコア、又は同様なものを含み得る。
メモリ224は、プロセッサ222によって読み取り可能なハード・ディスク、フロッピー(登録商標)・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、フラッシュ・メモリ、又は何れかの他のタイプのマシン媒体であり得る。
メモリ224は、本発明の方法実施例の実行を行う命令を記憶することができる。
1つ又は複数のI/O装置226及び228は例えば、システム・バス上のネットワーク・インタフェース・カード、通信ポート、ビデオ・コントローラ、ディスク・コントローラ(例えば、PCI、ISA、AGP)、チップセット・ロジック又はプロセッサに一体化されたデバイス(例えば、リアルタイム・クロック、プログラム可能タイマ、パーフォーマンス・カウンタ)や、プラットフォーム・ハードウェア220上の何れかの他のデバイスであり得る。1つ又は複数のI/Oデバイス226及び228は、I/O命令によって、又は、メモリ・マップI/Oアクセスによって、若しくは、当該技術分野において知られている何れかの他の手段によってアクセスすることができる。
一実施例では、マイクロハイパーバイザ210は、プラットフォーム・ハードウェア220に対する完全なアクセス、及びプラットフォーム・ハードウェア220のコントロールを有する。既存のホスト・ベースのVMMアーキテクチャ及びハイパーバイザ・ベースのVMMアーキテクチャでは、VMMにおけるデバイス・ドライバは、完全特権化モードで実行され得るものであり、よって、デバイス・アクセス及びその他のサービスは、よりリスクが高いオペレーションである。本明細書記載のハイブリッド・アーキテクチャでは、SVM201は、完全特権化レベルで実行せず、したがって、サービス及びデバイス・アクセスには、プラットフォームのインテグリティに対してより低いリスクがもたらされる。SVM201はデバイス・ドライバ、ファイル・システム及び全サービスを提供し得るが、前述の機能は、VM内で、特権化解除モードにおいて実行するものとする。SVM201は、ホスト・ベースのアーキテクチャにおいて、しかし、直接ホスト上ではなくVM内でホストOSが応える目的と同じ目的の一部に応える。VMMの一部分を、より低いVM特権レベルにおいて実行する利点は、VMMの、より低いVM特権レベル部分が最高ISA特権レベル(例えば、IA-32 ISAにおけるリング-0)において実行しても存在している。
ハイブリッド・アーキテクチャの実施例では、システム及びサービスを制御するホストOSは何ら存在していない。その代わりに、小さなマイクロハイパーバイザが、最高VM特権レベルにおいて実行する重要なサービスを制御する。1つ又は複数のSVMは、より低いVM特権レベルにおいて実行する他のサービスを提供することができる。例えば、SVMは、ハードウェア相互作用のサービスを提供することができる。SVMは、制限されたアクセスを、下にあるソフトウェアに対して有し得る。例えば、SVMは、制御するハードウェア・デバイスのみに制限されたアクセスを有し得る。よって、ハードウェア・コントロールは、ハードウェア・デバイスに対する認可されていないアクセスを不正なアプリケーションが有しないことを確実にするために区分することができる。
本発明の実施例は、修正なしでゲストVMにおいて既存のOSが実行し、ユーザが期待するアプリケーションに対するインタフェース及びサービスをなお提供することを可能にする。サービスは全て、その場合、サービスSVMを扱うのに適切なSVMを呼び出すマイクロハイパーバイザによって実行することができる。本発明の実施例では、より高いVM特権レベル(すなわち、図2のルート・オペレーション311)がプラットフォーム・ハードウェア上で実現されるので、このことが可能である。例えば、IBM370型コンピュータは、本発明の実施例をサポートする仮想化プラットフォームである。
VMMは、プラットフォームの何れかの特定の構成要素(メモリ、I/Oデバイス、DMAエンジン等を含む)をゲストVMがアクセスすることを可能にするか、又は阻止することができる。マイクロハイパーバイザは、特定のリソースに対するアクセスをゲストVMに与えることができる。例えば、少なくとも1つの記憶装置(すなわち、ディスク・ドライブ)に対するアクセスを有する記憶サービスを提供するSVMがあり得る。プラットフォーム拡張によって、例えば、前述の記憶装置に対するアクセスを与えられたSVMは、プラットフォーム上の他のハードウェア・デバイスに対してアクセスすることが阻止され得る。
一実施例では、SVMは、ゲストVMと同じVM特権レベルにおいて実行する。しかし、マイクロハイパーバイザは、全てのVMにアクセス可能な訳でない下にあるハードウェア・プラットフォームの構成部分にアクセスする機能をSVMに備えることができる。マイクロハイパーバイザは、仮想化プラットフォームにおける機構を用いて、特定のハードウェア・デバイス又はメモリをVMがアクセスすることを阻止する。例えば、特定のI/Oポートに対するアクセス全てによって、マイクロハイパーバイザへの移行が生じ得る。
一部のプラットフォームのハードウェア・アーキテクチャは、DMAアクセスによって物理メモリの全てが参照されることを阻止することが可能でない。DMAを行うことが可能なデバイスに対するアクセスをVMが与えられた場合、デバイスは、メモリ内のどこでもDMAを行うようプログラムすることができる。
一実施例では、DMAによってアクセス不能な、物理メモリ内のページをVMMが規定することができる機構をハードウェア・アーキテクチャが備えることができる。よって、ページは、デバイス全てから保護することができる。しかし、CPUバスからのアクセスは阻止されないことがあり得る。これは、誤った、又は不正なデバイスに対して保護し得る。
別の実施例では、ハードウェア・アーキテクチャは、デバイス単位でDMAによってアクセスできない、物理メモリ内のページをVMMが規定することができる機構を提供することができる。それによって、VMMが、特定のデバイスから物理メモリの特定のページに対するアクセスをDMAに与えるが他には与えないことが可能になる。
仮想化のためのハードウェア・サポートは、VMMによって用いる種々の機能を含み得る。一実施例では、VMMソフトウェアは、VMMへの移行がもたらされる、ゲストVMが実行中に生起し得るイベントを規定することができる。ゲストVMからVMMへの移行はVMエグジットとして表す。VMMからゲストVMへの移行はVMエントリとして表す。一実施例では、VMエントリは、VMMによって、特定のプロセッサ命令を実行することによって起動される。ハードウェアは、VMMによって設定されるポリシーに基づいて、最高特権化モード(すなわち、高いVM特権レベル)と、より低く特権化された、又は「特権化解除された」モード(すなわち、より低いVM特権レベル)との間をプラットフォームが往復して移行することを可能にする。VMエグジットを引き起こすためにVMMによって特定することができるイベント組は広くてもよい。イベントには、物理メモリを仮想化するためにVMMが用いることができるイベント全て(すなわち、VMMはゲストVMのページ・テーブルをコントロールすることができる)、割り込みおよび例外、I/O命令、特定のプロセッサ状態(マシン特有レジスタ(MSR)や制御レジスタ(例えば、IA-32 ISAにおけるCR0))に対するアクセス、及び同様なものが含まれ得るが、これらに限定されるものでない。このようにして、VMMは特定のプラットフォーム機能を仮想化することができる。
例えば、ゲストVMにおいて実行するOSがI/O命令を実行した場合、VMMは、このI/OイベントがVMM(すなわち特権モード)に対するVMエグジットを用いた移行を引き起こすことを規定することによってそのイベントをトラッピングすることができる。 一実施例では、VMMは、どのI/Oポート・アクセスがVMエグジットを引き起こすかを規定し、他のポートに対するアクセスを阻止する一方で、ゲストVMが特定のI/Oポートにアクセスすることを可能にすることができる。前述のVMエグジットが生起した場合、VMMはI/Oデバイスを仮想化するか、又は、サービスを提供し、必要なI/Oを実行することができる。これは、ゲストVMにはトランスペアレントであり得る。本発明の一実施例では、最高VM特権レベルにおいて実行するマイクロハイパ―バイザは、より下のVM特権レベルにおいて実行する、SVMに対するサービス要求のプロキシとしての役目を担い得る。SVMはその場合、例えば、記憶装置にアクセスするためのサービスを提供する。
一実施例では、仮想マシン制御構造(VMCS)として表す制御構造内のデータによって、より低いVM特権レベルにおいて実行するソフトウェアのオペレーションをコントロールすることができる。VMCSは、VMMへの移行を引き起こすか否かをイベント・タイプ毎に規定するコントロール組を含む。例えば、I/Oポート・アクセスの場合、IA-32プラットフォーム上でアクセス可能なI/Oポート毎にVMMがセット又はクリアすることができるビットが存在している。直接アクセスすることができるか、又はできないポートのリストが存在している。更に、他のコントロールに加えて、VMCSは、VMエントリ中及びVMエグジット中に状態が管理される方法、及び、VMにおいてソフトウェアが動作する方法を判定するコントロールを含み得る。他の機構及び/又はデータ構造を用いて前述のポリシーを規定することができることは当業者に明らかであろう。
図4は、本発明の実施例による、特権化解除サービス仮想マシンが入出力(I/O)オペレーションを扱う例示的なプロセスを示す。ハードウェア仮想化サポートを備えたプラットフォームでは、ブロック401において、マイクロハイパーバイザ(MH)がゲストVMを起動させ、ゲストVMにコントロールを移行する。ゲストVMは、入出力(I/O)オペレーションを実行しようとするまで、想定通りに実行する(ブロック403)。
ブロック405で、特権化I/Oポートに対するアクセスをI/Oオペレーションが必要とするか否かの判定を行う。前述の通り、特権化アクセスを必要とするI/Oポートのリストを、仮想マシン制御構造(VMCS)又はその他の実現構造において列挙することができる。I/Oポートに対するアクセスによってVMエグジットが生じ得る。上記アクセスが保護I/Oポートに対してでない場合、ブロック407で、I/Oアクセスは阻止されず、アクセスは当該ハードウェア・デバイスと直接通信する。実行は次いで、ブロック403で、別のI/Oオペレーションが試行されるまでゲストVMで続く(403)。
I/Oに加えて種々のハードウェア・イベントをこのやり方でトラッピングすることができることは当業者に明らかであろう。次に続く説明では、VMMへの移行を生じさせるイベントは何れも「サービス要求」として表す。VMMへの移行は、トラップとして表す。ゲストVMが、それをコントロールするVMMを知らず、プラットフォーム・ハードウェア上で直接実行しているとみていても「サービス要求」の語を用いる。マイクロハイパーバイザ及びSVMによって提供される「サービス」は例えば、プラットフォーム・デバイスのエミュレーション、又は、より高いレベルのサービスの提供を含み得る。例えば、一実施例では、SVMは、VM間通信のための共有メモリ・バッファを設定し、維持するための機能を提供することができる。別の実施例では、システムの性能、セキュリティ、信頼性等の向上のためにマイクロハイパーバイザ及びSVMの存在を知っているゲストVMに対してファイル・システム機能を提供することができる。サービス要求は、ゲストVMがI/O命令を実行すること、メモリの保護セグメントをアクセスすること、又は、マイクロハイパーバイザ若しくはSVMと(例えば、VMエグジットを引き起こす旨の命令の実行によって)明示的に通信することによって起動させることができる。図4に関する残りの説明はI/Oアクセス試行の扱いを詳説するが、これは、本明細書及び特許請求の範囲記載の本発明の適用可能性を何ら限定するものでない特定例である。SVMからのVMエグジットは、特別に扱い得る。例えば、SVMからの特定のVMエグジットは、SVM(すなわち、第2のSVM)の相互作用を何ら必要としないことがあり得るものであり、マイクロハイパーバイザにおいて直接扱い得る。このことは以下に更に説明する。
I/Oアクセス試行が特権化I/Oポートに対するものである場合、ブロック411で、プラットフォームは、ゲストVM実行から、マイクロハイパーバイザの実行に移行する。マイクロハイパーバイザは、ブロック413で、VMエグジットを引き起こすイベントを識別し、I/Oアクセスを扱うべきサービスVM(SVM)を判定する。マイクロハイパーバイザはブロック415で、I/Oアクセスを処理するために、選ばれたSVMにVMエントリによって入る。
特定の要求を扱うために適切なSVMの判定はいくつかの基準に基づいて行うことができる。一実施例では、全要求を扱う単一のSVMが存在している。この場合、要求に適切なSVMの判定は問題にならない。別の実施例では、特定のタイプの要求をそれぞれが扱う複数のSVMが存在している。前述の実施例では、マイクロハイパーバイザは、プロセッサ又はメモリの状態を検査することによって、又は、ゲストVMからのVMエグジットの原因を検査することによって(VMエグジットの一部としてのプロセッサによる実施例の場合)、要求のタイプを判定しなければならない。このタイプ情報を用いて、マイクロハイパーバイザは、要求タイプを当該SVMにマッピングするマッピング・テーブルやその他のデータ構造を調べる。更に別の実施例では、複数のSVMは同じタイプの要求を扱うことができる。マイクロハイパーバイザは、負荷分散、プロセッサ・アフィニティ、又はその他の選択基準に基づいて前述の複数の利用可能SVM間で選択することができる。特定の実施例では、マイクロハイパーバイザが、SVMによって規定されたポリシーを実現するだけの役割を果たして、前述のマッピング・テーブルの内容が1つ又は複数のSVMによって判定され得る。
SVMは、ブロック417で、I/Oアクセスを適宜、仮想化する。別々のI/O形態、又はその他のサービスをそれぞれが扱ういくつかのSVMが存在し得る。よって、SVMの実行は、プラットフォーム上の他のI/Oデバイスに対する認可されていないアクセスを可能にしない。要求されたI/Oの仮想化が完了すると、SVMは、ブロック419で、コントロールをもう一度マイクロハイパーバイザに移行させる。一実施では、この移行は、ゲストVM内のソフトウェアが、特定の命令を実行するか、又は、VMエグジットを引き起こす特定のイベントを引き起こすことによって起動させることができる。以下に説明するように、仮想化I/Oの結果がゲストVMによってアクセス可能であることを確実にした後、マイクロハイパーバイザは、ブロック421で、ゲストVMにコントロールを戻す。ゲストVMは、次のI/Oアクセス試行が生じるまで、ブロック403において通常の実行を続ける。
一実施例では、ゲストVMからマイクロハイパーバイザへの移行を引き起こす特定のイベントは、サービスVMへの移行をもたらさない。特定のイベントは、セキュリティ又は性能の理由でマイクロハイパーバイザにおいて扱われ得る。サービスVMは、そのために機能を実行するようマイクロハイパーバイザを構成することができる。マイクロハイパーバイザは、サービスVMによって規定されるポリシーをサポートするための機構を実現する。
例えば、物理メモリの仮想化に関連した頻繁に生起するイベントは、(サービスVMへの移行を除外することによって)システム性能の向上を容易にするためにマイクロハイパーバイザにおいて扱うことができる。例えば、システム・メモリを管理する役割を果たす特定のサービスVMは、特定のゲストVMが、物理メモリのページの組に対するアクセスを有することを示し得る。マイクロハイパーバイザはその場合、割り当てられていないメモリにゲストVMがアクセスするのを阻止するとともに、適切な機能を提供するために必要に応じて物理メモリの前述のページをゲストVMが用いることを管理する役割を果たす。SVM規定ポリシー(すなわち、特定のページ組を用いること)を実現するのに用いるアルゴリズムに応じて、物理メモリ内のページをゲストがアクセスするにつれ、ゲストVMからマイクロハイパーバイザへの頻繁な移行が生じ得る。マイクロハイパーバイザは、サービスVMを関係させることなく(、かつ、コントロールをサービスVMに移行するレーテンシを避けて)、イベントを扱い、ゲストVMにコントロールを戻すことができる。
一実施例では、マイクロハイパーバイザは、サービスVMとの相互作用なしで仮想マシン・システムのインテグリティを確実にするのに必要なセキュリティ機能を提供する。例えば、ゲスト物理アドレスからホスト物理アドレスへの変換は、保護されていなければならず、よって、マイクロハイパーバイザによって行われなければならない。別の実施例では、マイクロハイパーバイザは、DMAに用いる物理アドレスがメモリの保護領域又は禁止された領域に対するものでないことを確実にするために、プラットフォーム上の直接メモリ・アクセス(DMA)コントローラをプログラムする全試行を拒否し得る。前述の場合、SVMは、変換を実行するよう起動されない。しかし、アドレスを変換することが可能でない場合、SVMは通知される。
別の実施例では、マイクロハイパーバイザは、SVMの関与なしで、ゲストVMによって用いるセキュリティ機能を提供することができる。例えば、マイクロハイパーバイザは、データのパケットを暗号化する旨のゲストVMからのサービス要求に応答し得る。一実施例では、マイクロハイパーバイザは、何れのVM(何れのSVMも含む)もプラットフォーム・ベースのセキュリティ・デバイス(トラステッド・プラットフォーム・モジュール(TPM)など)をアクセスすることを可能にしないことがあり得る。
一実施例では、マイクロハイパーバイザには、限定数のデバイス・ドライバ及びデバイス・モデルが含まれる。このように含まれることによって、最高VM特権化レベルにおいて実行するコードのサイズが増大する。しかし、デバイス・ドライバ及びデバイス・モデルがこのように含まれることは、ゲストVMによって頻繁にアクセスされるデバイスの性能上の大きな利点をもたらし得る。例えば、プラットフォーム割り込みコントローラ(例えば、インテル(登録商標)82093 AA I/Oアドバンスト・プログラマブル割り込みコントローラ)は、ハードウェア割り込みの生起毎に数回アクセスすることができる。割り込みコントローラのデバイス・モデル及びドライバをマイクロハイパーバイザに含めることによって、(やはりこの機能を提供することが可能な)サービスVMへの移行が削減され、これによってシステム性能が向上する。このデバイスのデバイス・モデル及びドライバをマイクロハイパーバイザに含めることによって、サービスVMは、スケジューリング及び割り込みルーティングの判定全てを行う必要がある訳でなく、これによってやはりシステム性能が向上する。
SVMにおけるサービスの提供の一部として、マイクロハイパーバイザ又はSVMは、サービスを要求するゲストVMに対して特定の形式で結果又はデータを供給する必要があり得る。例えば、I/O命令を用いるゲストVMによってアクセスされるデバイスをエミュレートするうえで、SVM又はマイクロハイパーバイザは、プロセッサISAによって供給されるような結果をゲストVMがアクセスすることができるようにプロセッサ・レジスタ内又はメモリ内の期待値をゲストVMに戻すことによってゲストVMに結果を提供することができる。例えば、IA-32 ISAでは、I/Oデバイスにアクセスするために(すなわち、I/Oデバイスから値を読み出すために)IN命令を用いることができる。IA-32 ISAでは、用いられるIN命令の特定の形式に応じて、IN命令の結果は、IN命令のオペランドとして与えられるプロセッサ・レジスタ又はメモリ場所において戻され得る。SVM又はマイクロハイパーバイザは、ゲストVMに処理を戻す前にISAのこの特性をエミュレートする。SVMによって提供されるサービスがより複雑な場合、データ又は結果は、メモリ内の場所を介して、又は当該技術分野において知られている何れかの他の機構を用いて戻すことができる。
図5は、本発明の実施例による、マイクロハイパーバイザにおいて仮想化イベントを直接扱う例示的なプロセスを示す。例示的な実施例では、マイクロハイパーバイザはコントロールをゲストVM(501)に移行する。一実施例では、この移行は、プロセッサ命令を実行することによってマイクロハイパーバイザによって起動される。マイクロハイパーバイザは、要求されたサービスを実行するためにVMエグジットを待つか、又は、通常の監視機能を実行するよう周期的に動作し続けることができる。
仮想化イベント(例えば、ハードウェア割り込みが生起する、ゲストVMが、制御されたデバイス又はメモリ場所に対するアクセスを要求するか、又は、仮想化イベントを発生させるよう指定された選択されたシステム・サービスを要求する)が生起すると、VMエグジットが発生させられ得る。マイクロハイパーバイザは次いで、この仮想化イベント(503)によってコントロールを受ける。
マイクロハイパーバイザは、505で、通常、セキュリティ又は性能の目的でマイクロハイパーバイザによって仮想化イベントを直接扱うものとするか否かを判定する。マイクロハイパーバイザが仮想化イベントを扱うものとする場合、イベントは507で扱われ、コントロールは次いで、ゲストVMに戻され得る(501)。一実施例では、ゲストVMへコントロールが戻されることは、マイクロハイパーバイザがVMエンター命令を実行することによって起動される。
場合によっては、仮想化イベントは、SVMからの完了通知であり得る。SVMは、ゲストVMにおいて実行するので、他のゲストVMと同様に(通常、VMエグジットを引き起こすことを意図した命令をSVMが明示的に実行することによって引き起こされ得るVMエグジットにおいて)マイクロハイパーバイザにコントロールを移し得る。マイクロハイパーバイザは509で、先行SVM要求の完了をイベントが示すか否かを判定する。仮想化イベントが先行SVM要求の完了を示す場合、前述の通り、マイクロハイパーバイザは必要なデータ又は結果があればこれを、元のSVM要求を引き起こしたゲストVMに移す(511)。この移行は通常、VMエンター命令の実行によって行われる。
仮想化イベントがSVM完了イベントでなく、新たなサービス要求又はアクセス要求である場合、マイクロハイパーバイザは、このイベントを扱うのに適切なSVMを起動させる(513)。この移行は通常、SVMがゲストVMにおいて実行するので、VMエンターである。
マイクロハイパーバイザによって他の動作が可能であることは当業者に明らかであろう。例えば、マイクロハイパーバイザは、ゲストVM実行のスケジューリングを扱う場合、別のゲストVMを、イベントを扱うようSVMを513で起動させる代わりに、むしろ、もう1つのゲストVM実行時間を与えることを優先してこの要求を延期して、スケジューリングすることにし得る。例えば、SVMが、他の要求を待ってブロックされ、新たな要求を直ちに扱うことが可能でない場合、マイクロハイパーバイザはこのやり方をとることができる。あるいは、より高い優先度を有するゲストVM(例えば、リアルタイム・ゲストVM)が実行を待っている場合、マイクロハイパーバイザはこのスケジューリングを行うことができる。
本明細書及び特許請求の範囲記載の手法は、如何なる特定のハードウェア構成又はソフトウェア構成にも限定されるものでなく、何れの計算機環境、家電環境又は処理環境にも応用性を見出し得る。上記手法は、ハードウェア、ソフトウェア、又は両方の組み合わせで実現することができる。プロセッサ、プロセッサによってアクセス可能な記憶媒体(揮発性メモリ及び不揮発性メモリ、並びに/又は記憶素子をはじめとする)、少なくとも1つの入力装置、及び1つ又は複数の出力装置を含み得るプログラム可能マシン(モバイル・コンピュータや固定型コンピュータ、携帯情報端末、セット・トップ・ボックス、携帯電話機及びページャ、家電機器(DVDプレイヤ、パーソナル・ビデオ・レコーダ、パーソナル・ビデオ・プレイヤ、衛星受信機、ステレオ受信機、ケーブルTV受像機)やその他の電子装置など)上で実行するプログラムにおいて実現することができる。入力装置を用いて入力されたデータにプログラム・コードを施して、記述された機能を行い、出力情報を生成する。出力情報は1つ又は複数の出力装置に施すことができる。ハードウェアにおける仮想化のサポートを有する種々のシステム構成(マルチプロセッサ・システム、ミニコンピュータ、メーンフレーム・コンピュータ、別個の家電機器及び同様なものをはじめとする)によって本発明を実施することが可能であることを当業者は分かり得る。本発明は、通信ネットワークを介してリンクされた遠隔処理装置によってタスク又はその一部分を行うことができる分散計算環境において実施することも可能である。
各プログラムをハイレベルの手続型プログラミング言語又はオブジェクト指向型プログラミング言語で実現して処理システムと通信することができる。しかし、プログラムは、所望の場合、アセンブリ言語又はマシン言語で実現することができる。いずれの場合でも、言語はコンパイル言語又はインタープリタ言語であり得る。
プログラム命令を用いて、命令によってプログラムされた汎用処理システム又は特定用途向処理システムに本明細書及び特許請求の範囲記載の処理を行わせることができる。あるいは、処理を行うための配線論理を含む特定のハードウェア構成部分によって、又は、プログラムされたコンピュータ構成部分及びカスタムのハードウェア構成部分の何れかの組み合わせによって処理を行うことができる。本明細書及び特許請求の範囲記載の方法は、処理システムやその他の電子装置をプログラムして方法を行うのに用いることができる命令を上に記憶させたマシン・アクセス可能媒体を含み得るコンピュータ・プログラムとして提供することができる。本明細書及び特許請求の範囲記載の「マシン・アクセス可能媒体」の語は、マシンによって実行するための命令系列を記憶又は符号化することができ、本明細書及び特許請求の範囲記載の方法のうちの何れか1つをマシンに行わせる何れかの媒体を含むものとする。「マシン・アクセス可能媒体」の語はよって、データ信号を符号化するソリッドステート・メモリ、光ディスク及び磁気ディスク、並びに搬送波を含むが、前述のものに限定されるものでない。更に、一形態又は別の形態(例えば、プログラム、手順、処理、アプリケーション、モジュール、ロジック等)でのソフトウェアといえば、動作を行うか、又は結果を引き起こすものであることが当該技術分野において一般的である。前述の表記は、処理システムによるソフトウェアの実行が、結果を生じるという動作をプロセッサに行わせることを簡潔に言うやり方に過ぎない。
例証的な実施例を参照して本発明を説明したが、この説明は、限定的な意味合いで解されることを意図するものでない。本発明が関係する当該技術分野における当業者に明らかである本発明の例証的な実施例の種々の修正及びその他の実施例は、本発明の趣旨及び範囲内に収まるものと認められる。
伝統的なハイパーバイザ仮想マシン・モニタ(VMM)のアーキテクチャ・プラットフォームを示す構成図である。 本発明の実施例による、IA-32アーキテクチャ・プラットフォーム、及びハードウェア仮想化サポートを備えたプラットフォームにおける種々の特権レベルを示す図である。 本発明の実施例による、IA-32アーキテクチャ・プラットフォーム、及びハードウェア仮想化サポートを備えたプラットフォームにおける種々の特権レベルを示す図である。 本発明の実施例による、ハイブリッド・アーキテクチャVMMを示す構成図である。 本発明の実施例による、入出力(I/O)処理を扱う、特権化解除アクセスを備えたサービス仮想マシンのための例示的な方法を示す流れ図である。 本発明の実施例による、マイクロハイパーバイザによって実行される例示的な方法を示す流れ図である。

Claims (19)

  1. コンピュータ・プラットフォーム上で実行する仮想マシン・モニタの構成部分を特権化解除するためのコンピュータ・システムであって、
    複数の命令セット・アーキテクチャ(ISA)特権レベルを有するプラットフォームであって、前記プラットフォームは複数の仮想マシン(VM)特権レベルを備え、前記プラットフォームは、前記VM特権レベル間で移行すプラットフォームと、
    前記プラットフォーム上の前記VM特権レベルのうちの最高のVM特権レベルであるルート・オペレーションで実行するための、仮想マシン・モニタ(VMM)の一部であるマイクロハイパーバイザ部分であっ、前記プラットフォームが、選択されたトラッピングされたイベントに応じてプログラム実行を前記マイクロハイパーバイザ部分に自動的に移行し、前記選択されたトラッピングされたイベントは仮想マシンにおいて生じる、VMMの一部であるマイクロハイパーバイザ部分と、
    前記マイクロハイパーバイザ部分によって動作される前記ルート・オペレーションよりも低い非ルート・オペレーションで実行するための前記VMMの一部である少なくとも1つのサービス仮想マシン(SVM)部分とを備、前記マイクロハイパーバイザ部分は、前記選択されたトラッピングされたイベントのうちの少なくとも1つの処理のために、前記少なくとも1つのSVM部分に、前記プラットフォーム上のプログラム実行を移行し、前記VM特権レベルのうちの第1のVM特権レベルにおける第1のソフトウェアは、記第1のVM特権レベルよりも低い、前記VM特権レベルのうちの第2のVM特権レベル第2のソフトウェアを、前記第1のVM特権レベルよりも低い前記第2のVM特権レベルにおける前記第2のソフトウェアに与えられるISA特権レベルにかかわらず制御するシステム。
  2. 請求項1記載のシステムであって、前記プラットフォーム上の第1のゲスト仮想マシンにおいて実行する第1のオペレーティング・システムが、前記マイクロハイパーバイザ部分によって動作されるVM特権レベルよりも低いVM特権レベルにおいて実行するシステム。
  3. 請求項2記載のシステムであって、トラッピングされたイベントは、前記第1のオペレーティング・システム下で実行するゲスト・ソフトウェアがサービスを要求した場合に引き起こされるシステム。
  4. 請求項2記載のシステムであって、前記第1のオペレーティング・システムの少なくとも1つの部分が、前記プラットフォームの最高ISA特権レベルにおいて動作するシステム。
  5. 請求項2記載のシステムであって、それぞれが、個別の更なる仮想マシンにおいて実行する対象である複数の更なるオペレーティング・システムを更に備えており、前記複数の更なるオペレーティング・システムが、前記マイクロハイパーバイザ部分によって動作されるVM特権レベルよりも低いVM特権レベルにおいて実行する対象であるシステム。
  6. 請求項1記載のシステムであって、前記少なくとも1つのSVM部分は、選択された少なくとも1つの構成部分に対するアクセスに制限されるシステム。
  7. 請求項1記載のシステムであって、前記マイクロハイパーバイザ部分が、ブートするオペレーティング・システムからドライバとして起動されるシステム。
  8. 請求項1記載のシステムであって、前記マイクロハイパーバイザ部分は、通信するよう前記プラットフォームに結合されるシステム・ファームウェアに存在するシステム。
  9. 請求項1記載のシステムであって、前記マイクロハイパーバイザ部分が、システム・ブート中にロードされるシステム。
  10. 請求項1記載のシステムであって、前記少なくとも1つのSVM部分が、ハードウェア装置のサービスを提供するシステム。
  11. 複数の命令セット・アーキテクチャ(ISA)特権レベルを有するコンピュータ・プラットフォーム上で実行する仮想マシン・モニタ(VMM)におけるサービスを特権化解除する方法であって、前記プラットフォームは、複数の仮想マシン(VM)特権レベルを備え、前記方法は、
    前記VM特権レベルのうちの最高のVM特権レベルであるルート・オペレーションで実行するVMMのマイクロハイパーバイザ部分から前記プラットフォームにおけるゲスト仮想マシン(VM)にコントロールを移行する工程を含み、前記ゲストVMが、前記マイクロハイパーバイザ部分によって動作される前記ルート・オペレーションよりも低い非ルート・オペレーションで実行、前記方法は、
    前記ゲスト仮想マシン(VM)において生じる仮想化イベントに応じて前記マイクロハイパーバイザ部分により、コントロールを受ける工程と、
    前記仮想化イベントを処理するために、前記VMMの複数のサービス仮想マシン(SVM)のうちの1つを前記マイクロハイパーバイザ部分によって選択する工程と、
    前記仮想化イベントについて前記選択されたSVMにコントロールを移す工程とを更に含み、前記SVMが、前記マイクロハイパーバイザ部分によって動作される前記ルート・オペレーションよりも低い、前記VM特権レベルのうちの第1のVM特権レベルで実行する対象であり、前記方法は、
    前記仮想化イベントをサービスするために前記選択されたSVMの実行を起動させる工程と、
    前記仮想化イベントに対するサービスを完了すると、前記マイクロハイパーバイザ部分にコントロールを戻す工程と、
    コントロールを前記ゲスト仮想マシン(VM)に前記マイクロハイパーバイザによって戻す工程と
    を更に含み、前記VM特権レベルのうちの第2のVM特権レベルで実行する第1のソフトウェアは、前記VM特権レベルのうちの前記第のVM特権レベルよりも低い、前記VM特権レベルのうちののVM特権レベル実行する第2のソフトウェアを、前記第2のVM特権レベルよりも低い前記第3のVM特権レベルで実行する前記第2のソフトウェアに与えられるISA特権レベルにかかわらず制御する方法。
  12. 請求項11記載の方法であって、前記選択されたSVMは前記マイクロハイパーバイザの一部分であり、前記方法は、第2のゲスト仮想マシン(VM)にコントロールを明示的に移行することなく前記仮想化イベントを前記マイクロハイパーバイザ部分によって局所的に処理する工程を更に含む方法。
  13. 請求項11記載の方法であって、前記方法は、イベントのトラッピングをハードウェア仮想化システムによってイネーブルする工程を更に含む方法。
  14. 請求項11記載の方法であって、前記ゲスト仮想マシンにコントロールを移行する前に、仮想マシン制御構造(VMCS)においてトラッピングされる対象の少なくとも1つのイベント・タイプを列挙する工程を更に備えており、前記VMCSは、イベント・タイプ毎に、前記イベント・タイプが、前記マイクロハイパーバイザ部分への移行を引き起こす対象であるか否かを規定するコントロール組を備える方法。
  15. 請求項11記載の方法であって、前記方法は、前記マイクロハイパーバイザ部分、ゲストVM、及びSVM部分のうちでコントロールを移行する工程を、ハードウェア仮想化システムによってイネーブルする工程を更に含む方法。
  16. 複数の命令セット・アーキテクチャ(ISA)特権レベルを有するコンピュータ・プラットフォーム上で実行する仮想マシン・モニタにおけるサービスを特権化解除する、マシン・アクセス可能な記憶媒体であって、前記プラットフォームは、複数の仮想マシン(VM)特権レベルを含み、前記プラットフォーム上で実行されると前記プラットフォームに機能を行わせる、記憶させた命令を有し、前記機能は、
    前記VM特権レベルのうちの最高のVM特権レベルであるルート・オペレーションで実行するVMMのマイクロハイパーバイザ部分から前記プラットフォームにおけるゲスト仮想マシン(VM)にコントロールを移行する機能を含み、前記ゲスト仮想マシン(VM)が、前記マイクロハイパーバイザ部分によって動作される前記ルート・オペレーションよりも低い非ルート・オペレーションで実行、前記機能は、
    前記ゲストVMにおいて生じる仮想化イベントに応じて前記マイクロハイパーバイザ部分により、コントロールを受ける機能と、
    前記仮想化イベントを処理するために、前記VMMの複数のサービス仮想マシン(SVM)のうちの1つを前記マイクロハイパーバイザ部分によって選択する機能と、
    前記選択されたSVMにコントロールを移す機能とを更に含み、前記SVMが、前記マイクロハイパーバイザ部分によって動作される前記ルート・オペレーションよりも低い、前記VM特権レベルのうちの第1のVM特権レベルで実行する対象であり、前記機能は、
    前記仮想化イベントをサービスするために前記選択されたSVMの実行を起動させる機能と、
    前記仮想化イベントに対するサービスを完了すると、コントロールを前記マイクロハイパーバイザ部分に戻す機能と、
    コントロールを前記ゲスト仮想マシン(VM)に前記マイクロハイパーバイザによって戻す機能と
    を更に含み、前記VM特権レベルのうちののVM特権レベル実行する第1のソフトウェアは、前記VM特権レベルのうちの前記第のVM特権レベルよりも低い、前記VM特権レベルのうちののVM特権レベル実行する第2のソフトウェアを、前記第2のVM特権レベルよりも低い前記第3のVM特権レベルで実行する前記第2のソフトウェアに与えられるISA特権レベルにかかわらず制御する、マシン・アクセス可能な記憶媒体。
  17. 請求項16記載のマシン・アクセス可能な記憶媒体であって、仮想化イベントが、ハードウェア仮想化システムによってイネーブルされる、マシン・アクセス可能な記憶媒体。
  18. 請求項16記載のマシン・アクセス可能な記憶媒体であって、前記ゲスト仮想マシンにコントロールを移行する前に、アクセスされた場合、仮想マシン制御構造(VMCS)においてトラッピングされる対象の少なくとも1つのイベント・タイプを前記マシンに列挙させる命令を更に備えており、前記VMCSは、イベント・タイプ毎に、前記イベント・タイプが、前記マイクロハイパーバイザ部分への移行を引き起こす対象であるか否かを規定するコントロール組を備えるマシン・アクセス可能な記憶媒体。
  19. 請求項16記載のマシン・アクセス可能な記憶媒体であって、前記マイクロハイパーバイザ部分、ゲストVM、及びSVM部分のうちでコントロールを移行する機能が、ハードウェア仮想化システムによってイネーブルされるマシン・アクセス可能な記憶媒体。
JP2007545682A 2004-12-10 2005-12-09 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法 Expired - Fee Related JP5042848B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/008,911 2004-12-10
US11/008,911 US7757231B2 (en) 2004-12-10 2004-12-10 System and method to deprivilege components of a virtual machine monitor
PCT/US2005/044701 WO2006063274A1 (en) 2004-12-10 2005-12-09 System and method to deprivilege components of a virtual machine monitor

Publications (2)

Publication Number Publication Date
JP2008523511A JP2008523511A (ja) 2008-07-03
JP5042848B2 true JP5042848B2 (ja) 2012-10-03

Family

ID=36123076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007545682A Expired - Fee Related JP5042848B2 (ja) 2004-12-10 2005-12-09 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法

Country Status (6)

Country Link
US (1) US7757231B2 (ja)
EP (1) EP1839142A1 (ja)
JP (1) JP5042848B2 (ja)
KR (1) KR100984203B1 (ja)
CN (1) CN101076781A (ja)
WO (1) WO2006063274A1 (ja)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380119B2 (en) * 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7484091B2 (en) * 2004-04-29 2009-01-27 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
EP1669864B1 (en) * 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US7765544B2 (en) * 2004-12-17 2010-07-27 Intel Corporation Method, apparatus and system for improving security in a virtual machine host
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8578385B2 (en) * 2005-04-21 2013-11-05 Microsoft Corporation Method and system for virtual service isolation
CN100547515C (zh) * 2005-07-15 2009-10-07 联想(北京)有限公司 支持可信计算的虚拟机系统及在其上实现可信计算的方法
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US8528107B1 (en) * 2005-09-19 2013-09-03 Vmware, Inc. Enforcing restrictions related to a virtualized computer environment
US20090106754A1 (en) * 2005-12-10 2009-04-23 Benjamin Liu Handling a device related operation in a virtualization enviroment
US7840964B2 (en) * 2005-12-30 2010-11-23 Intel Corporation Mechanism to transition control between components in a virtual machine environment
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7814307B2 (en) * 2006-03-16 2010-10-12 Microsoft Corporation Fast booting a computing device to a specialized experience
US8042109B2 (en) 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US20070234412A1 (en) * 2006-03-29 2007-10-04 Smith Ned M Using a proxy for endpoint access control
US8332940B2 (en) * 2006-04-11 2012-12-11 Installfree, Inc. Techniques for securing a computing environment
EP2057543A4 (en) * 2006-08-07 2012-07-04 Oracle Int Corp SYSTEM AND METHOD FOR VIRTUALIZING EQUIPMENT IN A VIRTUAL MACHINE ENVIRONMENT
US7870336B2 (en) * 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
KR100790304B1 (ko) * 2006-11-10 2008-01-02 주식회사 대우일렉트로닉스 자바 가상 머신과 운영 체제의 스케줄링 실행방법
JP5100133B2 (ja) * 2007-01-19 2012-12-19 株式会社東芝 情報処理装置
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
US20080235000A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing security control practice omission decisions from service emulation indications
US20080235001A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing emulation decisions in response to software evaluations or the like
US9378108B2 (en) * 2007-03-22 2016-06-28 Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US20080234998A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Coordinating instances of a thread or other service in emulation
US8874425B2 (en) * 2007-03-22 2014-10-28 The Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US8438609B2 (en) * 2007-03-22 2013-05-07 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US8495708B2 (en) * 2007-03-22 2013-07-23 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US9558019B2 (en) * 2007-03-22 2017-01-31 Invention Science Fund I, Llc Coordinating instances of a thread or other service in emulation
US8689288B2 (en) * 2007-04-16 2014-04-01 Samsung Electronics Co., Ltd. Apparatus and method for protecting system in virtualized environment
JP5496464B2 (ja) * 2007-04-16 2014-05-21 三星電子株式会社 仮想化環境での安全なシステム保護装置および方法
US8527673B2 (en) 2007-05-23 2013-09-03 Vmware, Inc. Direct access to a hardware device for virtual machines of a virtualized computer system
US8127292B1 (en) * 2007-06-22 2012-02-28 Parallels Holdings, Ltd. Virtualization system with hypervisor embedded in bios or using extensible firmware interface
CN101334751B (zh) * 2007-06-29 2010-04-14 联想(北京)有限公司 虚拟机监视器识别客户操作系统中进程的方法及装置
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8799903B1 (en) * 2007-07-31 2014-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for exchanging runtime functionalities between software stacks
US8370559B2 (en) * 2007-09-28 2013-02-05 Intel Corporation Executing a protected device model in a virtual machine
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8839237B2 (en) * 2007-12-31 2014-09-16 Intel Corporation Method and apparatus for tamper resistant communication in a virtualization enabled platform
CN101216777B (zh) * 2008-01-11 2010-11-03 华中科技大学 一种多虚拟机环境下的快速部署系统
US8719936B2 (en) * 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US8468535B1 (en) 2008-09-23 2013-06-18 Gogrid, LLC Automated system and method to provision and allocate hosting resources
CN101488113B (zh) * 2008-11-25 2014-07-30 华为技术有限公司 一种设备驱动域的实现方法、系统及装置
US8239938B2 (en) * 2008-12-08 2012-08-07 Nvidia Corporation Centralized device virtualization layer for heterogeneous processing units
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
US8689213B2 (en) * 2009-12-14 2014-04-01 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
CN102754077B (zh) 2009-12-14 2015-11-25 思杰系统有限公司 可从外部媒体装置引导的安全虚拟化环境
US9342335B2 (en) * 2009-12-23 2016-05-17 Open Innovation Network, LLC Systems, methods and computer readable media for managing multiple virtual machines
CN102158386B (zh) * 2010-02-11 2015-06-03 威睿公司 系统管理程序级的分布式负载平衡
KR20110094764A (ko) * 2010-02-17 2011-08-24 삼성전자주식회사 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US8938782B2 (en) * 2010-03-15 2015-01-20 Symantec Corporation Systems and methods for providing network access control in virtual environments
US8601226B1 (en) 2010-05-20 2013-12-03 Gogrid, LLC System and method for storing server images in a hosting system
US10474875B2 (en) 2010-06-07 2019-11-12 Affectiva, Inc. Image analysis using a semiconductor processor for facial evaluation
US9052965B2 (en) 2010-06-10 2015-06-09 Hewlett-Packard Development Company, L.P. Virtual machine for execution on multiple computing systems
US8181176B2 (en) * 2010-06-21 2012-05-15 Intel Corporation Uniform storage device access using partial virtual machine executing within a secure enclave session
EP3029592B1 (en) * 2010-08-18 2018-07-25 Security First Corp. Systems and methods for securing virtual machine computing environments
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US20150121003A1 (en) * 2010-09-07 2015-04-30 Daniel L. Rosenband Storage controllers
US8789042B2 (en) * 2010-09-27 2014-07-22 Mips Technologies, Inc. Microprocessor system for virtual machine execution
CN101976200B (zh) * 2010-10-15 2013-05-08 浙江大学 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统
US8910155B1 (en) * 2010-11-02 2014-12-09 Symantec Corporation Methods and systems for injecting endpoint management agents into virtual machines
US8892788B2 (en) * 2011-02-22 2014-11-18 Red Hat Israel, Ltd. Exposing a DMA engine to guests in a virtual machine system
JP5809362B2 (ja) 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信
GB2507226B (en) 2011-08-30 2020-04-22 Hewlett Packard Development Co Virtual high privilege mode for a system management request
US8826275B2 (en) 2011-09-01 2014-09-02 Ca, Inc. System and method for self-aware virtual machine image deployment enforcement
US8695010B2 (en) 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
US10310879B2 (en) * 2011-10-10 2019-06-04 Nvidia Corporation Paravirtualized virtual GPU
US9176763B2 (en) 2011-11-28 2015-11-03 Ravello Systems Ltd. Apparatus and method thereof for efficient execution of a guest in a virtualized environment
TWI459296B (zh) * 2012-02-21 2014-11-01 Hon Hai Prec Ind Co Ltd 增加伺服器的虛擬機配置數量的方法
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US9916456B2 (en) 2012-04-06 2018-03-13 Security First Corp. Systems and methods for securing and restoring virtual machines
ES2439804B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para virtualizar un recurso de hardware asociado a un sistema informático
TWI471734B (zh) * 2012-06-28 2015-02-01 Galaxy Software Services Corp 雲端服務系統及雲端服務方法
WO2014100273A1 (en) * 2012-12-18 2014-06-26 Dynavisor, Inc. Dynamic device virtualization
JP2013061994A (ja) * 2013-01-07 2013-04-04 Fujitsu Ltd ウイルス検出プログラム、ウイルス検出方法、監視プログラム、監視方法、及びコンピュータ
US9575789B1 (en) * 2013-06-26 2017-02-21 Veritas Technologies Systems and methods for enabling migratory virtual machines to expedite access to resources
US20150007196A1 (en) * 2013-06-28 2015-01-01 Intel Corporation Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
US9697027B1 (en) * 2013-07-02 2017-07-04 Ca, Inc. Hypercall-based security for hypervisors
TWI530954B (zh) 2013-11-22 2016-04-21 新唐科技股份有限公司 保護非揮發性記憶體中儲存之程式碼的裝置
US9507617B1 (en) * 2013-12-02 2016-11-29 Trend Micro Incorporated Inter-virtual machine communication using pseudo devices
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US20150205962A1 (en) * 2014-01-23 2015-07-23 Cylent Systems, Inc. Behavioral analytics driven host-based malicious behavior and data exfiltration disruption
US9652631B2 (en) * 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
DE102014209592A1 (de) 2014-05-20 2015-11-26 Robert Bosch Gmbh Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
US10162655B2 (en) * 2014-06-23 2018-12-25 Vmware, Inc. Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
US10019275B2 (en) 2014-06-23 2018-07-10 Vmware, Inc. Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US10255090B2 (en) 2014-06-23 2019-04-09 Vmware, Inc. Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US9792222B2 (en) * 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
US9680862B2 (en) 2014-07-01 2017-06-13 Fireeye, Inc. Trusted threat-aware microvisor
JP2014225302A (ja) * 2014-09-08 2014-12-04 富士通株式会社 ウイルス検出プログラム、ウイルス検出方法、及びコンピュータ
WO2016105232A1 (en) 2014-12-25 2016-06-30 Siemens Aktiengesellschaft Increasing the level of security for micro-hypervisor based virtualization platforms
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US10230693B2 (en) 2015-01-29 2019-03-12 WebCloak, LLC Safechannel encrypted messaging system
CN104598842B (zh) * 2015-02-03 2018-05-01 中国电子科技集团公司第三十研究所 一种虚拟机监控器信任域分割方法
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10956571B2 (en) * 2015-05-15 2021-03-23 Intel Corporation Kernel runtime integrity using processor assists
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
KR101754334B1 (ko) * 2015-07-14 2017-07-19 서울대학교산학협력단 하이퍼바이저를 이용한 로깅 방법 및 그 장치
DE102015214389A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren einer auf einer physischen Maschine unter einem Hypervisor betriebenen virtuellen Maschine
DE102015214385A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) * 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
US9886303B2 (en) * 2016-06-15 2018-02-06 International Business Machines Corporation Specialized micro-hypervisors for unikernels
CN107566319B (zh) * 2016-06-30 2021-01-26 中央大学 虚拟机器即时转移方法
US10348838B2 (en) * 2016-07-22 2019-07-09 Cisco Technology, Inc. Scaling service discovery in a micro-service environment
US11412053B2 (en) 2016-07-22 2022-08-09 Cisco Technology, Inc. Scaling service discovery in a micro-service environment
US10191861B1 (en) 2016-09-06 2019-01-29 Fireeye, Inc. Technique for implementing memory views using a layered virtualization architecture
US11824863B2 (en) * 2016-11-03 2023-11-21 Nicira, Inc. Performing services on a host
EP3891633B1 (en) * 2018-12-03 2023-01-25 Nagravision Sàrl Secure deployment and operation of a virtual platform system
CN109858288B (zh) * 2018-12-26 2021-04-13 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
US11115324B2 (en) 2019-08-27 2021-09-07 Nokia Solutions Networks Oy System and method for performing segment routing over an MPLS network
US11442873B2 (en) * 2019-09-06 2022-09-13 Meta Platforms Technologies, Llc Microkernel architecture with enhanced reliability and security
US11314522B2 (en) 2020-02-26 2022-04-26 Red Hat, Inc. Fast boot resource allocation for virtual machines
US11586458B2 (en) 2020-02-26 2023-02-21 Red Hat, Inc. Fast device discovery for virtual machines
CN111547270A (zh) * 2020-04-22 2020-08-18 中国电子科技集团公司电子科学研究院 一种卫星电子一体化处理系统及微纳卫星
KR20220077694A (ko) * 2020-12-02 2022-06-09 삼성전자주식회사 하이퍼바이저를 이용한 가상 머신 모니터링 방법 및 이를 지원하는 전자 장치
CN113297563B (zh) * 2021-06-18 2023-01-24 海光信息技术股份有限公司 访问片上系统特权资源的方法、装置及片上系统
CN114520825B (zh) * 2022-01-07 2023-12-26 中汽创智科技有限公司 一种基于分布式的Hypervisor微内核架构、通信方法及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
JP3630087B2 (ja) 2000-05-10 2005-03-16 日本電気株式会社 自動データ処理装置
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements

Also Published As

Publication number Publication date
EP1839142A1 (en) 2007-10-03
KR20070086843A (ko) 2007-08-27
KR100984203B1 (ko) 2010-09-28
US20060130060A1 (en) 2006-06-15
CN101076781A (zh) 2007-11-21
WO2006063274A1 (en) 2006-06-15
JP2008523511A (ja) 2008-07-03
US7757231B2 (en) 2010-07-13

Similar Documents

Publication Publication Date Title
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
Suzuki et al. {GPUvm}: Why Not Virtualizing {GPUs} at the Hypervisor?
EP2397943B1 (en) Uniform storage device by partial virtualization machine
RU2412468C2 (ru) Системы и способы многоуровневой обработки перехватов в виртуальной машинной среде
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
US7707341B1 (en) Virtualizing an interrupt controller
CA2915646C (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into (vm) virtualized memory
WO2015032312A1 (zh) 硬件资源访问方法及装置
US20150370592A1 (en) Hypervisor context switching using tlb tags in processors having more than two hierarchical privilege levels
US20150370591A1 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US20050204357A1 (en) Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology
JP2013516021A (ja) プロセッサコアのハイパーバイザ離隔
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US20160034300A1 (en) Information processing devicing and method
Vahidi et al. VETE: Virtualizing the Trusted Execution Environment
Kanda et al. SIGMA system: A multi-OS environment for embedded systems
Aguiar et al. A virtualization approach for MIPS-based MPSoCs
Dibble et al. Programming embedded systems: interacting with the embedded platform

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110805

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120711

R150 Certificate of patent or registration of utility model

Ref document number: 5042848

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees