(57)【特許請求の範囲】
【請求項１】
コンピュータシステムにおける仮想装置の制御方法であって、
該コンピュータシステム内のファームウェアから装置コンフィギュレーションポリシーを取得し、該装置コンフィギュレーションポリシーが、ブート時に適用される該コンピュータシステム内の少なくとも１つの埋込装置に対するグローバルアクセスパーミッションを定義するものであり、
選択されたユーザ又は選択された仮想マシン（VM）の少なくとも一方について確立された仮想装置コンフィギュレーションポリシーを取得し、該仮想装置コンフィギュレーションポリシーが、前記少なくとも１つの埋込装置に対する追加のアクセスパーミッションを定義するものであり、
前記グローバルアクセスパーミッション及び前記追加のアクセスパーミッションに基づいて前記コンピュータシステム上で実行されている前記選択されたVMのインスタンスについて仮想ハードウェア定義を確立する、
という各ステップからなる、コンピュータシステムにおける仮想装置の制御方法。
【請求項２】
前記仮想装置コンフィギュレーションポリシーが、前記選択されたユーザについて前記少なくとも１つの埋込装置に対するユーザアクセスパーミッションを定義するユーザ装置コンフィギュレーションポリシーと、前記選択されたVMについて前記少なくとも１つの埋込装置に対するVMアクセスパーミッションを定義するVM装置コンフィギュレーションポリシーとを含む、請求項１に記載の方法。
【請求項３】
前記VMアクセスパーミッションが前記ユーザアクセスパーミッションよりも高い優先順位を有しており、前記グローバルアクセスパーミッションが前記VMアクセスパーミッションよりも高い優先順位を有している、請求項２に記載の方法。
【請求項４】
前記グローバルアクセスパーミッションが前記追加のアクセスパーミッションよりも高い優先順位を有している、請求項１に記載の方法。
【請求項５】
前記コンピュータシステムが、前記選択されたVMを含む複数のVM並びに前記選択されたユーザを含む複数のユーザをサポートするハイパーバイザを含む、請求項１に記載の方法。
【請求項６】
プロセッサ、ファームウェア、及び少なくとも１つの埋込装置を含む物理ハードウェアであって、該ファームウェアが、ブート時に適用することが可能な前記少なくとも１つの埋込装置に対するグローバルアクセスパーミッションを定義する装置コンフィギュレーションポリシーを格納するものである、物理ハードウェアと、
前記プロセッサ上で実行され、少なくとも１つの仮想マシン（VM）及び少なくとも１つのユーザをサポートし、ユーザ識別及び仮想マシン識別の少なくとも一方に基づいて前記少なくとも１つの埋込装置に対する追加のアクセスパーミッションを定義する仮想装置コンフィギュレーションポリシーを確立し、及び前記グローバルアクセスパーミッション及び前記追加のアクセスパーミッションに基づいて前記少なくとも１つのVMのインスタンスの各々毎に仮想ハードウェア定義を確立する、ハイパーバイザと
を備えている、コンピュータシステム。
【請求項７】
前記仮想装置コンフィギュレーションポリシーが、前記少なくとも１つの埋込装置に対するユーザアクセスパーミッションを定義するユーザ装置コンフィギュレーションポリシーと、前記少なくとも１つの埋込装置に対するVMアクセスパーミッションを定義するVM装置コンフィギュレーションポリシーとを含む、請求項６に記載のコンピュータシステム。
【請求項８】
前記VMアクセスパーミッションが前記ユーザアクセスパーミッションよりも高い優先順位を有しており、前記グローバルアクセスパーミッションが前記VMアクセスパーミッションよりも高い優先順位を有している、請求項７に記載のコンピュータシステム。
【請求項９】
前記ハイパーバイザが、前記少なくとも１つの埋込装置の各々について装置モデルを提供する少なくとも１つの要素を含み、該少なくとも１つの要素が、前記グローバルアクセスパーミッション及び前記追加のアクセスパーミッションを処理して、前記少なくとも１つのVMのインスタンスの各々について仮想ハードウェア定義を提供する、請求項６に記載のコンピュータシステム。
【請求項１０】
前記ハイパーバイザが、前記仮想装置コンフィギュレーションポリシーを生成するためのコンフィギュレーション要素を含む、請求項６に記載のコンピュータシステム。
【請求項１１】
命令を格納したコンピュータ読み取り可能媒体であって、該命令が、プロセッサによる実行時にコンピュータシステムにおける仮想装置の制御方法を該プロセッサに実行させるものであり、該制御方法が、
前記コンピュータシステム内のファームウェアから装置コンフィギュレーションポリシーを取得し、該装置コンフィギュレーションポリシーが、ブート時に適用される該コンピュータシステム内の少なくとも１つの埋込装置に対するグローバルアクセスパーミッションを定義するものであり、
選択されたユーザ又は選択された仮想マシン（VM）の少なくとも一方について確立された仮想装置コンフィギュレーションポリシーを取得し、該仮想装置コンフィギュレーションポリシーが、前記少なくとも１つの埋込装置に対する追加のアクセスパーミッションを定義するものであり、
前記グローバルアクセスパーミッション及び前記追加のアクセスパーミッションに基づいて前記コンピュータシステム上で実行されている前記選択されたVMのインスタンスについて仮想ハードウェア定義を確立する、
という各ステップからなる、コンピュータ読み取り可能媒体。
【請求項１２】
前記仮想装置コンフィギュレーションポリシーが、前記選択されたユーザについて前記少なくとも１つの埋込装置に対するユーザアクセスパーミッションを定義するユーザ装置コンフィギュレーションポリシーと、前記選択されたVMについて前記少なくとも１つの埋込装置に対するVMアクセスパーミッションを定義するVM装置コンフィギュレーションポリシーとを含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１３】
前記VMアクセスパーミッションが前記ユーザアクセスパーミッションよりも高い優先順位を有しており、前記グローバルアクセスパーミッションが前記VMアクセスパーミッションよりも高い優先順位を有している、請求項１２に記載のコンピュータ読み取り可能媒体。
【請求項１４】
前記グローバルアクセスパーミッションが前記追加のアクセスパーミッションよりも高い優先順位を有している、請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１５】
前記コンピュータシステムが、前記選択されたVMを含む複数のVM並びに前記選択されたユーザを含む複数のユーザをサポートするハイパーバイザを含む、請求項１１に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デスクトップコンピュータやノートブックコンピュータ等のコンピュータシステムは、様々な周辺装置（埋込装置）がその内部に埋め込まれ得るものである。埋込装置の例として、ネットワークインタフェイスカード（NIC）、カメラ、モデム、マイク、スピーカ、様々な入出力（IO）インタフェイス（シリアル、パラレル、ユニバーサルシリアルバス（USB）等）、無線などが挙げられる。コンピュータシステムはまた、埋込装置を選択的にイネーブル又はディセーブルにすることを可能にする埋込装置制御機構を含むことが可能である。斯かる制御機構は、様々な理由（例えば、データセキュリティ、負荷の低減等）により幾つかの埋込装置をディセーブルにすることが必要とされる場合といった、様々な状況で有用となり得る。ディセーブルにすべき特定の埋込装置は、企業間で並びに各企業内のユーザ間で異なり得るものである。
【図面の簡単な説明】
【０００２】
【図１】例示的な一実施形態によるコンピュータシステムのブロック図である。
【図２】例示的な一実施形態によるコンピュータシステムにおける仮想装置制御方法のフローチャートである。
【図３】例示的な一実施形態によるコンピュータを示すブロック図である。
【発明を実施するための形態】
【０００３】
図１は、例示的な一実施形態によるコンピュータシステム100のブロック図である。該コンピュータシステム100は、物理ハードウェア102及びハイパーバイザ104を含む。コンピュータシステム100は、任意のタイプのデスクトップコンピュータやモバイルコンピュータ等として実施することが可能である。物理ハードウェア102は、ファームウェア（ファームウェア106）を格納するためのメモリ、プロセッサ122、及び少なくとも１つの埋込装置（１つ以上の埋込装置108）を含む。物理ハードウェア102は、メモリ、キャッシュ、電源、クロック回路、データレジスタ、IO回路等の、様々な他の装置124を含むことが可能である。１つ以上の埋込装置108は、ワイヤレスインタフェイス（例えば、IEEE802.11、Bluetooth等）、ネットワークインタフェイス、イメージング装置、オーディオ装置、モデム、シリアルポート、パラレルポート、メモリリーダ、ユニバーサルシリアルバス（USB）ポート、FireWireポート、及びその類の周辺装置といった、プロセッサ122の周辺の様々な装置を含むことが可能である。ファームウェア106は、EEPROM（Electronically Erasable Programmable Read Only Memory）、FLASHメモリ、又はその類といった不揮発性メモリを使用して実施することが可能である。プロセッサ122は、１つ以上の任意のタイプのマイクロプロセッサを含むことが可能である。
【０００４】
ファームウェア106は、物理ハードウェア102の電源投入時又はリセット時にプロセッサ122により実行されるブートプログラムコード126（例えば、BIOS（Basic Input/Output System）、UEFI（Unified Extensible Firmware Interface）、又はその類のファームウェアインタフェイス）を含むことが可能である。該ファームウェア106は更に、物理ハードウェア102の１つ以上の埋込装置に対するアクセス許可を定義する装置コンフィギュレーションポリシー（「グローバルポリシー110」と称す）を含むことが可能である。例えば、グローバルポリシー110は、前記ブートプログラムコード126により実施することが可能であり、又はファームウェア106に格納されておりプロセッサ122により実行される別個のスタンドアロンプログラムコードを使用して実施することが可能である。グローバルポリシー110で定義されるアクセス許可は、埋込装置108のための「グローバルアクセス許可」である。一般に、グローバルアクセス許可は、物理ハードウェア102内の１つ以上の埋込装置108に対するアクセスを制御する。該グローバルアクセス許可は、例えば、物理ハードウェア102の電源投入時又はリセット時（ブート時）に１つ以上の装置をイネーブルにするかディセーブルにするかを含むことが可能である。以下で更に説明するように、グローバルアクセス許可はまた、１つ以上の装置へのアクセスをハイパーバイザ104により修正することができるか否か、及び１つ以上の装置をハイパーバイザ104から可視とするか不可視とするかを含むことが可能である。グローバルアクセス許可について以下で更に説明する。グローバルポリシー110により定義されるグローバルアクセス許可は、ブート時に実行することが可能である。
【０００５】
ハイパーバイザ104の機能の各要素は、物理ハードウェア102による（例えばプロセッサ122を用いた）マシン読み取り可能命令の実行を介して提供することが可能である。一般に、ハイパーバイザ104は、１つ以上の仮想マシンのためのハードウェアの仮想化を提供する。ハイパーバイザ104は、少なくとも１つの仮想マシン（仮想マシン112"）、少なくとも１つの定義されたユーザ（ユーザ114）、コンフィギュレーション要素116、及び少なくとも１つの装置モデル要素（装置モデル要素120）を含む。１つ以上の仮想マシン112の各々は、オペレーティングシステム（「ゲストオペレーティングシステム」とも呼ばれる）を含むマシン（例えばコンピュータ）をソフトウェアにより実施したものを含むことができる。仮想マシン112がブートされた際、ハイパーバイザ104は、該仮想マシンのインスタンス（仮想マシンインスタンス）を１つ以上のユーザ114により使用されるよう管理する。
【０００６】
コンフィギュレーション要素116は、仮想装置コンフィギュレーションポリシー（装置アクセス制御用ポリシー（PDAC）118）において埋込装置108のための更なるアクセス許可を定義する。該PDAC118は、１つ以上のユーザ114及び／又は１つ以上の仮想マシン112のためのアクセス許可を定義することができる。一例では、PDAC118はグローバルポリシー110に従属するものである（すなわち、グローバルポリシーで定義されている許可は、PDAC118で定義されている許可に優先することができる（そのように設定されている場合））。例えば、グローバルポリシー110は、埋込装置108へのアクセスをハイパーバイザ104により修正することができるか否かを定義することができる。グローバルポリシー110が、特定の埋込装置のアクセスに対する変更を阻止している場合には、その特定の装置についてPDAC118で定義されている如何なる許可も有効とはならないことになる。グローバルポリシー110が、特定の埋込装置のアクセスに対する変更を許可している場合には、PDAC118で定義されている許可は、該装置に対するアクセスに影響を与え得るものとなる（例えば、PDAC118は、グローバルポリシー110で定義されているアクセス許可を変更することができる）。実施形態によっては、グローバルポリシー110は、そのアクセス許可をハイパーバイザ104（ひいてはコンフィギュレーション要素116）に対して可視とも不可視ともすることが可能である。装置に対するアクセス許可が不可視である場合には、PDAC118は、斯かる装置について確立された許可を有さない。
【０００７】
例えば、PDAC118は、ユーザ装置コンフィギュレーションポリシー（ユーザポリシー）及びVM装置コンフィギュレーションポリシー（VMポリシー）を含むことが可能である。ユーザポリシーは、各ユーザ114毎に埋込装置108に対するアクセス許可（ユーザアクセス許可）を定義することができる。VMポリシーは、各VM112毎に埋込装置108に対するアクセス許可（VMアクセス許可）を定義することができる。一例では、VMアクセス許可は、ユーザアクセス許可よりも高い優先順位を有する（そのように設定されている場合）（グローバルポリシー110におけるグローバルアクセス許可が最高の優先順位を有する）。
【０００８】
例えば、所与の埋込装置Aについて考察する。グローバルポリシー110におけるアクセス許可は、ハイパーバイザ104が埋込装置Aに対するアクセスを変更することが可能となり及びブート時に該埋込装置Aがイネーブルにされるように定義することができる。一方、PDAC118におけるアクセス許可は、埋込装置AがVM1に対してイネーブルにされるがユーザXに対してはディセーブルにされるように定義することができる。埋込装置Aは、VM1の１つ以上の他のユーザに対してはイネーブルにされるが、ユーザXに対してはディセーブルにされることになる。PDAC118におけるアクセス許可は、埋込装置AがVM2に対してディセーブルにされるように定義することができる（グローバルポリシー110が斯かる変更を許可しているため）。一例では、一般に（全てのユーザに対して）埋込装置AがVM2においてディセーブルにされているため、VM2での埋込装置Aへのアクセスをユーザアクセス許可が許可することはできない。
【０００９】
別の例では、グローバルポリシー110におけるアクセス許可は、ハイパーバイザ104が埋込装置Bへのアクセスに対する変更を許可せず該埋込装置Bがディセーブルにされるように定義することが可能である。このため、PDAC118内のアクセス許可は、如何なるVM及び／又はユーザに対しても埋込装置Bをイネーブルにすることはできない。
【００１０】
一例では、コンフィギュレーション要素116はユーザインタフェイスを含む。１つ以上のユーザ114のうちの１つ以上は、コンフィギュレーション要素116にアクセスし及びそのユーザインタフェイスを使用してPDAC118を確立することが可能である。一例では、コンフィギュレーション要素116は、１つ以上のVM112のインスタンスからアクセスすることが可能である。
【００１１】
１つ以上の装置モデル要素120は、物理ハードウェア102と１つ以上のVM112との間のインタフェイスを提供する。装置モデル要素120は、例えば、仮想BIOS及び個々の装置毎の仮想装置モデル等を含むことが可能である。装置モデル要素120は、グローバルポリシー110及びPDAC118に基づいて１つ以上のVM112の各インスタンス毎に仮想ハードウェア定義を確立する。該仮想ハードウェア定義は、グローバルポリシー110及びPDAC118の組み合わせによりイネーブルにされた埋込装置のみに対するアクセスをモデル化し又はその他の態様で提供する。このため、１つ以上のVM112の各々に提示される仮想ハードウェアは、該１つ以上のVM112の各インスタンス毎にカスタマイズすることが可能である。
【００１２】
したがって、VM112内への埋込装置制御の拡張を可能にするポリシードリブンなコンフィギュレーションをハイパーバイザ104の領域内で提供することが可能である。埋込装置制御は、VMの起動時に、カスタマイズされた仮想ハードウェア定義を介して１つ以上のVM112の各インスタンスに適用することが可能である。このため、ユーザ114は、特定のVMに対して埋込装置アクセスについてのポリシー変更を適用するために、全てのVMインスタンスをシャットダウンさせることになる物理ハードウェア102のリスタートを行う必要はない。
【００１３】
図２は、例示的な一実施形態によるコンピュータシステムにおける仮想装置の制御方法200のフローチャートである。該方法200は、ステップ202で開始して、該コンピュータシステムにおける１つ以上の埋込装置に対するグローバルアクセス許可を定義する装置コンフィギュレーションポリシーをファームウェアから取得する。ステップ204で、選択されたユーザ又は選択されたVMの少なくとも一方についての追加のアクセス許可を確立する仮想装置コンフィギュレーションポリシーが取得される。該仮想装置コンフィギュレーションポリシーは、１つ以上の埋込装置に対する追加のアクセス許可を定義する。ステップ204は、更なる選択されたユーザ及び／又は選択されたVMについて繰り返すことが可能である。ステップ206で、グローバルアクセス許可及び追加のアクセス許可に基づいて、コンピュータシステム上で実行されている選択されたVMのインスタンスについて仮想ハードウェア定義が確立される。ステップ206は、追加のVMインスタンスについて繰り返すことが可能である。
【００１４】
図３は、例示的な実施形態によるコンピュータ300を示すブロック図である。コンピュータ300は、プロセッサ302、IOインタフェイス306、及びメモリ308を含む。コンピュータ300はまた、サポート回路304及び１つ以上のハードウェア周辺装置310（例えば埋込装置）を含むことが可能である。プロセッサ302は、任意のタイプのマイクロプロセッサ、マイクロコントローラ、マイクロコンピュータ、又は当業界で既知の同様のタイプのコンピューティング装置を含むことが可能である。プロセッサ302のためのサポート回路304は、キャッシュ、電源、クロック回路、データレジスタ、IO回路等を含むことが可能である。IO回路306は、メモリ308に直接接続することが可能であり、又はプロセッサ302を介してメモリ308に接続することが可能である。メモリ308は、ランダムアクセスメモリ、リードオンリーメモリ、キャッシュメモリ、磁気リード／ライトメモリ、若しくはその類、又は斯かるメモリ装置の任意の組み合わせを含むことが可能である。１つ以上のハードウェア周辺装置310は、プロセッサ302に代わって機能を実行する様々なハードウェア回路を含むことが可能である。
【００１５】
ハイパーバイザ320は、プロセッサ302によるマシン読み出し可能命令の実行を介して実施することが可能である。メモリ308は、ハイパーバイザ320及びその様々な機能を実施するためにプロセッサ302により実行されるコード318を格納することが可能である。メモリ308はまた、グローバルポリシー314を有するファームウェアコード312及びPDAC316を格納する。グローバルポリシー314は、ブート時に適用されるハードウェア周辺装置310に対するグローバルアクセス許可を含む。PDAC316は、ハイパーバイザ320により管理されるVMインスタンスに適用されるハードウェア周辺装置310に対する追加のアクセス許可を含む。上述のようにハイパーバイザ320は、グローバルポリシー314及びPDAC316に基づいてVMインスタンスの各々毎に仮想ハードウェア定義を確立する。
【００１６】
上述した方法は、該方法を実行するようにコンピュータシステムを構成するためのコンピュータ読み取り可能媒体という形で実施することが可能である。該コンピュータ読み取り可能媒体は、複数の物理的な装置（例えばコンピュータ）にわたって配布することが可能である。該コンピュータ読み取り可能媒体は、例えば、ディスク及びテープ記憶媒体を含む磁気記憶媒体、コンパクトディスク媒体（例えば、CD-ROM,CD-R）及びディジタルビデオディスク記憶媒体といった光学記憶媒体、ホログラムメモリ、FLASHメモリ、EEPROM、EPROM、ROMといった半導体ベースのメモリ装置を含む不揮発性記憶媒体、強磁性体ディジタルメモリ、レジスタ、バッファ又はキャッシュ、メインメモリ、RAM等を含む揮発性記憶媒体を任意の個数だけ含むことが可能である（但しそれらには限定されない）。その他の新規の多種多様なコンピュータ読み取り可能媒体を使用して、本書で説明したマシン読み取り可能コードを格納することが可能である。
【００１７】
上記説明では、本発明の理解を提供すべく多数の細部を示した。しかし、当業者には理解されるように、本発明は、斯かる細部なしで実施することが可能である。限られた数の実施形態に関して本発明を説明したが、斯かる実施形態に対する多数の修正及び変形が当業者には理解されよう。特許請求の範囲は、斯かる修正及び変形を本発明の真の思想及び範囲内のものとして網羅することを意図したものである。
【図１】
0005779281.tif 000002
【図２】
0005779281.tif 000003
【図３】
0005779281.tif 000004