[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2004526229A - 仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法 - Google Patents

仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法 Download PDF

Info

Publication number
JP2004526229A
JP2004526229A JP2002556364A JP2002556364A JP2004526229A JP 2004526229 A JP2004526229 A JP 2004526229A JP 2002556364 A JP2002556364 A JP 2002556364A JP 2002556364 A JP2002556364 A JP 2002556364A JP 2004526229 A JP2004526229 A JP 2004526229A
Authority
JP
Japan
Prior art keywords
vmm
address space
operating system
guest operating
virtual machine
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.)
Granted
Application number
JP2002556364A
Other languages
English (en)
Other versions
JP4021769B2 (ja
Inventor
チョウ,スティーブン
ネイジャー,ギルバート
コタ−ロブレス,エリック
ジェヤシン,ステイリンセルヴァラ
アーリッグ,リチャード
カギ,アラン
シューエンベルク,セバスチャン
コズック,マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2004526229A publication Critical patent/JP2004526229A/ja
Application granted granted Critical
Publication of JP4021769B2 publication Critical patent/JP4021769B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一実施形態では、アドレス空間の競合を解決するための方法には、ゲスト・オペレーティング・システムが仮想マシン・モニタの第1の部分によって占有されている領域にアクセスしようと試みたことを検出すること、ゲスト・オペレーティング・システムが、仮想マシン・モニタの第1の部分によって以前に占有されていた領域にアクセスできるようにするために、第1のアドレス空間内に仮想マシン・モニタの第1の部分を再配置することが含まれる。

Description

【0001】
発明の分野
本発明は、一般に仮想マシンに関し、より詳細には、仮想マシン・モニタとゲスト・オペレーティング・システムとの間のアドレス空間の競合を解決することに関する。
【0002】
発明の背景
従来の仮想マシン・モニタ(VMM)は、一般に、コンピュータ上で動作し、他のソフトウェアに1つまたは複数の仮想マシンのアブストラクションを提供する。それぞれの仮想マシンは、それ自体の「ゲスト・オペレーティング・システム」(すなわち、VMMによってホストされるオペレーティング・システム)を実行する自己完結型プラットフォームとして機能できる。ゲスト・オペレーティング・システムは、仮想マシンではなく、あたかも専用コンピュータとして動作するようになっている。つまり、ゲスト・オペレーティング・システムは、さまざまなコンピュータ・オペレーションを制御するようになっており、動作中、コンピュータの物理メモリおよびメモリマップされたI/Oデバイスへの無制限のアクセス権を有している。しかし、仮想マシン環境においては、VMMは、仮想マシンを、また仮想マシン相互間を保護するためにコンピュータのリソースに対して最大の制御権を持つべきである。このことを達成するために、VMMは一般に、ゲスト・オペレーティング・システムによって行われるコンピュータ・リソースへのすべてのアクセスを傍受し、仲裁する。
【0003】
既存のプロセッサ(たとえば、IA−32マイクロプロセッサ)を用いた場合、VMMは、VMMコードおよび/またはデータ構造の一部分がゲスト・オペレーティング・システムと同じ仮想アドレス空間内に置かれていなければ、ハードウェア・リソースへのゲスト・オペレーティング・システムのアクセスを傍受できないことがある。しかし、ゲスト・オペレーティング・システムは、VMMコードおよび/またはデータ構造がゲスト・オペレーティング・システムのアドレス空間内に常駐していることを予期していず、このアドレス空間内のVMMに占有されている領域にアクセスすることを試みる場合があり、そのため、ゲスト・オペレーティング・システムとVMMの間でアドレス空間の競合が起きる。この競合は、VMMまたはゲスト・オペレーティング・システムによって実施されたオペレーションの異常終了を引き起こすことがある。
【0004】
したがって、VMMとゲスト・オペレーティング・システムの間のアドレス空間の競合を検出し解決するメカニズムが必要である。
【0005】
添付図面内の図においては、本発明は例示として示したものであり、本発明を限定するものではない。ここで、同様の参照番号は同様の要素を示す。
【0006】
実施形態の説明
アドレス空間の競合を解決するための方法および装置について記述する。以下の記述においては、構成要素間の距離、モールディングのタイプなどの数々の詳細事項について記載する。しかし、本発明がこれらの特定の詳細事項がなくても実施できることは、当業者には自明であろう。他の例では、本発明が曖昧になることを避けるために、周知の構造およびデバイスが詳細事項ではなくブロック図形式で示してある。
【0007】
以下の記述では、説明のために、本発明の完全な理解を提供するための数々の特定の詳細事項について記載する。しかし、本発明がこれらの特定の詳細事項がなくても実践できることは、当業者には自明であろう。
【0008】
以下の詳細な記述のいくつかの部分は、コンピュータ・メモリ内のデータ・ビットのオペレーションのアルゴリズムおよびシンボル表示で提示してある。これらのアルゴリズムによる記述および表示は、データ処理技術分野の当業者が、当技術分野の他の者に自身の仕事の内容を最も効果的に伝えるために使用する手段である。アルゴリズムとは、ここでおよび一般に、所望の結果に導くための筋の通ったシーケンスのステップであると考えられる。ステップは、物理量の物理操作を伴うステップである。必ずしも必要とされるものではないが、通常、これらの量は、格納され、移転され、合成され、比較され、それ以外の操作がなされることが可能な電気または磁気信号の形をとる。主に共通に使用するためであるが、時にはこれらの信号をビット、値、要素、記号、文字、項、数などと呼ぶことが好都合であることが証明されている。
【0009】
しかし、これらのおよび同様の用語のすべてが適切な物理量に関連付けられており、単にこれらの量に適用される好都合なレッテルであることに留意されたい。以下の説明から明らかなように別段の具体的な記載がない限り、本発明全体を通じて、「処理」または「コンピューティング」または「計算」または「判断」または「表示」などの用語を使用した説明は、コンピュータ・システムのレジスタおよびメモリ内に物理(電子)量として表されたデータを操作し、コンピュータ・システム・メモリまたはレジスタあるいは他のこのような情報記憶装置、伝送デバイスまたは表示デバイス内に物理量として同様に表わされる他のデータに変換するコンピュータ・システムまたは同様の電子コンピューティング・デバイスのアクションおよびプロセスを指すことがあることを理解されたい。
【0010】
また、本発明は記載されたオペレーションを実施するための装置に関する。この装置は、必要な目的のために特別に構築でき、またはコンピュータ内に格納されたコンピュータ・プログラムによって選択的に起動されるかまたは再構成される汎用コンピュータを備えることができる。このようなコンピュータ・プログラムは、フロッピ・ディスク、光学ディスク、CD−ROM、磁気光学ディスク、読取専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、磁気または光学カードを含む任意のタイプのディスク、またはそれぞれがコンピュータ・システム・バスに結合された、電子命令を格納するのに適切な任意のタイプの媒体などのコンピュータ可読記憶媒体内に格納できるが、それらに限定されるものではない。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ、中央処理ユニットなど)を使用して実行可能である。
【0011】
本明細書に提示されたアルゴリズムおよび表示は、どのような特定のコンピュータまたは他の装置にも本質的に関係するものではない。さまざまな汎用マシンが、本明細書の教示によるプログラムとともに使用することができ、または必要な方法ステップを実施するためにより専用の装置を構築することが好都合であることもある。これらのさまざまなマシンのための必要な構造は、以下の記述に示してある。さらに、本発明は、特定のプログラミング言語を参照して記述していない。さまざまなプログラミング言語を使用して本明細書に記述した本発明の教示を実施できることを理解されたい。
【0012】
実施形態についての以下の詳細な記述では、本発明を実践できる具体的な実施形態を例示した添付図面を参照する。図面では、いくつかの図を通して、同様の番号は実質的に同様の構成要素を記述する。これらの実施形態は、当業者が本発明を実践できるように十分詳細に記述してある。他の実施形態も利用でき、構造上、論理的、電気的な変更も、本発明の範囲から逸脱することなく行うことができる。その上、本発明のさまざまな実施形態は、それぞれ異なっているものの、必ずしも互いに相容れないものではないことを理解されたい。たとえば、一実施形態において記述した特定の特徴、構造、または特性を、他の実施形態内に含むことができる。したがって、以下の詳細な記述は限定的なものと解釈すべきではなく、本発明の範囲は、頭記の特許請求の範囲およびこの特許請求の範囲の権利を有する均等物の全範囲によってのみ定義されるものである。
【0013】
本発明の方法および装置は、ゲスト・オペレーティング・システムと仮想マシン・モニタ(VMM)の間のアドレス空間の競合を解決するためのメカニズムを提供する。図1は、本発明により動作させることができる仮想マシン環境100の一実施形態を示す図である。この実施形態では、ベア・プラットフォーム・ハードウェア116には、コンピューティング・プラットフォームが備えられ、これは、たとえば、標準オペレーティング・システム(OS)またはVMM112などの仮想マシン・モニタ(VMM)を実行することが可能である。VMMは、一般にソフトウェア内に実装されるが、エミュレーションなどのベア・マシン・インターフェースをより高レベルのソフトウェアにエクスポートできる。このようなより高レベルのソフトウェアは、標準またはリアルタイムOSを備えることができるが、本発明はこの点にその範囲が限定されるものではなく、あるいは、たとえば、VMMを別のVMM内でまたはそれとともに実行できる。VMMおよびそれらの代表的な特徴および機能は、当業者には周知であり、たとえば、ソフトウェア、ファームウェアまたはさまざまな技術の組合せの中に実装できる。
【0014】
上述したように、VMMは、他のソフトウェア(すなわち、「ゲスト」ソフトウェア)に1つまたは複数の仮想マシン(VM)のアブストラクションを提供する。図1は、2つのVM、102および114を示す図である。それぞれのVMが、ゲストOS104または106などのゲストOSおよびさまざまなゲスト・ソフトウェア・アプリケーション108〜110を備える。ゲストOS104および106のそれぞれは、ゲストOS104または106が動作しているハードウェア・プラットフォーム内の物理リソース(たとえば、メモリやメモリマップされたI/Oデバイス)へのアクセスを制御し、他の機能を実施するようになっている。しかし、仮想マシン環境においては、VMM112は、VM102および114を、およびそれらの間を保護するために、物理リソースに対して最大の制御を有することができなければならない。VMM112は、コンピュータの物理リソースへのゲストOS104、106のすべてのアクセスを傍受することにより、この目標を達成する。たとえば、ゲストの特権を奪う技術を使用して、VMM112が上記のアクセスを傍受できるようにすることができる。ゲストの特権を奪うことにより、すべてのゲスト・ソフトウェアが、特定のハードウェア・リソースへのアクセスが認められないハードウェア特権レベルで動作するようになる。その結果、ゲストOS104または106が、それらのハードウェア・リソースのいずれかにアクセスを試みる場合はいつでも、ゲストOSはVMM112へ「トラップする」。すなわちVMM112は、このオペレーションがこのようなハードウェア・リソースにアクセスすることを伴う場合には、ゲスト・オペレーティング・システムによって開始されたオペレーションに対する制御権を受け取る。当技術分野で周知の任意の他の技術を使用して、同様のオペレーションに対する制御をゲストOS104または106からVMM112へ移転できることに留意されたい。
【0015】
ゲストの特権を奪うまたは、VMM112がコンピュータの物理リソースへのゲストOS104および106のアクセスを傍受できるようにする他の技術を使用する場合、VMMコードおよび/またはデータ構造の一部分が、ゲストOS104および106のそれぞれとして同じ仮想アドレス空間内に常駐することがアーキテクチャ上必要であることがある。しかし、ゲストOS104および106はVMMの存在を認識していないので、それらは、ゲストOS104または106に関連付けられた仮想アドレス空間内にVMMコードおよび/またはデータ構造によって占有されている領域にアクセスすることを試みることがある。このような試みの結果、ゲストOSのコードおよびデータ構造と仮想アドレス空間内のVMMコードおよびデータ構造の間に衝突が生じることがあり、それにより、ゲストOS104または106あるいはVMM112によって実施されるオペレーションの異常終了が生じる。本発明は、このようなアドレス空間の競合を解決するためのメカニズムを提供する。
【0016】
図2は、本発明の一実施形態に従って、VMMとゲストOSの間のアドレス空間の競合を解決するためのシステム200を示すブロック図である。システム200には、ゲストOS(たとえば、ゲストOS104または106)、VMM(たとえば、VMM112)などを実行することが可能なコンピューティング・プラットフォームを含むベア・プラットフォーム・ハードウェア214が備えられる。2つの別個のアドレス空間204および202が、ゲスト・ソフトウェアおよびVMMのために割り当てられている。VMアドレス空間204は、ゲストOSおよび他のゲスト・ソフトウェアのコードおよびデータ構造を保持するために割り当てられ、VMMアドレス空間202は、VMMコードおよびデータ構造のために割り当てられる。
【0017】
上述したように、VMMコードおよび/またはデータ構造のある構成要素が、VMMがハードウェア・リソースへのゲストOSのアクセスを傍受できるようにするためにゲストOSと同じアドレス空間内に常駐することがアーキテクチャ上必要であることがある。たとえば、IA−32命令セット・アーキテクチャ(ISA)については、ゲストの特権を奪うことを使用して、ゲストOSがハードウェア・リソースへ確実にアクセスできるようにVMMを制御する場合、ハンドリング・ルーチンをトラップするためのポインタを含む割込みデスクリプタ・テーブル(IDT)が、ゲストOSと同じアドレス空間内に常駐することがアーキテクチャ上必要である。ゲストの特権を奪うことをサポートする本発明の一実施形態を、図5および6と合わせて以下により詳細に記述する。他のISAについては、VMMコードおよび/またはデータ構造のさまざまな他の部分が、ハードウェア・リソースへのゲストOSによってなされたアクセスをVMMが制御できるようにするためにゲストOSと同じアドレス空間内に常駐することがアーキテクチャ上必要であることがある。
【0018】
一実施形態では、VMMコードおよび構造は2つの部分に分割される。VMMの第1の部分は、ゲストOSのアドレス空間内、すなわちVMアドレス空間204内に常駐することが必要な1組のコードおよび/またはデータ構造を有する。VMMの第2の部分は、VMMコードおよびデータ構造の残りの部分を有する。一実施形態では、ソフトウェア・プログラム(仮想マシン・カーネル210と呼ぶ)が、ゲストOSと同じアドレス空間内に配置することが必要な最小の組のVMMコードおよび/またはデータ構造を収集する。VMMコードおよびデータ構造の残りの部分は、別個のプログラムとしてコンパイルされ、VMMアドレス空間202内に置かれる。次いで、仮想マシン・カーネル(VMK)210は、VMアドレス空間204とVMMアドレス空間202の両方内にそれ自体をマップする。
【0019】
その後、ゲストOSがVMアドレス空間204内のVMMコードおよび/またはデータ構造によって占有されている領域にアクセスすることを試みた場合、VMK210は、ゲストOSのこの試みを検出する。一実施形態では、もしこのイベントにより、ゲストOSとVMMの間でアドレス空間の競合が起きる可能性がある場合には、VMK210は、ゲストOSによって開始されるイベントに対する制御権を受け取る。ゲストの特権を奪うこと、あるいは当技術分野で周知の任意の他のハードウェアまたはソフトウェア・メカニズムを、このようなイベントに対する制御権をゲストOSからVMアドレス空間204に常駐するVMMコードおよび/またはデータ構造へ移転するために使用することができる。
【0020】
次いでVMK210は、このイベントを評価して、その原因を判断する。そのイベントが、VMMコードおよび/またはデータ構造によって占有されている領域にアクセスしようとするゲストOSの試みによるものであることが検出されると、VMK210は、VMK210によって以前に使用されていた領域にゲストOSがアクセスするように、VMアドレス空間204内の異なる領域へそれ自体を再マップする。VMアドレス空間204内にVMK210を再配置するための方法の一実施形態を、図4と合わせて以下により詳細に記述する。
【0021】
図3は、本発明の一実施形態に従って、VMMとゲストOSの間のアドレス空間の競合を解決するための方法300の一実施形態を示す流れ図である。方法300は、VMMを第1の部分および第2の部分に分割することから開始する(処理ブロック304)。上述したように、第1の部分は、ゲストOSとしてアーキテクチャ上同じアドレス空間内に常駐することが必要な1組のVMMコードおよび/またはデータ構造を有する。VMMの第2の部分は、VMMコードおよびデータ構造の残りの部分を有する。(以下により詳細に記述する)一実施形態では、VMMの第1の部分は、1組のトラップ・ハンドラおよび割込みデスクリプタ・テーブル(IDT)を含む。代替実施形態では、第1の部分は、ゲストOSと同じアドレス空間内に常駐しなければならないVMMのさまざまな他のデータ構造およびコードを有する。
【0022】
次に、第1のアドレス空間(すなわち、VMアドレス空間204)は、ゲストOSおよび他のゲスト・ソフトウェアのコードおよびデータ構造を保持するために作成され(処理ブロック306)、第2のアドレス空間(すなわち、VMMアドレス空間202)は、VMMコードおよびデータ構造のために作成される(処理ブロック308)。一実施形態では、これらのアドレス空間は、ブート・プロセス中に作成される。
【0023】
さらに、VMMの第1の部分はVMアドレス空間とVMMアドレス空間の両方にマップされ(処理ブロック310)、VMMの第2の部分はVMMアドレス空間内にロードされる(処理ブロック312)。
【0024】
処理ブロック314で、VMMの第1の部分によって占有されている領域にアクセスしようとするゲストOSの試みが検出される。一実施形態では、そのイベントによりゲスト・オペレーティング・システムとVMMの間でアドレス空間の競合が起きる可能性がある場合には、VMMの第1の部分へゲストOSによって開始されたイベントに対する制御権を移転することにより、このような試みが検出される。アドレス空間の競合の可能性を検出する一実施形態を、図5および6と合わせて以下により詳細に記述する。
【0025】
その後、処理ブロック316で、VMMの第1の部分が、VMMの第1の部分によって以前に占有されていた領域へゲストOSがアクセスするように、VMアドレス空間内の別の領域に再配置される。後にVMMの第1の部分によって占有されている新しい領域にアクセスしようとする試みがあった場合、その結果、再びVMアドレス空間内の再配置が生じる。VMMの第1の部分を含む、VMKを再配置するための方法の一実施形態が図4に示されている。
【0026】
図4を参照すると、ゲストOSとVMMの間のアドレス空間の競合が検出された(処理ブロック404)後、未使用の領域を探してVMアドレス空間がサーチされる(処理ブロック406)。判断記号408で、VMアドレス空間内に未使用の領域が存在するかどうかの判断がなされる。存在すると判断されると、VMMコードおよびデータ構造の第1の部分を有するVMKが、この未使用の領域内に再マップされ、制御権がゲストOSに移転し戻され、VMKによって以前に使用されていた領域にアクセスできるようになる。
【0027】
あるいは、VMアドレス空間内に未使用の領域が存在しない場合、すなわち、ゲストOSが全VMアドレス空間を使用してしまっている場合は、ランダム領域が、VMアドレス空間内で選択され(処理ブロック412)、選択された領域に置かれているメモリの内容がVMMアドレス空間内のバッファにコピーされ(処理ブロック414)、VMKは、VMアドレス空間内の選択された領域内に再マップされる(処理ブロック416)。この選択された領域(すなわち、新しいVMK領域)への後続のメモリ・アクセスが、新しいVMK領域の元の内容を有するVMMアドレス空間内のバッファからエミュレートされたメモリ・アクセスを通じてサービスされる。一実施形態では、頻繁に使用されない領域が見つかるまで、VMアドレス空間内のランダム領域に周期的にVMKを再配置することにより、このようなエミュレートされたメモリ参照の頻度を減少できる。
【0028】
図5は、本発明の一実施形態に従って、ゲストの特権を奪うことをサポートするVMKの動作を示す図である。上述したように、ゲストの特権を奪うことにより、ゲストOSがより低い特権レベルで動作し、その結果、ゲストOSは、それがプロセッサ・システム状態で動作する特権命令を発行することを試みる場合はいつでも、VMMに「トラップ」する。一実施形態では、ゲストの特権を奪うことをサポートするVMMは、ポインタをインストールして、割込みデスクリプタ・テーブル(IDT)514内のハンドリング・ルーチン(すなわち、トラップ・ハンドラ552)をトラップする。ISA(たとえば、IA−32ISA)の中には、IDT514が現在アクティブの仮想アドレス空間(すなわち、VMアドレス空間504)内に常駐することをを必要とするものがある。一実施形態では、IDT514内のエントリはタスク・ゲートであり、アドレス空間スイッチを提供する。つまり、トラップが生成された場合は、トラップ・ハンドリング・ルーチンへのポインタを求めてIDT514がサーチされる。このポインタがタスク・ゲートであれば、それにより、生成されたトラップのためのトラップ・ハンドリング・ルーチンを有するVMMアドレス空間への直接スイッチが可能となる。したがって、タスク・ゲートに対応するトラップ・ハンドラは、VMアドレス空間内に常駐する必要はないが、タスク・ゲート自体は、VMアドレス空間内に常駐しなければならない。別の実施形態では、IDT514内のエントリがトラップ・ゲートまたは割込みゲートであり、これはアドレス空間スイッチを提供しない。その結果、このようなIDTエントリに関連付けられたトラップ・ハンドラがVMアドレス空間内に常駐しなければならない。さらに、VMMは、VMアドレス空間内に他のデータ構造(たとえば、グローバル・デスクリプタ・テーブル)のシャドウ・バージョンを入れることができる。
【0029】
一実施形態では、VMK510は、VMアドレス空間内に置かれていなければならない最小の組のトラップ・ハンドラおよび/またはデータ構造(たとえば、IDT514)をまとめて収集し、それらをVMアドレス空間504とVMMアドレス空間502の両方の中にマップし、最特権レベル(たとえば、IA−32マイクロプロセッサについてはリング=0を有する「スーパバイザ」特権レベル)に、VMK510を保持するページのアクセス権を設定する。上述したように、ゲストOSは、特権を奪われたモード(たとえば、IA−32マイクロプロセッサについてはリング=3を有する「ユーザ」モード)内で動作する。その結果、一実施形態では、ゲストOSは、それが最特権アクセス権で保護されているVMK510を保持するページを含む特権マシン・リソースにアクセスすることを試みる場合はいつでも、仮想化トラップを生成する。
【0030】
一実施形態では、仮想化トラップが生成された場合は、トラップ・ハンドラへの対応するポインタのためにIDT514がサーチされる。一実施形態では、トラップを、VMMに常駐するトラップ・ハンドラによって扱う必要があることがある。この実施形態では、VMKは、2つのアドレス空間スイッチ、すなわち、トラップをVMMアドレス空間502内のトラップ・ハンドラに配信するための1つのスイッチと、VMMに常駐するトラップ・ハンドラによってトラップがサービスされた後に、VMアドレス空間504に戻すための第2のスイッチとを実施する。
【0031】
あるいは、トラップをVMKに常駐するハンドラ内で扱うことができる。たとえば、トラップが、プロセッサのレジスタ内のフラグをリセットするためのゲストOSの命令により起きることがある。このようなトラップは、VMMアドレス空間502内のVMMに制御権を移転せずに、全面的にトラップ・ハンドラ552内で扱うことができ、このように実施することにより、より良い性能が得られる。
【0032】
1つのタイプの仮想化トラップは、ゲストOSが、VMK510によって現在使用されているVMアドレス空間504の領域にアクセスすることを試みた場合に生成される競合障害である。VMK510は、図4と合わせて上記により詳細に記述したように、VMアドレス空間504内の新しい領域内にそれ自体を再マップすることにより、これらの競合障害を扱う。
【0033】
図6は、本発明の一実施形態に従って、ゲストOSによって生成された仮想化トラップを扱うための方法600を示す流れ図である。方法600は、VMKによって占有されている領域へのアクセス権を、ゲストOSに関連付けられた特権レベルより上の特権レベルに設定することから開始する(処理ブロック604)。たとえば、すべてのVMKページをスーパバイザのみの特権(リング=0)でマップでき、ゲストOSを特権を奪われたユーザ・モード(リング=3)内で動作するよう設定できる。
【0034】
処理ブロック606で、ゲストOSによって生成されたトラップが受信される。トラップは、特権ハードウェア・リソースにアクセスしようとするゲストOSの試みによって起きる。判断記号608で、トラップをVMKによって内部的に(たとえば、VMKに常駐するトラップ・ハンドラ内で)扱うことができるかどうかの判断がなされる。トラップが複雑すぎてVMKによって扱うことができない場合は、それは、VMMアドレス空間(たとえば、VMMに常駐するトラップ・ハンドラ)に配信され(処理ブロック610)、次いで、トラップがVMMによってサービスされた後、VMアドレス空間に戻って再開される(処理ブロック612)。その後、トラップを起こしたイベントに対する制御権が、ゲストOSに戻る(処理ブロック620)。
【0035】
あるいは、トラップがVMKによって内部的に扱うことができる場合は、トラップが、VMKコードおよびデータ構造とゲストOSのコードおよびデータ構造の間のアドレス空間の競合によって引き起こされたものかどうかの判断がなされる(判断記号614)。トラップが実際にアドレス空間の競合によって引き起こされた場合は、VMKコードおよびデータ構造は、VMアドレス空間内の新しい領域に再配置される(処理ブロック618)。あるいは、トラップは、対応するトラップ・ハンドラによって扱われる(処理ブロック616)。その後、トラップを起こしたイベントに対する制御権が、ゲストOSに戻る(処理ブロック620)。
【0036】
図7は、処理システムの一実施形態を示すブロック図である。処理システム700には、プロセッサ720とメモリ730とが備えられる。プロセッサ720は、マイクロプロセッサ、ディジタル信号プロセッサ、マイクロコントローラなどのソフトウェアを実行することができるあらゆるタイプのプロセッサでよい。処理システム700は、パーソナル・コンピュータ(PC)、メインフレーム、ハンドヘルド・デバイス、ポータブル・コンピュータ、セットトップ・ボックス、またはソフトウェアを含む他のどのようなシステムでもよい。
【0037】
メモリ730は、ハード・ディスク、フロッピ・ディスク、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、フラッシュ・メモリ、またはプロセッサ720によって読取可能な他のどのようなタイプのマシン媒体でもよい。メモリ730は、方法300、400、600などの本発明のさまざまな方法実施形態を実行するための命令を格納できる(図3、4、6)。
【0038】
上記の記述は例示目的であり、限定的なものではないことを理解されたい。上記の記述を読み、理解されたならば、当業者には他の多くの実施形態が自明となろう。したがって、本発明の範囲は、頭記の特許請求の範囲およびこの特許請求の範囲の権利を有する均等物の全範囲を参照して判断すべきである。
【図面の簡単な説明】
【図1】
仮想マシン環境の一実施形態を示す図である。
【図2】
本発明の一実施形態に従って、仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するためのシステムを示すブロック図である。
【図3】
本発明の一実施形態に従って、仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法を示す流れ図である。
【図4】
本発明の一実施形態に従って、仮想マシン・アドレス空間内の仮想マシン・カーネルを再配置するための方法を示す流れ図である。
【図5】
本発明の一実施形態に従って、ゲスト特権を奪うことをサポートする仮想マシン・カーネルのオペレーションを示す図である。
【図6】
本発明の一実施形態に従って、ゲスト・オペレーティング・システムによって生成された仮想化トラップを扱うための方法を示す流れ図である。
【図7】
処理システムの一実施形態を示すブロック図である。

Claims (30)

  1. ゲスト・オペレーティング・システムが、第1のアドレス空間内で仮想マシン・モニタ(VMM)の第1の部分によって占有されている領域にアクセスしようと試みたことを検出すること、および、
    VMMの第1の部分によって以前に占有されていた領域にゲスト・オペレーティング・システムがアクセスできるようにするために、第1のアドレス空間内でVMMの第1の部分を再配置することを含む方法。
  2. VMMの第1の部分が、第1のアドレス空間内に常駐することがアーキテクチャ上必要な1組のVMMコードおよびデータ構造を有する請求項1に記載の方法。
  3. VMMの第1の部分が、1組のトラップ・ハンドラおよび割込みデスクリプタ・テーブル(IDT)を有する請求項1に記載の方法。
  4. VMMを第1の部分および第2の部分に分割すること、
    ゲスト・オペレーティング・システムに関連付けられた第1のアドレス空間を作成すること、
    VMMに関連付けられた第2のアドレス空間を作成すること、
    VMMに関連付けられた第2のアドレス空間内にVMMの第2の部分を配置すること、および、
    VMMの第1の部分を第1のアドレス空間および第2のアドレス空間にマップすることをさらに含む請求項1に記載の方法。
  5. イベントによりゲスト・オペレーティング・システムとVMMの間でアドレス空間の競合が起きる可能性があるとき、ゲスト・オペレーティング・システムによって開始されたイベントに対する制御権を受け取ることをさらに含む請求項1に記載の方法。
  6. 制御権を受け取ることが、
    VMMの第1の部分によって占有されているセクションのアクセス権を、ゲスト・オペレーティング・システムに関連付けられた特権レベルより上の特権レベルに設定すること、および、
    ゲスト・オペレーティング・システムに関連付けられた特権レベルより高い特権レベルを有するハードウェア・リソースにアクセスしようとするゲスト・オペレーティング・システムの試みによって引き起こされたトラップを受け取ることをさらに含む請求項5に記載の方法。
  7. トラップをVMMの第1の部分によって扱うことができると判断すること、
    トラップに関連付けられたコードを実行すること、および
    イベントに対する制御権をゲスト・オペレーティング・システムに返すことをさらに含む請求項6に記載の方法。
  8. トラップをVMMの第2の部分によって扱うべきであると判断すること、
    トラップをVMMの第2の部分に配信すること、
    トラップに関連付けられたコードがVMMの第2の部分によって実行された後、イベントに対する制御権をゲスト・オペレーティング・システムに渡すことをさらに含む請求項6に記載の方法。
  9. VMMの第1の部分を再配置することが、
    第1のアドレス空間内の未使用の領域を見つけること、および、
    VMMの第1の部分を未使用の領域に再マップすることをさらに含む請求項1に記載の方法。
  10. VMMの第1の部分を再配置することが、
    第1のアドレス空間内に未使用の領域が存在しないと判断すること、
    第1のアドレス空間内のランダム領域を選択すること、
    ランダム領域に配置されたメモリの内容を第2のアドレス空間にコピーすること、および
    VMMの第1の部分をランダム領域に再マップすることをさらに含む請求項1に記載の方法。
  11. ゲスト・オペレーティング・システムによって開始されたイベントに対する制御権を受け取ることを含み、イベントが、ランダム領域に以前に置かれていたメモリの内容にアクセスしようとするゲスト・オペレーティング・システムの試みに対応し、
    さらに、第2のアドレス空間内のメモリのコピーされた内容にアクセスすることをさらに含む請求項10に記載の方法。
  12. 頻繁にアクセスされない領域を見つけるまで、VMMの第1の部分を第1のアドレス空間内のランダム領域に周期的に再配置することをさらに含む請求項11に記載の方法。
  13. ゲスト・オペレーティング・システムに関連付けられた第1のアドレス空間と、
    仮想マシン・モニタ(VMM)に関連付けられた第2のアドレス空間と、
    ゲスト・オペレーティング・システムが第1のアドレス空間内のVMMの第1の部分によって占有されている領域にアクセスしようと試みたことを検出し、ゲスト・オペレーティング・システムがVMMの第1の部分によって以前に占有されていた領域にアクセスできるようにするために、第1のアドレス空間内のVMMの第1の部分を再配置するための仮想マシン・カーネルと
    を有する装置。
  14. VMMの第1の部分が、第1のアドレス空間内に常駐することがアーキテクチャ上必要な1組のVMMコードおよびデータ構造を有する請求項13に記載の装置。
  15. VMMの第1の部分が、1組のトラップ・ハンドラおよび割込みデスクリプタ・テーブル(IDT)を有する請求項13に記載の装置。
  16. 仮想マシン・カーネルが、VMMを第1の部分および第2の部分に分割し、VMMに関連付けられた第2のアドレス空間内にVMMの第2の部分を置き、VMMの第1の部分を第1のアドレス空間および第2のアドレス空間内にマップする請求項13に記載の装置。
  17. イベントによりゲスト・オペレーティング・システムとVMMの間でアドレス空間の競合が起きる可能性がある場合に、仮想マシン・カーネルが、ゲスト・オペレーティング・システムによって開始されたイベントに対する制御権を受け取る請求項13に記載の装置。
  18. 仮想マシン・カーネルが、VMMの第1の部分によって占有されているセクションのアクセス権を、ゲスト・オペレーティング・システムに関連付けられた特権レベルより上の特権レベルに設定することにより、およびゲスト・オペレーティング・システムに関連付けられた特権レベルより高い特権レベルを有するハードウェア・リソースにアクセスしようとするゲスト・オペレーティング・システムの試みによって引き起こされたトラップを受け取ることにより制御権を受け取る請求項13に記載の装置。
  19. 仮想マシン・カーネルが、トラップをVMMの第1の部分によって扱うことができると判断し、トラップに関連付けられたコードを実行し、イベントに対する制御権をゲスト・オペレーティング・システムに返す請求項18に記載の装置。
  20. 仮想マシン・カーネルが、トラップをVMMの第2の部分によって扱うべきであると判断し、トラップをVMMの第2の部分に配信し、トラップに関連付けられたコードがVMMの第2の部分によって実行された後、イベントに対する制御権をゲスト・オペレーティング・システムに渡す請求項18に記載の装置。
  21. 仮想マシン・カーネルが、第1のアドレス空間内の未使用の領域を見つけ、VMMの第1の部分を未使用の領域に再マップすることにより、VMMの第1の部分を再配置する請求項13に記載の装置。
  22. 仮想マシン・カーネルが、第1のアドレス空間内に未使用の領域が存在しないと判断し、第1のアドレス空間内のランダム領域を選択し、ランダム領域に配置されたメモリの内容を第2のアドレス空間にコピーし、VMMの第1の部分をランダム領域に再マップすることにより、VMMの第1の部分を再配置する請求項13に記載の装置。
  23. 仮想マシン・カーネルがゲスト・オペレーティング・システムによって開始されたイベントに対する制御権を受信し、イベントがランダム領域に以前に置かれていたメモリの内容にアクセスしようとするゲスト・オペレーティング・システムの試みに対応し、さらに、前記仮想マシン・カーネルが第2のアドレス空間内のメモリのコピーされた内容にアクセスする請求項13に記載の装置。
  24. 仮想マシン・カーネルが、頻繁にアクセスされない領域を見つけるまで、VMMの第1の部分を第1のアドレス空間内のランダム領域に周期的に再配置する請求項13に記載の装置。
  25. ゲスト・オペレーティング・システムに関連付けられた第1のアドレス空間および仮想マシン・モニタ(VMM)に関連付けられた第2のアドレス空間を有するメモリと、
    メモリに結合され、ゲスト・オペレーティング・システムがVMMの第1の部分によって以前に占有されていた領域にアクセスできるように、第1のアドレス空間内のVMMの第1の部分によって占有されている領域にアクセスし、第1のアドレス空間内のVMMの第1の部分を再配置することをゲスト・オペレーティング・システムが試みたことを検出するプロセッサと
    を備えたシステム。
  26. VMMの第1の部分が、第1のアドレス空間内に常駐することがアーキテクチャ上必要な1組のVMMコードおよびデータ構造を有する請求項25に記載のシステム。
  27. VMMの第1の部分が、1組のトラップ・ハンドラおよび割込みデスクリプタ・テーブル(IDT)を有する請求項25に記載のシステム。
  28. プロセッサで実行される場合に、前記プロセッサにオペレーションを実施させる命令を与えるコンピュータ可読媒体であって、前記プロセッサが、
    ゲスト・オペレーティング・システムが、第1のアドレス空間内の仮想マシン・モニタ(VMM)の第1の部分によって占有されている領域にアクセスしようと試みたことを検出すること、および、
    ゲスト・オペレーティング・システムが、VMMの第1の部分によって以前に占有されていた領域にアクセスできるようにするために、第1のアドレス空間内のVMMの第1の部分を再配置することを含むコンピュータ可読媒体。
  29. プロセッサにオペレーションを実施させる命令をさらに有するコンピュータ可読媒体であって、前記プロセッサが、
    第1のアドレス空間内の未使用の領域を見つけること、および、
    VMMの第1の部分を未使用の領域に再マップすること含む請求項28に記載のコンピュータ可読媒体。
  30. プロセッサにオペレーションを実施させる命令をさらに有するコンピュータ可読媒体であって、前記プロセッサが、
    第1のアドレス空間内に未使用の領域が存在しないと判断すること、
    第1のアドレス空間内のランダム領域を選択すること、
    ランダム領域に配置されたメモリの内容を第2のアドレス空間にコピーすること、および、
    VMMの第1の部分をランダム領域に再マップすることを含む請求項28に記載のコンピュータ可読媒体。
JP2002556364A 2000-12-27 2001-12-20 仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法 Expired - Fee Related JP4021769B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/752,587 US7035963B2 (en) 2000-12-27 2000-12-27 Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
PCT/US2001/050415 WO2002056172A2 (en) 2000-12-27 2001-12-20 Method for resolving address space conflicts between a virtual machine monitor and a guest operating system

Publications (2)

Publication Number Publication Date
JP2004526229A true JP2004526229A (ja) 2004-08-26
JP4021769B2 JP4021769B2 (ja) 2007-12-12

Family

ID=25026926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002556364A Expired - Fee Related JP4021769B2 (ja) 2000-12-27 2001-12-20 仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法

Country Status (10)

Country Link
US (2) US7035963B2 (ja)
EP (1) EP1405181A2 (ja)
JP (1) JP4021769B2 (ja)
KR (1) KR100624668B1 (ja)
CN (2) CN1575453B (ja)
AU (1) AU2002249862A1 (ja)
BR (1) BR0116630A (ja)
RU (1) RU2259582C2 (ja)
TW (1) TWI228221B (ja)
WO (1) WO2002056172A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008529176A (ja) * 2005-01-28 2008-07-31 インテル・コーポレーション 仮想マシン環境のアドレス変換をサポートするための方法と装置

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745346B2 (en) * 2000-12-08 2004-06-01 Intel Corporation Method for efficiently identifying errant processes in a computer system by the operating system (OS) for error containment and error recovery
US7461148B1 (en) * 2001-02-16 2008-12-02 Swsoft Holdings, Ltd. Virtual private server with isolation of system components
US7260820B1 (en) * 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7058786B1 (en) * 2002-01-17 2006-06-06 Hewlett-Packard Development Company Operating system data communication method and system
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7149510B2 (en) 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
US7278030B1 (en) * 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US7409487B1 (en) * 2003-06-30 2008-08-05 Vmware, Inc. Virtualization system for computers that use address space indentifiers
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US7370324B2 (en) * 2003-09-30 2008-05-06 Intel Corporation Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US7984108B2 (en) * 2003-10-08 2011-07-19 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7877747B2 (en) 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized
US7725643B1 (en) * 2004-05-04 2010-05-25 Oracle America, Inc. Methods and systems for detecting and avoiding an address dependency between tasks
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7607011B1 (en) * 2004-07-16 2009-10-20 Rockwell Collins, Inc. System and method for multi-level security on a network
US7685391B1 (en) * 2004-10-12 2010-03-23 Sun Microsystems, Inc. Kernel/user stack relocation during system uptime
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
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US20060277546A1 (en) * 2005-06-02 2006-12-07 Rothman Michael A Detecting virtualization
US7370137B2 (en) * 2005-06-06 2008-05-06 Intel Corporation Inter-domain data mover for a memory-to-memory copy engine
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US8856473B2 (en) * 2005-07-01 2014-10-07 Red Hat, Inc. Computer system protection based on virtualization
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
RU2294010C1 (ru) * 2005-09-05 2007-02-20 Павел Михайлович Шестаков Способ обработки цифровых данных
US8612970B2 (en) * 2005-11-30 2013-12-17 Red Hat, Inc. Purpose domain for low overhead virtual machines
US8104034B2 (en) * 2005-11-30 2012-01-24 Red Hat, Inc. Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage
US8429629B2 (en) 2005-11-30 2013-04-23 Red Hat, Inc. In-kernel virtual machine for low overhead startup and low resource usage
US7548999B2 (en) * 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US7536541B2 (en) 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US9213542B2 (en) 2006-03-30 2015-12-15 Microsoft Technology Licensing, Llc Creating templates of offline resources
US7774579B1 (en) * 2006-04-14 2010-08-10 Tilera Corporation Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles
US7577820B1 (en) 2006-04-14 2009-08-18 Tilera Corporation Managing data in a parallel processing environment
US8321377B2 (en) * 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US8176485B2 (en) * 2006-05-15 2012-05-08 Microsoft Corporation Launching hypervisor under running operating system
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US7587663B2 (en) * 2006-05-22 2009-09-08 Intel Corporation Fault detection using redundant virtual machines
US8024727B2 (en) * 2006-06-15 2011-09-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
US20070294707A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
DE102006029756A1 (de) 2006-06-27 2008-01-03 Deutsche Telekom Ag Verfahren zum Delegieren von Privilegien an eine niedriger-priviligierte Instanz durch eine höher-priviligierte Instanz
JP2008033392A (ja) * 2006-07-26 2008-02-14 Nec Corp 仮想計算機システム及びその動作方法
US7478228B2 (en) * 2006-08-31 2009-01-13 Qualcomm Incorporated Apparatus for generating return address predictions for implicit and explicit subroutine calls
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
US7689817B2 (en) * 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US9354927B2 (en) 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US7765374B2 (en) * 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
KR101396831B1 (ko) 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US8561060B2 (en) * 2007-04-26 2013-10-15 Advanced Micro Devices, Inc. Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
CN101334751B (zh) * 2007-06-29 2010-04-14 联想(北京)有限公司 虚拟机监视器识别客户操作系统中进程的方法及装置
US8763115B2 (en) * 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
CA2699565C (en) * 2007-09-20 2014-07-15 C&S Operations, Inc. Computer system with multiple terminals
CN101425020A (zh) * 2007-10-31 2009-05-06 国际商业机器公司 对mmu仿真进行加速的方法、装置和全系统仿真器
KR100881386B1 (ko) 2008-01-24 2009-02-02 주식회사 파수닷컴 프로세스 분리 실행을 통한 drm 클라이언트 충돌 방지 방법
CN101727331B (zh) * 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8806101B2 (en) * 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US9535767B2 (en) 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
US8813069B2 (en) * 2009-05-29 2014-08-19 Red Hat, Inc. Migration of functionalities across systems
US20110197256A1 (en) * 2009-12-18 2011-08-11 Assured Information Security, Inc. Methods for securing a processing system and devices thereof
KR20110094764A (ko) * 2010-02-17 2011-08-24 삼성전자주식회사 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US20110219373A1 (en) * 2010-03-02 2011-09-08 Electronics And Telecommunications Research Institute Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US9529729B2 (en) * 2010-11-16 2016-12-27 International Business Machines Corporation Location of memory management translations in an emulated processor
US9129123B2 (en) 2011-06-13 2015-09-08 Lynx Software Technologies, Inc. Systems and methods of secure domain isolation involving separation kernel features
US9804870B2 (en) 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
KR20130050156A (ko) * 2011-11-07 2013-05-15 한국전자통신연구원 가상 주소 공간 전환 장치
CN103975303B (zh) * 2011-12-07 2017-08-08 英特尔公司 用于预链接软件以改善虚拟系统中的存储器去重的技术
RU2472215C1 (ru) 2011-12-28 2013-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выявления неизвестных программ с использованием эмуляции процесса загрузки
US8745745B2 (en) 2012-06-26 2014-06-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US10310973B2 (en) * 2012-10-25 2019-06-04 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
CN103699388B (zh) * 2013-12-30 2015-07-08 北京控制工程研究所 基于绝对地址汇聚的数据访问冲突检测方法
US9740857B2 (en) 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US9436395B2 (en) * 2014-03-14 2016-09-06 Advanced Micro Devices, Inc. Mechanisms to save user/kernel copy for cross device communications
US9203855B1 (en) 2014-05-15 2015-12-01 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
CA2969422A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9912681B1 (en) 2015-03-31 2018-03-06 Fireeye, Inc. Injection of content processing delay in an endpoint
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
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
RU2626550C1 (ru) * 2016-08-09 2017-07-28 Акционерное Общество "Научно-Исследовательский Институт Микроэлектронной Аппаратуры "Прогресс" Программно-аппаратная платформа и способ ее реализации для беспроводных средств связи
US10191861B1 (en) 2016-09-06 2019-01-29 Fireeye, Inc. Technique for implementing memory views using a layered virtualization architecture
US10909053B2 (en) * 2019-05-27 2021-02-02 Advanced Micro Devices, Inc. Providing copies of input-output memory management unit registers to guest operating systems
US10853263B1 (en) * 2019-07-23 2020-12-01 Ati Technologies Ulc Unified kernel virtual address space for heterogeneous computing
CN111124664B (zh) 2019-11-22 2023-12-08 华为技术有限公司 第一操作系统访问第二操作系统资源的方法和装置
KR20220157145A (ko) 2021-05-20 2022-11-29 삼성전자주식회사 가상화 시스템 및 가상화 시스템의 메모리 충돌 방지 방법
US20230033583A1 (en) * 2021-07-30 2023-02-02 Advanced Micro Devices, Inc. Primary input-output queue serving host and guest operating systems concurrently

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6273346A (ja) * 1985-09-27 1987-04-04 Hitachi Ltd アドレス変換装置
JPS63156248A (ja) * 1986-12-19 1988-06-29 Nec Corp 仮想計算機方式
JPH0388042A (ja) * 1989-08-31 1991-04-12 Nec Corp 仮想計算機環境におけるプログラム起動方式
JPH04348434A (ja) * 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
JPH0635725A (ja) * 1992-06-15 1994-02-10 Internatl Business Mach Corp <Ibm> 入出力資源を共用するための方法及びシステム
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
WO2002050664A2 (en) * 2000-12-21 2002-06-27 Connectix Corporation Logical substitution of processor control in an emulated computing environment

Family Cites Families (253)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4307214A (en) 1979-12-12 1981-12-22 Phillips Petroleum Company SC2 activation of supported chromium oxide catalysts
US4319323A (en) 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
JPS58140862A (ja) 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
SU1327113A2 (ru) * 1986-02-25 1987-07-30 Военная академия им.Ф.Э.Дзержинского Устройство дл управлени виртуальной пам тью
FR2601476B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601525B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2601535B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
US5038281A (en) * 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
FR2618002B1 (fr) 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
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
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
JP3093293B2 (ja) * 1991-02-08 2000-10-03 日本電気株式会社 情報処理装置の割り込み方式
US5551033A (en) 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5574936A (en) 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5610981A (en) 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
US5237616A (en) 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
US5371867A (en) * 1992-11-10 1994-12-06 International Business Machines Corporation Method of using small addresses to access any guest zone in a large memory
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
US5668971A (en) 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
EP0602867A1 (en) 1992-12-17 1994-06-22 NCR International, Inc. An apparatus for securing a system platform
JPH06187178A (ja) 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5421066A (en) * 1994-05-16 1995-06-06 Bonomo; Melvin E. Self-locking tensioning bar
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
JPH0883211A (ja) 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
EP0706275B1 (en) 1994-09-15 2006-01-25 International Business Machines Corporation System and method for secure storage and distribution of data using digital signatures
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5903752A (en) 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US6269392B1 (en) 1994-11-15 2001-07-31 Christian Cotichini Method and apparatus to monitor and locate an electronic device using a secured intelligent agent
US5560013A (en) 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US6093213A (en) 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US5606817B1 (en) * 1995-10-18 1999-06-29 Remington Arms Co Inc Muzzle-loading firearm
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
IL116708A (en) 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
AU1690597A (en) 1996-01-11 1997-08-01 Mitre Corporation, The System for controlling access and distribution of digital property
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
IL117085A (en) 1996-02-08 2005-07-25 Milsys Ltd Secure computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US5809546A (en) 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5757604A (en) 1996-06-27 1998-05-26 Raychem Corporation Surge arrester having grooved and ridged terminals
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
WO1998012620A1 (fr) 1996-09-20 1998-03-26 Mitsubishi Denki Kabushiki Kaisha Micro-ordinateur possedant une fonction de commande de remise a zero
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5935242A (en) 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
JPH10134008A (ja) 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
DE19649292A1 (de) 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5818939A (en) 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
US6412035B1 (en) 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US6148401A (en) 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
JP4000654B2 (ja) 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
EP0970411B1 (en) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Copy protection of data
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6557104B2 (en) 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6044478A (en) 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6175924B1 (en) 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US6584565B1 (en) 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US5978475A (en) 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6212635B1 (en) 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US5919257A (en) 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US5935247A (en) 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6148379A (en) 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6357004B1 (en) 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US5978834A (en) 1997-09-30 1999-11-02 The United States Of America As Represented By The Secretary Of The Navy Platform independent computer interface software responsive to scripted commands
US5970147A (en) 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US5987604A (en) 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6378072B1 (en) 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6308270B1 (en) 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
US6108644A (en) 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6192455B1 (en) 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
ATE246751T1 (de) * 1998-04-22 2003-08-15 Peter Geiger Verlegeverbund aus pflastersteinen aus betonwerkstoff
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6339826B2 (en) 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
FR2778998B1 (fr) 1998-05-20 2000-06-30 Schlumberger Ind Sa Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre
EP0961193B1 (en) 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
US6421702B1 (en) 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
WO1999065579A1 (en) 1998-06-17 1999-12-23 Aristocrat Technologies Australia Pty. Ltd. Software verification and authentication
US6339815B1 (en) 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6363485B1 (en) 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6609199B1 (en) 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6445797B1 (en) 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
US6463537B1 (en) 1999-01-04 2002-10-08 Codex Technologies, Inc. Modified computer motherboard security and identification system
US6282650B1 (en) 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US6560627B1 (en) 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6188257B1 (en) 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US6272533B1 (en) 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US7225333B2 (en) 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
HK1052568A1 (zh) 1999-04-12 2003-09-19 Digital Media On Demand, Inc. (Dmod, Inc.) 保安電子商業系統
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6275933B1 (en) 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
EP1055989A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for digitally signing a document
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6633981B1 (en) 1999-06-18 2003-10-14 Intel Corporation Electronic system and method for controlling access through user authentication
US6158546A (en) 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP2001148344A (ja) 1999-09-09 2001-05-29 Nikon Corp 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6535988B1 (en) 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US6374317B1 (en) 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
GB9923802D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co User authentication
GB9923804D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
WO2001063994A2 (en) 2000-02-23 2001-08-30 Iridian Technologies, Inc. Tamper proof case for electronic devices having memories with sensitive information
WO2001063567A2 (en) 2000-02-25 2001-08-30 Identix Incorporated Secure transaction system
WO2001065366A1 (en) 2000-03-02 2001-09-07 Alarity Corporation System and method for process protection
JP3710671B2 (ja) 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6789126B1 (en) * 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
GB0020416D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US20020062452A1 (en) 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
WO2002086684A2 (en) 2001-04-24 2002-10-31 Hewlett-Packard Company An information security system
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
EP1271277A3 (en) 2001-06-26 2003-02-05 Redstrike B.V. Security system and software to prevent unauthorized use of a computing device
US6762838B2 (en) 2001-07-02 2004-07-13 Tevet Process Control Technologies Ltd. Method and apparatus for production line screening
US20030018892A1 (en) 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
US7191464B2 (en) 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7107460B2 (en) 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6273346A (ja) * 1985-09-27 1987-04-04 Hitachi Ltd アドレス変換装置
JPS63156248A (ja) * 1986-12-19 1988-06-29 Nec Corp 仮想計算機方式
JPH0388042A (ja) * 1989-08-31 1991-04-12 Nec Corp 仮想計算機環境におけるプログラム起動方式
JPH04348434A (ja) * 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
JPH0635725A (ja) * 1992-06-15 1994-02-10 Internatl Business Mach Corp <Ibm> 入出力資源を共用するための方法及びシステム
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
WO2002050664A2 (en) * 2000-12-21 2002-06-27 Connectix Corporation Logical substitution of processor control in an emulated computing environment
JP2004531788A (ja) * 2000-12-21 2004-10-14 コネクティクス コーポレイション エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. LAWTON: "Running multiple operating systems concurrently on an IA32 PC using virtualization techniques", [ONLINE], JPN4007017677, 29 November 1999 (1999-11-29), ISSN: 0000889934 *
梅野英典,外4名: "仮想計算機システムの高性能化方式", 情報処理, vol. 第31巻,第12号, CSNG199800245006, 15 December 1990 (1990-12-15), pages 1665 - 1680, ISSN: 0000808358 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008529176A (ja) * 2005-01-28 2008-07-31 インテル・コーポレーション 仮想マシン環境のアドレス変換をサポートするための方法と装置

Also Published As

Publication number Publication date
US7035963B2 (en) 2006-04-25
US20030120856A1 (en) 2003-06-26
EP1405181A2 (en) 2004-04-07
AU2002249862A1 (en) 2002-07-24
WO2002056172A2 (en) 2002-07-18
US7020738B2 (en) 2006-03-28
RU2259582C2 (ru) 2005-08-27
TWI228221B (en) 2005-02-21
CN101826030A (zh) 2010-09-08
KR100624668B1 (ko) 2006-09-18
CN1575453B (zh) 2011-01-12
RU2003123112A (ru) 2005-02-27
KR20030097798A (ko) 2003-12-31
CN1575453A (zh) 2005-02-02
JP4021769B2 (ja) 2007-12-12
BR0116630A (pt) 2004-09-28
US20040064813A1 (en) 2004-04-01
WO2002056172A3 (en) 2004-01-08
CN101826030B (zh) 2012-12-05

Similar Documents

Publication Publication Date Title
JP4021769B2 (ja) 仮想マシン・モニタとゲスト・オペレーティング・システムの間のアドレス空間の競合を解決するための方法
US7818808B1 (en) Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7127548B2 (en) Control register access virtualization performance improvement in the virtual-machine architecture
US7886293B2 (en) Optimizing system behavior in a virtual machine environment
US7552426B2 (en) Systems and methods for using synthetic instructions in a virtual machine
US8380907B2 (en) Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8015388B1 (en) Bypassing guest page table walk for shadow page table entries not present in guest page table
US8479195B2 (en) Dynamic selection and application of multiple virtualization techniques
US8479295B2 (en) Method and apparatus for transparently instrumenting an application program
US20050076186A1 (en) Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
CA2915646C (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into (vm) virtualized memory
US20080244155A1 (en) Methods and apparatus to protect dynamic memory regions allocated to programming agents
US10860393B2 (en) Tracking driver load and unload on windows OS
CN106897121B (zh) 一种基于虚拟化技术的无代理客户机进程防护方法
EP2955634A1 (en) Paravirtualization-based interface for memory management in virtual machines
US10489185B2 (en) Hypervisor-assisted approach for locating operating system data structures based on attribute matching
US20180267818A1 (en) Hypervisor-assisted approach for locating operating system data structures based on notification data
US11550609B2 (en) Unified hypercall interface across processors in virtualized computing systems
CN102063594B (zh) 一种Windows平台下检测虚拟机监视器存在的方法
US10698783B2 (en) Virtualization detection in a computing system
Bungale et al. Supervisor-Mode Virtualization for x86 in VDebug
Poess Feasibility Study of Building a User-mode Native Windows NT VMM
HK1216679B (zh) 虛擬機中的頁面錯誤注入
HK1076517A (en) Systems and methods for using synthetic instructions in a virtual machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070329

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: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070927

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

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 6

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