(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6063941
(24)【登録日】2016年12月22日
(45)【発行日】2017年1月18日
(54)【発明の名称】システム管理要求のための仮想高特権モード
(51)【国際特許分類】
G06F 21/57 20130101AFI20170106BHJP
G06F 9/46 20060101ALI20170106BHJP
【FI】
G06F21/57
G06F9/46 350
【請求項の数】13
【全頁数】12
(21)【出願番号】特願2014-528336(P2014-528336)
(86)(22)【出願日】2011年8月30日
(65)【公表番号】特表2014-527674(P2014-527674A)
(43)【公表日】2014年10月16日
(86)【国際出願番号】US2011049677
(87)【国際公開番号】WO2013032442
(87)【国際公開日】20130307
【審査請求日】2014年2月27日
【審判番号】不服2015-18092(P2015-18092/J1)
【審判請求日】2015年10月5日
(73)【特許権者】
【識別番号】511076424
【氏名又は名称】ヒューレット−パッカード デベロップメント カンパニー エル.ピー.
【氏名又は名称原語表記】Hewlett‐Packard Development Company, L.P.
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(72)【発明者】
【氏名】アリ,ヴァリウディン,ワイ
(72)【発明者】
【氏名】ピリス,ホセ,パウロ,ザビエル
(72)【発明者】
【氏名】マン,ジェイムス,エム
(72)【発明者】
【氏名】バラシェフ,ボリス
(72)【発明者】
【氏名】ダルトン,クリス,アイ
【合議体】
【審判長】
高木 進
【審判官】
辻本 泰隆
【審判官】
須田 勝巳
(56)【参考文献】
【文献】
特表2005−529401(JP,A)
【文献】
特表2009−508183(JP,A)
【文献】
特表2010−517162(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/00-21/88
G06F 9/46- 9/54
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
プロセッサと、
物理基本入出力システムと、
特権ドメインを管理するための仮想マシンモニタと、
システム管理要求を処理するための、前記特権ドメインにおける仮想高特権モードと
を含み、
前記仮想マシンモニタは、前記特権ドメイン以外の要求元から前記物理基本入出力システムへのシステム管理要求を捕捉し、当該システム管理要求を前記仮想高特権モードへルーティングするためのものであり、前記仮想高特権モードは、前記プロセッサをシステム管理モードに入らせることなく前記システム管理要求を処理し、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止する、コンピューティングシステム。
【請求項2】
前記システム管理要求は、システム管理割り込み、及びシステム管理命令のうちの少なくとも一方を含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記特権ドメインは、ドメイン0である、請求項1又は請求項2に記載のコンピューティングシステム。
【請求項4】
前記システム管理要求は、仮想基本入出力システム(vBIOS)によって受信され、前記仮想高特権モードへ転送されるか、Winodows Management Instrumentation(WMI)ラッパーに入れて前記仮想高特権モードに与えられるか、及び、リモート・プロシージャ・コール(RPC)によって前記仮想高特権モードに与えられるかのうちの何れか1つである、請求項1〜3の何れか一項に記載のコンピューティングシステム。
【請求項5】
前記仮想高特権モードは、システム構成変更を実施するためのものである、請求項1〜4の何れか一項に記載のコンピューティングシステム。
【請求項6】
プロセッサを有するコンピューティングシステムにおいてシステム管理要求を処理する方法であって、
仮想マシンモニタにより、特権ドメインを管理し、
前記仮想マシンモニタにより、前記特権ドメイン以外の要求元から物理基本入出力システムへのシステム管理要求を捕捉し、
前記仮想マシンモニタにより、前記システム管理要求を、前記特権ドメインにおける前記仮想高特権モードへルーティングし、
前記仮想高特権モードにより、前記システム管理要求を受信し、
前記プロセッサをシステム管理モードに入らせることなく、前記仮想高特権モードにより前記システム管理要求を処理し、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止すること
を含む方法。
【請求項7】
前記仮想高特権モードにより、システム構成を変更することをさらに含む、請求項6に記載の方法。
【請求項8】
前記仮想高特権モードは、ゲストドメインにとって使用できない前記システム構成を変更する、請求項7に記載の方法。
【請求項9】
前記特権ドメインは、ドメイン0である、請求項6〜8の何れか一項に記載の方法。
【請求項10】
プロセッサによって実行されたときにコンピューティングシステムに、
仮想マシンモニタを用いて特権ドメインを管理させ、
前記仮想マシンモニタにより、前記特権ドメイン以外の要求元から物理基本入出力システムへのシステム管理要求を捕捉させ、
前記仮想マシンモニタにより、前記システム管理要求を、前記特権ドメインにおける前記仮想高特権モードへルーティングさせ、
前記仮想高特権モードにより、前記システム管理要求を受信させ、
前記プロセッサを前記システム管理モードに入らせることなく、前記仮想高特権モードにより前記システム管理要求を処理させ、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止するコード
を含むコンピュータ読取可能媒体。
【請求項11】
実行されたときに前記コンピューティングシステムに、
前記仮想高特権モードにより、ゲストドメインにとって使用できないシステム構成を変更させるコード
をさらに含む、請求項10に記載のコンピュータ読取可能媒体。
【請求項12】
実行されたときに前記コンピューティングシステムに、
仮想基本入出力システム(vBIOS)により、前記システム管理要求を受信させ、
前記システム管理要求を前記仮想基本入出力システム(vBIOS)から前記仮想高特権モードへ転送させるコード
をさらに含む、請求項10又は請求項11に記載のコンピュータ読取可能媒体。
【請求項13】
前記特権ドメインは、ドメイン0である、請求項10〜12の何れか一項に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータ又は他のタイプの装置のような電子装置は、電子装置の起動について責任を負う基本入出力システム(BIOS)を含むことができる。起動の際に、BIOSは、電子装置の種々の構成要素を初期化し、構成し、オペレーティングシステムを電子装置にロードする。また、BIOSは、電力管理サービス、熱管理サービス、及びBIOSアップデートサービス等のような他のサービスをさらに提供することができる。
【0002】
一部の実施形態は、下記の図面を参照して説明される。
【図面の簡単な説明】
【0003】
【
図1】仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。
【
図2】仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。
【
図3】例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。
【
図4】例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。
【
図5】コンピュータ読取可能媒体の例示的実施形態によるコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【0004】
詳細な説明
基本入出力システム(BIOS)は通常、電子装置が起動したときに、電子装置によって実行される最初のコードである。電子装置の例としては、コンピュータ(例えば、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータなど)、携帯装置(例えば、携帯情報端末(PDA)、スマートフォンなど)、電子アプライアンス、ゲームコンソール、又は、他のタイプの電子装置が挙げられる。BIOSは、電子装置の種々のハードウェア構成要素を初期化し、構成し、電子装置のオペレーティングシステム(OS)をロードし、開始する。BIOSのコードは通常、フラッシュメモリデバイス、又は、他のタイプのプログラマブル・リード・オンリー・メモリ(ROM)のような不揮発性メモリに記憶される。
【0005】
BIOSは、電子装置において実施することが可能な他の機能も提供する。電子装置において、BIOSのそのような他の機能の多くは、OSの実行がサスペンド(一時停止)される動作モードであるシステム管理モード(SMM)に入ることによって、実行されることが多い。また、複数のプロセッサ又はプロセッサコアを有する電子装置の場合、SMMモードにおいて、それらのプロセッサ又はプロセッサコアの1つを除く全てが無効化されることがある。SMMモードに入るためには、システム管理割り込み(SMI)をアサートし、個々の機能(複数可)を実施するために、大抵は比較的高い特権モードで、SMIハンドラ(これは、BIOSの一部である)を実行する。
【0006】
BIOS機能を実施するためにSMMモードに入ることは、種々の問題を伴うことがある。第1に、OSの実行がサスペンドされるため、通常の電子装置動作を進めることができない。また、SMMモードにある間、プロセッサ(複数可)又はプロセッサコア(複数可)が無効化される電子装置では、電子装置の処理能力の一部が一時的に無力化され、その結果、処理能力のそのような部分を他のタスクの実施に利用することができないことを意味する。また、SMM処理にどの程度の時間がかかるのかを予測することは難しい場合があり、その結果、電子装置の動作に不確定性が生じることがある。さらに、BIOS機能によっては、完了するのに比較的長い時間(例えば、数分程度)を要することがあり、電子装置のユーザは、ステータス情報を入手できない場合があり、その結果、ユーザを動揺させることがある。なぜなら、ユーザは、電子装置が適切に機能しているか否かを究明することができないからである。
【0007】
セキュリティもまた問題となる場合がある。なぜなら、マルウェア(悪意のあるソフトウェア)が、SMM動作中に攻撃を仕掛ける場合があり、それが、システム破壊をもたらすことがあるからである。SMM動作に対するそのような攻撃を回避するためにとられる種々のセキュリティ対策は、電子装置の設計の複雑さを増大させる原因となることがある。かかるセキュリティ対策の例としては、種々のレジスタ、及び/又は、フラッシュメモリデバイス若しくは他のタイプのプログラマブル・リード・オンリー・メモリのような不揮発性メモリの一部のような、特定の記憶領域をロックすることが挙げられる。また、セキュリティ対策は、BIOSコードアップデートのような特定のBIOS機能の性能に制限を課す場合があり、制限は、そのようなBIOS機能をシステム再起動のような特定時点にのみ実施すべきことを強制することがある。
【0008】
SMMにおいてよく実施される種々の機能の例には、次のうちの何れか1つ、又はそれらの組み合わせが含まれ得る。すなわち、BIOSコードをアップデートするためのサービス;BIOSの設定にアクセスし又はその設定を変更するためのサービス;熱管理を実施する(例えば、電子装置においてファンのような冷却装置を制御する)ための熱管理サービス;(特定のハードウェア構成要素に対する電力の除去又は復旧をする)電力管理サービス;異なる電力状態(例えば、ハイバネーション状態、スリープ状態、及び完全オン状態等)間において電子装置を遷移させるためのサービス;電子装置のボタン又はボタンシーケンス(例えば、無線インタフェース構成要素をオン/オフするためのボタンや、一部の所定のタスクを実施するためのホットキーシーケンスなど)の駆動(複数ボタンの一部の組み合わせの駆動を含む)を処理するサービス;(電子装置の周りの周囲光を検出するための)電子装置の周囲光センサに関連するサービス;電子装置におけるハードウェア構成要素の設定を変更するためのサービス;電子装置のブート装置のブート順序を変更するためのサービス;OSとBIOSとの間の特定タイプの呼び出し(例えば、割り込み15呼び出し)を処理するサービス;内蔵コントローラのコマンドを実行するためのサービス;及び、特定条件下でレガシー周辺機器をサポートするためのサービスである。
【0009】
種々のBIOS機能の例を上に列挙したが、実施形態によっては、他のBIOS機能又は代替のBIOS機能が使用される場合もある。
【0010】
実施形態によっては、より強固なシステム挙動を得るために、BIOSの種々機能は、電子装置の特権ドメインに設けられることがある。特権ドメインは、比較的安全で、かつ、電子装置の他のエンティティは入手することができないある所定の特権(複数可)を有する、電子装置の一領域(ドメイン)である。一般に、「特権ドメイン」とは、当該ドメイン内のエンティティに対しては、電子装置の種々の機能を実施することを許可し、他のエンティティ(例えば、OS、アプリケーションプログラムなど)に対しては、そのような実施を許可しない、所定の特権(複数可)を有するドメインのことを言う。また、特権ドメインは、権限を有しないアクセス又は攻撃から特権ドメインを保護するためのセキュリティメカニズムをさらに有する。
【0011】
SMMモードの種々の機能を仮想高特権モードに移すことにより、電子装置は、仮想高特権モードに移されたそのようなBIOS機能を実施するために、SMMモードに入る必要はなくなる。実施形態によっては、SMM処理をハードウェアから完全に無くすことができる。実施形態によっては、特定のBIOS機能を実施するためのSMM処理は依然として可能であるが、残りのBIOS機能は、仮想高特権モードを通して実施される場合がある。
【0012】
特権ドメインの例としては、次のうちの任意の、又は一部の組み合わせが挙げられる。すなわち、ドメイン0(これは、管理タスクを実施するために仮想マシンモニタ(ハイパーバイザーとも呼ばれる)によって開始される最初のドメインであることが多い);仮想マシンモニタ(又はハイパーバイザー)の一部;拡張された特権及び/又はセキュリティをゲスト仮想マシンに与えるための所定の設定を有するゲスト仮想マシン;又は、所定の特別な特権及び/又はセキュリティメカニズムを有する、電子装置における他のタイプのドメインである。安全な特権ドメインは、トラステッド(高い信頼性を有する)ランタイムBIOSを含むことがあり、当該BIOSは、ピアレベルの構成要素を有することなく、仮想高特権モードを他のドメインから分離し、保護するためのシステム管理モード転送モニタのような仮想マシンモニタを用いて、システム管理命令を安全に処理するための、仮想高特権モードを有することができる。
【0013】
「仮想マシン」(「仮想アプライアンス」又は「仮想パーティション」とも呼ばれる)とは、物理マシンを仮想化し、又はエミュレートするために設けられた物理マシン(電子装置)の一部のパーティション又はセグメントのことを言う。ユーザ又はアプリケーションから見れば、仮想マシンは、物理マシンのように見える。仮想マシンは、オペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)、及び少なくとも1つのアプリケーションプログラムを含む。
【0014】
ハイパーバイザーとも呼ばれる仮想マシンモニタ(VMM)は、電子装置のハードウェア構成要素のような物理リソースの仮想マシンによる共有を管理する。VMMは、物理リソースを仮想化する。各仮想マシンは、VMMによって管理される関連仮想化物理リソースを有する。VMMは、物理リソースの要求を処理する。
【0015】
図面を参照すると、
図1は、仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。コンピューティングシステム100は、プロセッサ110を含むことができる。プロセッサ110は、コンピューティングシステム100のハードウェア105の一部である。プロセッサ110は、汎用プロセッサであってもよいし、特定用途向けプロセッサであってもよい。例えば、ハードウェア105は、I/Oデバイス、揮発性メモリ、二次記憶装置、フラッシュメモリ、ネットワークインタフェースコントローラ、及びグラフィックスアダプタ等をさらに含むことができる。システムは、種々のハードウェア構成要素の物理リソースを管理し、当該物理リソースを仮想化するための仮想マシンモニタをさらに含むことができる。コンピューティングシステムは、ゲストドメイン130に取り付けられた仮想基本入出力システム(vBIOS)135を含む。ゲストドメイン130は、Microsoft(登録商標) Windows(登録商標)、Linux(登録商標)、UNIX(登録商標)、又は他のオペレーティングシステムのようなオペレーティングシステムを実行することがある仮想マシンである。
【0016】
一部の例において、特権ドメイン120は、ドメイン0である。ドメイン0は、システム起動時にVMM102によって開始される管理ドメインであり、拡張された特権及びセキュリティメカニズムを有する。ドメイン0により実施されるタスクの例としては、ゲストドメインを作成し、設定することが挙げられる。ドメイン0及びゲストドメインはそれぞれ、対応する仮想マシンとみなされる。特権ドメイン120は、VMM115から分離することができる。代替実施形態において、特権ドメイン120は、VMM115の一部であってもよい。そのような代替実施形態では、トラステッドランタイムBIOS機能125は、VMM115の一部である。特権ドメイン120は、トラステッドVMM115により生成され、管理されるため、トラステッドドメインである場合がある。
【0017】
特権ドメイン120にBIOS機能125を与えることにより、「トラステッドランタイムBIOS125」又はBIOS.vとも呼ばれる「クラウド状BIOS」を実施する。「クラウド」とは、特権ドメイン120(又は何らかの他のトラステッドドメイン)のことを言う場合がある。クラウドは、コンピューティングシステム100に配置されてもよいし、コンピューティングシステム100の外部に配置されてもよい。例えば、トラステッドランタイムBIOS125機能を含むクラウドは、ネットワークを介してコンピューティングシステム100によりアクセス可能とされる場合がある。ネットワークは、例えば、ローカルネットワークであっても、ワイドネットワークであっても、ワールドワイドネットワークであってもよい。
【0018】
コンピューティングシステム100は、システム管理要求を処理するための仮想高特権モード140を含む場合がある。システム管理要求は、システム管理割り込み、及びシステム管理命令のうちの少なくとも一方を含む。システム管理要求は、例えば、ゲストドメイン130により発行される場合もあれば、又は特権ドメイン120により発行される場合もある。仮想高特権モード140は、特権ドメイン内のトラステッドランタイムBIOSの中に示されているが、仮想高特権モード140は、VMM115により生成若しくは管理される如何なるトラステッドドメインであってもよく、あるいは、VMM115自体に含まれてもよい。VMMにより生成又は管理される他のドメインであってトラステッドドメインであり得るものには、特権ドメイン120、仮想アプライアンス、ゲストドメイン130が含まれ得る。
【0019】
システム管理要求を処理するための仮想高特権モード140は、プロセッサ110又は他のハードウェア105がシステム管理モードに入ることを防止することができる。システム管理モードは、システム管理要求が処理されるまで、処理の停止を引き起こす。例えば、ゲストドメイン130がシステム管理要求を生成した場合、仮想マシンモニタ115は、そのシステム管理要求によってプロセッサ110がシステム管理モードにされることを防止し、当該要求を処理するために、そのシステム管理要求を仮想高特権モード140へリダイレクトすることができる。仮想高特権モードは、通常ならばプロセッサのシステム管理モードにおいて実施されることになるシステム構成変更を実施するためのハードウェアへのアクセスを有する場合がある。一例として、ハードウェア105へのアクセスは、仮想マシンモニタ115によって与えられる場合がある。
【0020】
図2は、仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。コンピューティングシステム200は、プロセッサ210を含むことができる。プロセッサ210は、コンピューティングシステム200のハードウェア205の一部である。ハードウェアは、ファームウェア245を含むことができ、ファームウェア245は、基本入出力システム(BIOS)250、及び拡張可能なファームウェアインタフェース(EFI)255を含む場合がある。BIOS250は、物理BIOSと呼ばれることがある。「物理BIOS」とは、フラッシュメモリ又は他のプログラマブル・リード・オンリー・メモリのような不揮発性メモリに置かれたBIOSコードであって、コンピューティングシステム200の起動時に実行されるべきものを言う。一部の実施形態において、物理BIOSは、BIOSの軽量(簡略)バージョンである場合がある。なぜなら、システム管理モードの少なくとも一部が、仮想高特権モードへ移されるからである。トラステッドランタイムBIOS225が実施される場合、トラステッドランタイムBIOS225に信用が付随するため、変更を可能にするために、物理BIOS250は、アンロック状態に留まる場合がある。プロセッサ210は、汎用プロセッサであってもよいし、特定用途向けプロセッサであってもよい。システムは、ハードウェア構成要素の物理リソースを管理し、当該物理リソースを仮想化するために、仮想マシンモニタVMM215を含むことができる。コンピューティングシステム100は、ゲストドメイン230に取り付けられた仮想基本入出力システム(vBIOS)235を含む。ゲストドメイン230は、Microsoft(登録商標) Windows(登録商標)、Linux(登録商標)、UNIX(登録商標)、又は他のオペレーティングシステムのようなオペレーティングシステムを実行することがある仮想マシンである。
【0021】
一部の例において、特権ドメイン220は、ドメイン0、すなわち、起動時にVMM202によって開始される管理ドメインであり、このドメインは、拡張された特権及びセキュリティメカニズムを有する。ドメイン0により実施されるタスクの例としては、ゲストドメインを作成し、設定することが挙げられる。ドメイン0及びゲストドメインはそれぞれ、対応する仮想マシンとみなされる。特権ドメイン220は、VMM215から分離することができる。代替実施形態において、特権ドメイン220は、VMM215の一部であってもよい。そのような代替実施形態では、トラステッドランタイムBIOS225は、VMM215の一部である。
【0022】
仮想システム管理モード240は、システム管理要求を処理するためのものであり、仮想システム管理モード240は、システムハードウェア205をシステム管理モードにするための種々の機能を実施することが可能な仮想高特権モードである。システム管理モードの種々の機能を仮想システム管理モード240で処理することにより、プロセッサがシステム管理モードに入らないことから、システム管理モードにあるときにプロセッサ210が種々の命令及びデータの処理を停止することを、防止することができる。実施形態によっては、プロセッサ210は、システム管理モードを有しない場合がある。
【0023】
種々の実施形態において、仮想システム管理モード240は、VMM215自体又は仮想アプライアンス260のようなVMM215により生成され又は管理される何れのトラステッドドメインにあっても、特権ドメイン220にあってもよく、あるいは、ゲストドメイン230にあってもよい。一例において、システム管理要求が生成される。システム管理要求は、システム管理要求を処理するために、仮想システム管理モード240へ転送される。一実施形態において、システム管理要求は、仮想基本入出力システム(vBIOS)235によって受信され、仮想システム管理モード240へと転送される場合がある。システム管理要求は、ウェブサービスのアプリケーション・プログラミング・インタフェース(API)によって送信されることができる。他の実施形態として、システム管理要求は、Windows Management Instrumentation(WMI)ラッパーの中に詰め込まれる場合がある。他の実施形態としては、リモート・プロシージャ・コール(RPC)を使用して、システム管理要求を仮想システム管理モードへ転送することが挙げられる。
【0024】
一部の実施形態において、クラウド状BIOSは、VMMベースのアーキテクチャの次のような前提に基づく。すなわち、物理BIOSは、物理BIOSがブートしているメイン・ランタイム・エンティティ(VMM215)を知っていて、当該エンティティを信用していること、及び、BIOSに信用されたVMMは、特権ドメインからやって来るものを除き、(BIOS機能にアクセスするための)全てのI/O要求を捕捉し、当該I/O要求をオフにする機能を有することである。一部の実施形態では、コンピューティングシステムによりブートすべきVMMの出所を確認するために、BIOS検査メカニズムが設けられる場合がある。そのような検査メカニズムによれば、管理者又は他のユーザは、コンピューティングシステムにおいて権限を有するVMMのみがブートできるように指定することができる。検査メカニズムによれば、コンピューティングシステムにおけるVMMイメージが悪意により変更されていないこと、及びVMMが信用できるものであることを確認することができる。物理BIOSは、VMMイメージを検査し、VMMが、以前に指定された既知の一組の制御された動作設定を使用してブートされることを確認することができる。その後、VMMは、ハードウェア205をシステム管理モードにすることなく、トラステッド環境においてシステム管理要求を処理するために、仮想高特権モード240を生成し、管理する場合がある。
【0025】
権限を有するVMMがブートされたことを確認した後、物理BIOSは、権限を有しない、又は悪意のあるコードによる破壊を防止するために物理BIOSが通常実施するであろう種々のセキュリティ測定の実行を、延期又は省略することができる。例えば、物理BIOSは、BIOSフラッシュレジスタ及び/又はフラッシュメモリの種々の部分をロックしないことを選択することができる。
【0026】
実施形態によっては、トラステッドランタイムBIOS225は、コンピューティングシステム200の内部に設けられる場合もあるが、トラステッドランタイムBIOS225は、コンピューティングシステムの外部に設けられる場合もある。ゲスト仮想マシン、又は、BIOSサービスにアクセスすることを望むコンピューティングシステムの他のエンティティから見れば、BIOSサービスを含むクラウドは、どこに配置されてもよく、例えば、コンピューティングシステムの外部の場所に配置されてもよい。
【0027】
トラステッドランタイムBIOSを備えた一実施形態では、特権ドメインでも他のトラステッドドメインでもない他のドメインは、BIOSと通信することができない。これは、ゲストドメインからBIOSへの通信手段を全て捕捉し、受信及び処理のための適当なフィルタのために、特権ドメイン部分へルーティングすることを確保することによって可能となる。そして、特権ドメインにある仮想高特権モードは、要求を処理することができ、フラッシュメモリ又はBIOSに対して直接的又は間接的な呼び出しを行うことができる。その後、特権ドメインからBIOSへのこの呼び出しは、ハイパーバイザーによって、通過することを許可される。なぜなら、ハイパーバイザーは、ゲストドメインではなく、特権ドメインから発せられた呼び出しを検出することができるからである。物理BIOSに対するオープンかつ排他的なアクセスが与えられた場合、特権ドメインから物理BIOSへの通信の安全性が確保され、特権ドメインは今や、実行時にBIOSの全設定を読み書きすることができ、従って、プロセッサがシステム管理モードに入ることになる状況を無くすことができる。
【0028】
システム管理要求の処理を仮想高特権モードに移すことは、仮想マシンモニタが、より多くのシステム情報、及びコンテキストを入手できるという利点を有する。例えば、コンピューティングシステムが、熱イベントを処理するためのシステム管理要求を常にトリガリングしている場合、仮想マシンモニタは、そのリソース・スケジューリングを適宜調節し、仮想高特権モードがプロセッサを常にSMMにしておくことなく、システムの冷却を可能にするための調節を自動的に提供することを、決定する場合がある。
【0029】
図3は、例示的実施形態によるシステム管理要求を処理する方法300を示すフロー図である。この方法は、305において、システム管理要求を受信するために、仮想高特権モードのためのトラステッドドメインを、仮想マシンモニタによって管理することができる。トラステッドドメインは、特権ドメイン120であってもよいし、他のドメインであってもよい。システム管理要求は、プロセッサ110をシステム管理モードにし、プロセッサ110のリアルモードにおいて実行されている全ての処理を停止させることができるものであってもよい。310において、システム管理要求がシステム管理モードを開始することは、防止される。システム管理要求は、仮想高特権モード環境140へルーティングされる場合がある。システム管理要求のルーティングは、例えば、vBIOSによってシステム管理要求を仮想高特権モードへ送信すること、システム管理要求をWMIラッパーに詰め込むこと、又は、リモート・プロシージャ・コール(RPC)を行い、若しくはウェブサービスAPIを作成することによってなされる場合がある。315において、システム管理要求は、仮想高特権モード環境において処理されることができる。仮想高特権モード環境は、ゲストドメインにとって使用できない方法でシステム構成を変更するためのハードウェアへのアクセスを有することができる。
【0030】
図4は、例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。この方法は、402において、ドメインがシステム管理要求を発行することによって、開始されることができる。ドメインは、例えば、ゲストドメイン130であってもよいし、又は、特権ドメイン120であってもよい。
【0031】
405において、仮想マシンモニタは、システム管理要求を受信するために、仮想高特権モードのためのトラステッドドメインを管理することができる。仮想高特権モードは、システム管理要求を受信することができ、当該システム管理要求は、VMM115又は特権ドメイン120のような他の構成要素によってルーティングされたものである場合がある。システム管理要求は、プロセッサをシステム管理モードにし、プロセッサ110のリアルモードにおいて実行されている全ての処理を停止させるものであってもよい。410において、システム管理要求がシステム管理モードを開始することは、防止される。システム管理要求が仮想高特権モード以外の何かによって受信された場合、システム管理要求は、仮想高特権モード環境140へルーティングされる場合がある。システム管理要求のルーティングは、例えば、vBIOSがシステム管理要求を仮想高特権モードへ送信すること、システム管理要求をWMIラッパーに詰め込むこと、又は、リモート・プロシージャ・コール(RPC)を行うことによってなされる場合がある。415において、システム管理要求は、仮想高特権モード環境において処理されることができる。仮想高特権モード環境は、ゲストドメインにとって使用できない方法でシステム構成を変更するためのハードウェアへのアクセスを有することができる。
【0032】
図5は、コンピュータ読取可能媒体515〜516の例示的実施形態によるコンピュータシステム500を示すブロック図である。コンピュータ読取可能媒体515〜516は、プロセッサ505により実行されたときに、コンピューティングシステムに仮想マシンモニタを実行させるコードを含むことができる。コードはさらに、仮想高特権モードにシステム管理要求を受信させることができる。システム管理要求がプロセッサのシステム管理モードを開始することは、防止される。コードは、システム管理要求を仮想高特権モード環境において処理させることができる。
【0033】
このコードは、ゲストドメインにより変更することができないシステム構成を、仮想高特権モードに変更させることができる。プロセッサのリアルモードにあるドメインにとって使用可能ではないシステム構成を実施するために、ゲストドメイン又は特権ドメインのようなドメインにより、システム管理要求を生成することができる。
【0034】
他の図に示したもののような種々のモジュールは、1又は複数のプロセッサ上で実行することが可能な機械読取可能命令として実施されてもよい。プロセッサには、マイクロプロセッサ、マイクロコントローラ、プロセッサモジュール若しくはサブシステム、プログラマブル集積回路、プログラマブルゲートアレイ、又は他の制御若しくは計算装置が含まれる得る。
【0035】
機械読取可能命令は、機械読取可能又はコンピュータ読取可能な記憶媒体に記憶することができ、当該記憶媒体は、1又は複数のコンピュータ読取可能又は機械読取可能な記憶媒体として実施されてもよい。記憶媒体には、ダイナミック若しくはスタティック・ランダム・アクセス・メモリ(DRAM若しくはSRAM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROM)、電気的に消去可能なプログラマブル・リードオンリー・メモリ(EEPROM)及びフラッシュメモリのような半導体メモリデバイスを含む種々の形のメモリ;固定ディスク、フロッピー(登録商標)ディスク及びリムーバブルディスクのような磁気ディスク;テープのような他の磁気媒体;コンパクトディスク(CD(登録商標))又はデジタルビデオディスク(DVD(登録商標))のような光学媒体;又は他のタイプの記憶装置が含まれ得る。なお、上で述べた命令は、1つのコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体に設けられてもよいし、あるいは、複数のノードを有することがある大型システムにおいて分散された複数のコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体に設けられてもよい。そのようなコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体又は媒体(複数可)は、物品(又は製品)の一部とみなされる。物品又は製品とは、任意の製造された単一の構成要素、又は複数の構成要素を意味することがある。記憶媒体又は媒体は、機械読取可能な命令を実行する機械に配置されてもよいし、又は、リモートサイトに配置されてもよく、当該リモートサイトからネットワークを介して機械読取可能命令をダウンロードし、実行してもよい。
【0036】
上記の説明において、本明細書に開示した事項を理解してもらうために、多数の詳細を説明した。しかしながら、実施形態は、それらの詳細の一部又は全部がなくても、実施される場合がある。実施形態によっては、上で説明した詳細からの修正又は変更を含む場合がある。添付の特許請求の範囲は、そのような修正及び変更をカバーすることを意図している。