(57)【特許請求の範囲】
【請求項１】
電子デバイスの方法であって、
物理ＢＩＯＳ（ＢＩＯＳ：基本入出力システム）からドメインに移動されたＢＩＯＳの機能にアクセスする要求を受け取るステップであって、前記ドメインは、前記電子デバイスがシステム管理モード（ＳＭＭ）に入ることなく、前記ＢＩＯＳの前記機能にアクセスできるようにすることからなる、ステップと、
前記要求を、ウェブベースのインターフェースを通じて、前記ドメインにルーティングするステップと、
前記電子デバイスがＳＭＭに入ることなく、前記ドメインによって前記ＢＩＯＳの前記機能を実行するステップ
を含む、電子デバイスの方法。
【請求項２】
前記要求を前記ドメインにルーティングする前記ステップは、前記要求を前記電子デバイスの内部のドメインにルーティングすることを含み、前記ＢＩＯＳの前記機能を有していない前記物理ＢＩＯＳは、前記電子デバイスの不揮発性メモリに存在する、請求項１に記載の方法。
【請求項３】
前記要求を前記電子デバイスの内部の前記ドメインにルーティングすることは、前記要求を前記電子デバイス内の特権ドメインにルーティングすることを含む、請求項２に記載の方法。
【請求項４】
前記要求を前記ドメインにルーティングする前記ステップは、前記要求を前記電子デバイスの外部のドメインにルーティングすることを含み、前記電子デバイスの外部の前記ドメインは、前記電子デバイスによってネットワークを介してアクセス可能であり、前記ＢＩＯＳの前記機能を有していない前記物理ＢＩＯＳは、前記電子デバイスの不揮発性メモリに存在する、請求項１〜３のいずれかに記載の方法。
【請求項５】
前記要求を前記電子デバイスの外部の前記ドメインにルーティングすることは、前記要求を、前記ネットワークを介してアクセス可能なサーバーコンピューター内のドメインにルーティングすることを含む、請求項４に記載の方法。
【請求項６】
前記要求を受け取る前記ステップは、ウェブサービス記述言語（ＷＳＤＬ）及び具象的状態転送（ＲＥＳＴ）アーキテクチャの中から選択されたものによるフォーマットに従った前記要求を受け取ることを含む、請求項１〜５のいずれかに記載の方法。
【請求項７】
前記要求を受け取る前記ステップは、アクセスされるリソースのアドレスを含む前記要求を受け取ることを含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
前記要求の送信元及び前記要求のコンテキストの中から選択された少なくとも一方を識別することに基づいて前記ＢＩＯＳの前記機能を実行するか否かを判断することを更に含む、請求項１〜７のいずれかに記載の方法。
【請求項９】
前記ＢＩＯＳの前記機能は、
前記ＢＩＯＳのコードを更新するサービスと、
前記ＢＩＯＳの設定を更新するサービスと、
前記電子デバイスにおいて熱管理を実行する熱管理サービスと、
異なる電力状態間で前記電子デバイスを遷移させるサービスと、
前記電子デバイス内の構成要素の電力を制御する電力管理サービスと、
前記電子デバイスのボタン又はボタンシーケンスのアクティブ化を処理するサービスと、
前記電子デバイスの環境光センサーに関連付けられたサービスと、
前記ＢＩＯＳの設定を変更するサービスと、
前記電子デバイス内のハードウェア構成要素の設定を変更するサービスと、
前記電子デバイスのブート可能なデバイスのブート順序を変更するサービスと、
オペレーティングシステムと前記ＢＩＯＳとの間のコールをハンドリングするためのサービスと、
組み込みコントローラーのコマンドを実行するサービスと、
レガシー周辺デバイスをサポートするサービスと、
からなる群から選択される１以上のサービスを含む、請求項１〜８のいずれかに記載の方法。
【請求項１０】
電子デバイスであって、
ウェブベースのインターフェースと、
少なくとも１つのプロセッサと、
物理ＢＩＯＳ（ＢＩＯＳ：基本入出力システム）からドメインに移動されたＢＩＯＳの機能にアクセスするための要求を前記ウェブベースのインターフェースにサブミットするように前記少なくとも１つのプロセッサ上で実行可能なエンティティと、
を備え、
前記ドメインは、前記電子デバイスがシステム管理モード（ＳＭＭ）に入ることなく、前記ＢＩＯＳの前記機能にアクセスできるようにし、
前記ドメインは、前記電子デバイスがＳＭＭに入ることなく、前記ＢＩＯＳの前記機能を実行することからなる、電子デバイス。
【請求項１１】
前記ドメインは前記電子デバイス内のドメインであり、
前記ＢＩＯＳの前記機能を有していない前記物理ＢＩＯＳは、前記電子デバイスの不揮発性メモリに存在し、
前記ウェブベースのインターフェースは、前記要求を前記電子デバイス内の前記ドメインに転送する、請求項１０に記載の電子デバイス。
【請求項１２】
前記電子デバイス内の前記ドメインは、前記電子デバイス内の特権ドメインを含む、請求項１１に記載の電子デバイス。
【請求項１３】
前記ドメインは前記電子デバイスの外部のドメインであり、
前記ウェブベースのインターフェースは、前記要求を前記電子デバイスの外部の前記ドメインに転送し、
前記ＢＩＯＳの前記機能を有していない前記物理ＢＩＯＳは、前記電子デバイスの不揮発性メモリに存在する、請求項１０に記載の電子デバイス。
【請求項１４】
前記ウェブベースのインターフェースは、前記ＢＩＯＳの前記機能に関するサービスを実行する要求を前記電子デバイスの外部のエンティティから受け取る、請求項１０〜１３のいずれかに記載の電子デバイス。
【請求項１５】
実行された際に、電子デバイスに、
物理ＢＩＯＳ（ＢＩＯＳ：基本入出力システム）からドメインに移動されたＢＩＯＳの機能にアクセスする要求を受け取るステップであって、前記物理ＢＩＯＳは前記電子デバイスの不揮発性メモリに存在し、前記ドメインは、前記電子デバイスがシステム管理モード（ＳＭＭ）に入ることなく、前記ＢＩＯＳの前記機能にアクセスできるようにすることからなる、ステップと、
前記要求を、ウェブベースのインターフェースを通じて、前記ドメインにルーティングするステップと、
前記電子デバイスがＳＭＭに入ることなく、前記ドメインによって前記ＢＩＯＳの前記機能を実行するステップ
を実行させる命令を記憶している少なくとも１つのマシン可読記憶媒体を備える、物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基本入出力システム（ＢＩＯＳ）の機能にアクセスするウェブベースのインターフェースに関する。
【背景技術】
【０００２】
コンピューター又は他のタイプのデバイス等の電子デバイスは、当該電子デバイスの起動を担当する基本入出力システム（ＢＩＯＳ）を備えることができる。起動中、ＢＩＯＳは、電子デバイスの構成要素を初期化及び構成し、オペレーティングシステムを電子デバイスにロードする。加えて、ＢＩＯＳは、電力管理サービス、熱管理サービス、ＢＩＯＳ更新サービス等の他のサービスも提供することができる。
【発明の概要】
【０００３】
幾つかの実施形態が以下の図に関して説明される。
【図面の簡単な説明】
【０００４】
【図１】一実施態様による配置のブロック図である。
【図２】一実施態様によるプロセスの流れ図である。
【図３】一実施態様による配置のブロック図である。
【図４】一実施態様によるプロセスの流れ図である。
【図５】一実施態様による配置のブロック図である。
【図６】一実施態様による配置のブロック図である。
【発明を実施するための形態】
【０００５】
基本入出力システム（ＢＩＯＳ）は、通常、電子デバイスが始動したときに当該電子デバイスによって実行される最初のコードである。電子デバイスの例には、コンピューター（例えば、デスクトップコンピューター、ノートブックコンピューター、タブレットコンピューター、サーバーコンピューター等）、ハンドヘルドデバイス（例えば、携帯情報端末、スマートフォン等）、電子器具、ゲームコンソール、又は他の任意のタイプの電子デバイスが含まれる。ＢＩＯＳは、電子デバイスの様々なハードウェア構成要素を初期化及び構成し、電子デバイスのオペレーティングシステム（ＯＳ）をロード及び始動する。ＢＩＯＳ用のコードは、通常、フラッシュメモリデバイス又は他のタイプのプログラマブル読み出し専用メモリ（ＲＯＭ）等の不揮発性メモリ上に記憶されている。
【０００６】
ＢＩＯＳは、電子デバイスにおいて起動することができる他の機能も提供する。ＢＩＯＳのそのような他の機能の多くは、多くの場合、システム管理モード（ＳＭＭ）に入ることによって電子デバイスにおいて実行される。このシステム管理モードは、ＯＳの実行が一時停止される動作モードである。また、複数のプロセッサ又はプロセッサコアを有する電子デバイスでは、これらのプロセッサ又はプロセッサコアのうちの１つを除いた全てが、ＳＭＭモードにおいてディセーブルされ得る。ＳＭＭモードに入るために、システム管理割り込み（ＳＭＩ）がアサートされ、ＳＭＩハンドラー（ＢＩＯＳの一部分）が、多くの場合、比較的高い特権モードで実行されて、それぞれの機能（複数の場合もある）を実行する。
【０００７】
ＳＭＭモードに入ってＢＩＯＳ機能を実行することに伴う様々な課題が存在し得る。第１に、ＯＳの実行が一時停止されるので、通常の電子デバイスの動作は続行することができない。また、プロセッサ（複数の場合もある）又はプロセッサコア（複数の場合もある）がＳＭＭモード中にディセーブルされる電子デバイスでは、この電子デバイスの処理能力の一部分が一時的に非アクティブ化されるが、これは、処理能力のそのような部分が他のタスクを実行するのに利用不能であることを意味する。その上、ＳＭＭ処理にどれだけの時間を要し得るのかを予測することが困難である可能性があり、これによって、電子デバイスの動作に不確定性がもたらされる可能性がある。その上、或る特定のＢＩＯＳ機能は、完了するのに比較的長い時間期間（例えば、数分程度）を要する可能性があるため、ステータス情報が電子デバイスのユーザーに利用不可能となる場合があり、この結果、ユーザーは、電子デバイスが適切に機能しているか否かを確認することができず、ユーザーに当惑させる体験をもたらす可能性がある。
【０００８】
マルウェアがＳＭＭ動作中に攻撃を行う場合があり、これによって、システム破損につながる可能性があるので、セキュリティも課題になり得る。ＳＭＭ動作に対する任意のそのような攻撃を回避するために取られるセキュリティ対策の結果、電子デバイスの設計の複雑度が増す可能性がある。そのようなセキュリティ対策の例には、レジスタ、及び／又はフラッシュメモリデバイス若しくは他のタイプのプログラマブル読み出し専用メモリ等の不揮発性メモリの一部分を含む或る特定の記憶エリアをロックすることが含まれる。このロックは、ＢＩＯＳの不要な変更又は認可されていない変更に対する保護を提供することができる。しかしながら、これらのセキュリティ対策は、ＢＩＯＳコード更新等の或る特定のＢＩＯＳ機能の実行に制約を課す場合があるが、これによって、そのようなＢＩＯＳ機能は、強制的にある特定の時間、例えばシステム再始動等のみに実行せざるを得なくなる可能性がある。
【０００９】
ＳＭＭにおいて実行されることが多い様々な機能の例は、次のもの、すなわち、ＢＩＯＳコードを更新するサービス；ＢＩＯＳの設定にアクセスするか又はこの設定を変更するサービス；熱管理を実行する（例えば、電子デバイス内のファン等の冷却デバイスを制御する）熱管理サービス；電力管理サービス（特定のハードウェア構成要素への電力の除去又は復旧）；異なる電力状態（例えば、ハイバーネーション状態、スリープ状態、完全オン状態等）間で電子デバイスを遷移させるサービス；電子デバイスのボタン又はボタンシーケンス（例えば、無線インターフェース構成要素をオン／オフするボタン、或る所定のタスクを実行するホットキーシーケンス等）のアクティブ化（複数のボタンの或る組み合わせのアクティブ化を含む）を処理するサービス；電子デバイスの環境光センサー（電子デバイスの周囲の環境光を検出するためのもの）に関連付けられたサービス；ＢＩＯＳの設定を変更するサービス；電子デバイス内のハードウェア構成要素の設定を変更するサービス；電子デバイスのブート可能なデバイスのブート順序を変更するサービス；ＯＳとＢＩＯＳとの間の或る特定のタイプのコール（例えば、割り込み１５コール）をハンドリングするサービス；組み込みコントローラーのコマンドを実行するサービス；及び或る特定の条件下でレガシー周辺デバイス（例えば、ユニバーサルシリアルバスデバイス）をサポートするサービス、のうちのいずれか１つ又はそれらの組み合わせを含むことができる。
【００１０】
様々な例示のＢＩＯＳ機能が上記に列挙されているが、他の実施態様では、他のＢＩＯＳ機能又は代替のＢＩＯＳ機能を用いることができることに留意されたい。
【００１１】
幾つかの実施態様によれば、よりロバストなシステム挙動を得るために、電子デバイスがＳＭＭモードに入る必要なしにＢＩＯＳ機能をアクセス可能にすることを許可するドメインにＢＩＯＳ機能を設けることができる。このドメインは、電子デバイスの外部に位置することもできるし、電子デバイスの内部に位置することもできる。一般に、ＢＩＯＳは、「ＢＩＯＳ．ｖ」とも呼ばれる「クラウド内のＢＩＯＳ」とみなすことができる。このクラウドは、電子デバイス内又は電子デバイスの外部のいずれかに位置することができる。
【００１２】
クラウド内のＢＩＯＳにアクセスするために、ウェブベースのインターフェースが提供される。一般に、「ウェブベースのインターフェース」は、要求元がインターネット又は他のタイプのネットワーク等のネットワークを介して送信されるメッセージングを用いてリソースにアクセスすることを可能にするインターフェースを指すことができる。ウェブベースのインターフェースは、ＢＩＯＳにアクセスするための最新のインターフェースを提供することができ、このインターフェースは、オペレーティングシステム及びチップセット（以下で更に論述する）を含む基礎を成すプラットフォームから独立したものとすること、又はこのプラットフォームに対する依存性を低減することができる。図１は、幾つかの実施態様による電子デバイス１００の単純化したブロック図である。電子デバイス１００は、要求エンティティ１０２（例えば、仮想マシンモニター、ゲスト仮想マシン、又は或る他のエンティティ）を備える。この要求エンティティは、ＢＩＯＳアクセス要求１０４をサブミットすることができる。ＢＩＯＳアクセス要求１０４は、ウェブベースのインターフェース１０６にサブミットされる。ウェブベースのインターフェース１０６を提供する機能は、次に、ＢＩＯＳアクセス要求１０４をクラウド１１０内の対応するＢＩＯＳ機能１０８にダイレクトすることができるが、クラウド１１０は、電子デバイス１００の内部に存在することもできるし、ネットワークを介してアクセス可能な外部ロケーションに存在することもできる。次の論述は、単数形の意味での「ＢＩＯＳ機能」を指すが、「ＢＩＯＳ機能」は、単一のＢＩＯＳ機能を指すこともできるし、複数のＢＩＯＳ機能を指すこともできることに留意されたい。
【００１３】
ハイパーバイザーとも呼ばれる仮想マシンモニター（ＶＭＭ）は、電子デバイスのハードウェア構成要素を含む物理リソースの、仮想マシンによる共有を管理する。ＶＭＭは物理リソースを仮想化する。各仮想マシンは、ＶＭＭによって管理される関連付けられた仮想化物理リソースを有する。ＶＭＭは、物理リソースを求める要求を処理する。
【００１４】
「仮想マシン」（「仮想アプライアンス」又は「仮想パーティション」とも呼ばれる）は、物理マシンを仮想化又はエミュレートするために提供される物理マシン（電子デバイス）の或るパーティション又はセグメントを指す。ユーザー又はアプリケーションの視点から、仮想マシンは物理マシンのように見える。仮想マシンは、オペレーティングシステム（ゲストオペレーティングシステムと呼ばれる）及び少なくとも１つのアプリケーションプログラムを備える。「ゲスト仮想マシン」は、ゲスト動作システム及びアプリケーションを備える仮想マシンを指すことができる。ゲスト仮想マシンは、多くの場合に仮想マシンモニターによって始動される最初のドメイン（又は仮想マシン）であるドメイン０とは異なる。
【００１５】
例として、ウェブベースのインターフェース１０６は、ウェブサービスインターフェースとすることができる。ウェブサービスは、ネットワークを介した相互動作可能なマシンツーマシンインターラクションをサポートするように設計されたメカニズムを指す。幾つかの実施態様では、ウェブサービスインターフェースは、電子デバイス１００内のエンティティ間のインターラクションも可能にすることができることに留意されたい。ウェブサービスインターフェースは、ワールドワイドウェブコンソーシアム（Ｗ３Ｃ）によって定義されたウェブサービス記述言語（ＷＳＤＬ）によって記述されたフォーマットに従うことができる。代替的に、ウェブサービスインターフェースは、ウェブサービスの実施態様における構造化情報をネットワークを介して交換するためのプロトコルであるシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）（同様にＷ３Ｃによって定義されている）に従うことができる。
【００１６】
更に別の代替形態として、ウェブベースのインターフェース１０６は、クライアント及びサーバーを備える具象的状態転送（ＲＥＳＴ：Representational State Transfer）アーキテクチャに従うことができ、クライアントは、要求をサーバーにサブミットすることができ、サーバーは、応答をクライアントに提供することができる。要求及び応答は、リソースの表現の転送を巡って構築される。リソースは、取り扱い得る任意のコヒーレントで意味のある概念とすることができる。リソースの表現は、通常、リソースの現在の状態又は意図した状態を捕捉するドキュメントである。ＲＥＳＴアーキテクチャでは、クライアントによってサブミットされる要求は、幾つかの例では、ハイパーテキスト転送プロトコル（ＨＴＴＰ）Ｇｅｔ要求とすることができる。サーバーは、ＨＴＴＰ  Ｇｅｔ要求に対するＨＴＴＰ応答を提供することができる。クライアント及びサーバーは、ネットワークを介して結合することもできるし、代替的に、クライアント及びサーバーは、電子デバイス１００の内部に存在することもできることに留意されたい。
【００１７】
ウェブベースのインターフェース１０６では、要求されたリソースのアドレスを含むＢＩＯＳアクセス要求を発行することによってリソース（例えば、内部ＢＩＯＳ機能又は外部ＢＩＯＳ機能）にアクセスすることができる。このアドレスは、ユニフォームリソースロケーター（ＵＲＬ）、インターネットプロトコル（ＩＰ）アドレス、又は要求されたリソースを一意に識別することができる或る他のアドレス等のウェブアドレスとすることができる。
【００１８】
ウェブベースのインターフェース１０６において受信されたアドレスを含むＢＩＯＳアクセス要求に応答して、この要求を内部ＢＩＯＳ機能及び外部ＢＩＯＳ機能のうちの適切なものにダイレクトすることができる。場合によっては、この要求は、内部ＢＩＯＳ機能及び外部ＢＩＯＳ機能の双方にダイレクトすることができる。
【００１９】
外部ロケーションにＢＩＯＳ機能を設けることによって、或る特定の利点をもたらすことができる。例えば、外部のサーバーコンピューターに関連付けられたサービスプロバイダーは、電子デバイス１００等のクライアントデバイスを関与させることなくＢＩＯＳ更新の自動チェックを実行することができる。サービスプロバイダーは、障害又は破損の検出時等に、前のバージョンへのＢＩＯＳのロールバックを制御することもできる。ＢＩＯＳに関する他の更なるサービスを、外部のサーバーコンピューターにおいてより効率的かつ効果的な方法で実行することができる。
【００２０】
ウェブベースのインターフェースを提供する別の利点は、ＢＩＯＳ機能にアクセスすることに関与する通信のための特定のチップセット又はオペレーティングシステムアーキテクチャに対する依存性を低減することができるということである。例えば、Ｍｉｃｒｏｓｏｆｔから提供されているＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムを用いる幾つかのシステムでは、ＷＢＥＭ（ウェブベースの企業体管理）の一実施態様であるＷＭＩ（Ｗｉｎｄｏｗｓ（登録商標）管理計測）メカニズムを、オペレーティングシステムからＢＩＯＳ機能にアクセスするのに用いることができる。しかしながら、ＷＭＩのサポートは、Ｌｉｎｕｘ（登録商標）又は他のオペレーティングシステムを用いた環境等の他の動作環境では利用可能でない場合があるか又は貧弱な場合がある。更なる例として、ｉｎｔ１５又はｉｎｔ１Ａ等の特定の割り込みメカニズムを特定のタイプのチップセットとともに用いることができる。幾つかの実施態様によるウェブベースのインターフェース等のよりオープンなインターフェースを用いることによって、特定のチップセット及びオペレーティングシステムアーキテクチャに対する依存性が低減される。さらに、ＷＭＩ又は上述した他の方式を用いてＢＩＯＳ機能にアクセスするためのコマンドフォーマットは、時代遅れである可能性があり、柔軟性に欠ける場合がある。ウェブベースのインターフェースは、ＢＩＯＳ機能を起動する通信のためのＸＭＬ（拡張可能マークアップ言語）又は他の標準規格等のより広く用いられる標準規格によるコマンドの使用を可能にし、これによって、よりオープンかつ拡張可能なコマンドフォーマットを可能にすることができ、標準規格ベースの確認メカニズム（例えば、ＸＭＬベースの確認メカニズム）を用いることが可能になる。
【００２１】
図２は、幾つかの実施態様によるプロセスの流れ図である。このプロセスは、電子デバイス１００により実行することができる。このプロセスは、ＢＩＯＳ機能にアクセスする要求を受信する（２０２）。この要求は、ウェブベースのインターフェース（例えば、１０６）が受信することができる。このプロセスは、次に、この要求をウェブベースのインターフェース１０６を通じて、ＢＩＯＳ機能１０８を備えるクラウド１１０にルーティングする（２０４）。
【００２２】
幾つかの実施態様では、ＢＩＯＳ機能１０８が設けられているクラウド１１０は、電子デバイス１００の特権ドメインであり、この特権ドメインは、比較的セキュアであるとともに電子デバイス内の他のエンティティに利用可能でない或る所定の特権（複数の場合もある）を有する電子デバイスのドメインである。一般に、「特権ドメイン」は、そのドメイン内のエンティティが、他のエンティティ（例えば、ＯＳ、アプリケーションプログラム等）が実行を許可されない電子デバイス内の機能を実行することを許可する所定の特権（複数の場合もある）を有するドメインを指す。また、特権ドメインは、認可されていないアクセス又は攻撃から特権ドメインを保護するセキュリティメカニズムも有する。
【００２３】
ＢＩＯＳの機能を特権ドメインに移動させることによって、電子デバイス１００は、特権ドメイン内に移動されたそのようなＢＩＯＳ機能を実行するのにＳＭＭモードに入る必要がなくなり得る。幾つかの実施態様では、ＳＭＭの動作を完全になくすことができる。他の実施態様では、ＳＭＭの動作を依然としてイネーブルして、或る特定のＢＩＯＳ機能を実行することができる一方、残りのＢＩＯＳ機能は、特権ドメインを通じて実行される。後者の場合、その着想は、セキュリティを提供し及び／又は効率を改善する効果的な対策を取ることができるような小さな一群のＢＩＯＳ機能にのみＳＭＭがイネーブルされるということである。
【００２４】
特権ドメインの例には、次のもの、すなわち、多くの場合に管理タスクを実行するために仮想マシンモニター（ハイパーバイザーとも呼ばれる）によって始動される最初のドメインであるドメイン０；仮想マシンモニター（又はハイパーバイザー）の一部分；強化された特権及び／又はセキュリティをゲスト仮想マシンに提供する所定の設定を有する当該ゲスト仮想マシン；又は所定の特殊な特権及び／又はセキュリティメカニズムを有する電子デバイス内の別のタイプのドメイン、のうちの任意のもの又はそれらの或る組み合わせが含まれる。
【００２５】
図３は、幾つかの実施態様による一例示の電子デバイス３００のブロック図である。電子デバイス３００は、ＶＭＭ３０２を備え、このＶＭＭ３０２は、少なくとも１つのＢＩＯＳ機能３０６（上記に列挙したＢＩＯＳ機能又は他のＢＩＯＳ機能のうちのいずれか１つ又はそれらの組み合わせ）を備える特権ドメイン３０４を作成する。特権ドメイン３０４は、図１のウェブベースのインターフェース１０６も備える。特権ドメイン３０４内のＢＩＯＳ機能３０６には、ウェブベースのインターフェース１０６を通じてアクセスすることができる。
【００２６】
幾つかの例では、特権ドメイン３０４はドメイン０であり、このドレイン０は、システム起動時にＶＭＭ３０２によって始動される管理ドメインであり、強化された特権及びセキュリティメカニズムを有する。ドメイン０によって実行されるタスクの例には、ゲストドメインの作成及び構成が含まれる。ドメイン０及びゲストドメインのそれぞれは、対応する仮想マシンとみなされる。
【００２７】
他の実施態様では、特権ドメイン３０４は、ゲスト仮想マシン等の別のタイプの仮想マシンとすることができる。特権ドメイン３０４は、図３の配置等によれば、ＶＭＭ３０２とは別個のものとすることができる。代替の実施態様では、特権ドメイン３０４は、ＶＭＭ３０２の一部とすることができる。そのような代替の実施態様では、ＢＩＯＳ機能３０６及びウェブベースのインターフェース１０６は、ＶＭＭ３０２の一部分である。
【００２８】
ＢＩＯＳ機能３０６は、電子デバイス３００内のエンティティ３０８によってアクセス可能である。幾つかの例では、特権ドメイン３０４内のＢＩＯＳ機能３０６にアクセスすることができるエンティティ３０８は、ゲスト仮想マシン３１０の一部分である。例えば、そのようなエンティティ３０８は、ゲスト仮想マシン３１０内のゲストオペレーティングシステム又は別のタイプのエンティティとすることができる。他の例では、エンティティ３０８は、ホストオペレーティングシステム（図３に図示せず）又はアプリケーションプログラムがＢＩＯＳ機能３０６にアクセスすることを望むシナリオ等における任意のゲスト仮想マシン３１０の外部に存在することができる。ゲストオペレーティングシステムは仮想マシンの一部分であるのに対して、ホストオペレーティングシステムは仮想マシンの一部分でないという点で、「ホストオペレーティングシステム」は「ゲストオペレーティングシステム」とは異なる。
【００２９】
エンティティ３０８が特権ドメイン３０４内のＢＩＯＳ機能３０６にアクセスするための２つの代替のメカニズムがある。第１のメカニズムは、エンティティ３０８が、特権ドメイン３０４内のＢＩＯＳ機能３０６にアクセスする要求（３１２）をウェブベースのインターフェース１０６に直接送信することを含む。以下で更に論述するように、これは、ゲスト仮想マシン３１０内の仮想ＢＩＯＳの存在によって可能にすることができる。
【００３０】
第２のメカニズムによれば、ＢＩＯＳ機能３０６にアクセスする要求（３１４）が、ＶＭＭ３０２によってインターセプトされ、ＶＭＭ３０２によって（パス３１６に沿って）特権ドメイン３０４内のウェブベースのインターフェース１０６にルーティングされる。幾つかの実施態様では、仮想ＢＩＯＳを用いてＶＭＭ３０２を構成する必要なく、ＶＭＭ３０２は、（エンティティ３０８からの）ＢＩＯＳ機能３０６にアクセスする要求をインターセプトし、特権ドメイン３０４にルーティングすることができる。これによって、ＶＭＭ３０２の設計における複雑度が低減される。
【００３１】
図３は、電子デバイス３００内のハードウェアリソース３１６も示している。例として、ハードウェアリソース３１６には、プロセッサ（又は複数のプロセッサ）、Ｉ/Ｏデバイス、揮発性メモリ、二次記憶装置、フラッシュメモリ、ネットワークインターフェースコントローラー、グラフィックスアダプター等が含まれる。ゲスト仮想マシン（３１０等）によるハードウェアリソース３１６のアクセスは、ＶＭＭ３０２によって管理される。
【００３２】
図４は、幾つかの実施態様によるプロセスの流れ図である。図４のプロセスは、例えば、図３に示すエンティティが実行することができる。このプロセスは、ＢＩＯＳの機能（例えば、図１又は図３におけるＢＩＯＳ機能３０６）を起動する要求を受信する（４０２）。この要求は、例えば、ＶＭＭ３０２がエンティティ３０８から受信することができる。
【００３３】
このプロセスは、上記要求を特権ドメイン３０４にルーティングする（４０４）。そのようなルーティングは、ＶＭＭ３０２が実行することもできるし、代替的に、このルーティングは、ゲスト仮想マシン３１０内の仮想ＢＩＯＳが実行することもできる。仮想ＢＩＯＳを有する実施態様では、ＢＩＯＳ（ＢＩＯＳ機能３０６等）にアクセスすることを望むゲスト仮想マシン３１０内の、ゲストオペレーティングシステムとすることができるエンティティ（例えば、３０８）は、ゲスト仮想マシン３１０内の仮想ＢＩＯＳにアクセス要求を発行する。この仮想ＢＩＯＳは、次に、このアクセス要求を特権ドメイン３０４にルーティングする。
【００３４】
特権ドメイン３０４は、次に、要求の送信元を識別すること、又は要求のコンテキストを識別すること、又は要求の送信元及びコンテキストの双方を識別することに基づいて、要求されたＢＩＯＳ機能を実行するか否かを判断する（４０６）。特権ドメインが要求の送信元を識別することに基づいてこの判断を行う（４０６）実施態様において、特権ドメイン３０４が、要求の送信元が要求されたＢＩＯＳ機能にアクセスする認可を受けていると判断した場合、要求されたＢＩＯＳ機能が実行される。他方、そのような実施態様において、特権ドメイン３０４が、要求の送信元が要求されたＢＩＯＳ機能にアクセスする認可を受けていないと判断した場合（マルウェアが要求を発行したシナリオ等）、特権ドメイン３０４は、要求されたＢＩＯＳ機能のアクセスを拒否することができる。このように、特権ドメイン３０４は、ＢＩＯＳ機能をセキュアに実行することができる。
【００３５】
代替的に又は加えて、特権ドメイン３０４は、要求のコンテキストを識別することに基づいて上記判断を行う（４０６）。要求の「コンテキスト」は、要求が処理される時点における電子デバイス（又は電子デバイスの一部分）の現在の状態又は環境を指す。特権ドメイン３０４は、要求がコンテキスト的に正しいか否かに基づいて（換言すれば、電子デバイス（又は電子デバイスの一部分）の現在の状態又は環境が要求の実行のための単数又は複数のルールを満たすか否かに基づいて）、要求を実行することができるか否かを判断する。例えば、電子デバイスが状態Ｓ１から状態Ｓ２、状態Ｓ３、そして状態Ｓ４へ順に正当に進むことができるものと仮定する。また、要求されたＢＩＯＳ機能を実行することによって、電子デバイスは状態Ｓ４に置かれるものと仮定する。そのような例では、電子デバイスが状態Ｓ３にある（換言すれば、要求のコンテキストが正しい）場合にのみ、特権ドメイン３０４は、ＢＩＯＳ機能を実行する要求を許可する。他方、電子デバイスが状態Ｓ２にある場合、それは不正な遷移である（コンテキストは正しくない）ので、特権ドメイン３０４は要求の実行を許可しない。
【００３６】
ＢＩＯＳ機能を実行する要求のコンテキストが正しいか否かの別の例は、次のとおりである。システムは、動作を実行するコマンドが、次のコマンドシーケンス、すなわち、（１）システムをロックする、（２）動作を実行する、及び（３）システムをロック解除する、というシーケンスを伴うことを規定しているものと仮定する。ＢＩＯＳ機能を実行する要求が、システムをロックするコマンドの後に実行のために受信された場合には、この要求は、コンテキスト的に正しい。一方、この要求が、システムをロックするコマンドを受信する前に受信された場合には、この要求は、コンテキスト的に正しくなく、この要求は、特権ドメインが実行することができない。
【００３７】
幾つかの実施態様によれば、要求されたＢＩＯＳ機能は、ＳＭＭに入る必要なく実行される。換言すれば、ＳＭＭを迂回して、従来、ＳＭＭにおいてＳＭＩ  ＢＩＯＳハンドラーによって実行されていた或るＢＩＯＳ機能（複数の場合もある）を実行することができる。幾つかの実施態様による技法又はメカニズムを用いることによって、従来、ＳＭＭにおいて実行されていたＢＩＯＳ機能を、代わりに、特権ドメインによって提供される信頼できるランタイム環境において実行することができる。
【００３８】
加えて、電子デバイスの全体的な設計を単純化することができる。なぜならば、ここでは、ＢＩＯＳ機能に対する要求を進めることを許可するか否かを制御するのは特権ドメインであることから、レジスタ又は不揮発性メモリの一部分のロック等、従来用いられていたセキュリティメカニズムを省略することができるからである。
【００３９】
要求されたＢＩＯＳ機能を実行することに加えて、特権ドメイン３０４は、ＢＩＯＳ機能の実行前に或る特定のタスクを実行することもできる。例として、特権ドメイン３０４は、ＢＩＯＳ機能にアクセスするか又はこれを実行する要求が適切に形成されているか否か、又は書き込まれるデータ（ＢＩＯＳコード更新の場合等）又はＢＩＯＳポリシーの設定が正しいか否か（例えば、正しいサイズ、正しい検証コード等）を判断することができる。これは、マルウェアが、誤った形式のコマンド要求を処理した結果としてのＢＩＯＳの機能不全を引き起こそうとして、誤った形式の要求用いてＢＩＯＳ機能にアクセスすることができる場合に対する保護を提供することができる。特権ドメイン３０４は、変更されるデータ（例えば、ＢＩＯＳコード）のバックアップをＢＩＯＳ機能の実行前に実行することができるか否かを判断することもできる。特権ドメイン３０４は、要求されたＢＩＯＳ機能を完了するのに十分なバッテリ充電量があるか否かを更に判断することができる。一般に、特権ドメインは、特権ドメインがＢＩＯＳ機能を起動する要求を実際に処理することを開始する前又はこの要求を更に処理するために実際の物理ＢＩＯＳにルーティングすることを開始する前に、先ず、このＢＩＯＳ機能を起動する要求、この要求に関連付けられた入力、並びにこの要求のコンテキスト及びその入力の正当性を確認することができる。
【００４０】
ＢＩＯＳコードを更新するコンテキストでは、特権ドメイン３０４は、ＢＩＯＳ更新に関連付けられたメタデータ及び／又はメタコードをハンドリングすることもできる。このメタデータは、ＢＩＯＳコードのどの部分（複数の場合もある）が更新されるのかに関するポリシー又は記述と、更新の実行に関連付けられた条件（複数の場合もある）（ＢＩＯＳコードを更新するための更新コードイメージが正しいシグネチャを有することを保証することに関係した条件、更新失敗の場合における旧ＢＩＯＳコードバージョンへのロールバックに関係した条件等）とを提供することができる。上記メタコードは、ＢＩＯＳの変数及び設定がどのように更新されるのかに関する手順（複数の場合もある）を規定することができる。特権ドメイン３０４は、これらのメタデータ及び／又はメタコードをハンドリングするインタープリターを実装することができる。
【００４１】
図５は、代替の実施態様による電子デバイス５００のブロック図である。電子デバイス５００は、複数のゲスト仮想マシン５０２Ａ、５０２Ｂを備える。図５には、２つの仮想マシン５０２Ａ、５０２Ｂが示されているが、代替の実施態様では、１つだけのゲスト仮想マシンが存在することもできるし、３つ以上のゲスト仮想マシンが存在することもできることに留意されたい。
【００４２】
各ゲスト仮想マシン５０２Ａ又は５０２Ｂは、それぞれのゲストオペレーティングシステム５０４Ａ又は５０４Ｂに加えて、それぞれのアプリケーションプログラム５０６Ａ又は５０６Ｂを備える。幾つかの実施態様では、各ゲスト仮想マシン５０２Ａ又は５０２Ｂは、仮想ＢＩＯＳ５０８Ａ又は５０８Ｂを更に備える。ＢＩＯＳのサービスにアクセスするように設計されたゲストオペレーティングシステム５０４Ａ又は５０４Ｂは、（実際のＢＩＯＳの代わりに）それぞれの仮想ＢＩＯＳ５０８Ａ又は５０８Ｂをコールする。幾つかの実施態様では、仮想ＢＩＯＳ５０８Ａ又は５０８Ｂは、次に、この要求を、ＢＩＯＳ機能３０６を備える特権ドメイン５２０に直接ルーティングすることができる。図３による実施態様と同様に、特権ドメイン５２０は、ドメイン０又は別の仮想マシンを用いて実施することもできるし、ＶＭＭ３０２内に実施することもできる。
【００４３】
代替の実施態様では、仮想ＢＩＯＳ５０８Ａ又は５０８Ｂは、代わりに、ＢＩＯＳ機能にアクセスする要求をＶＭＭ３０２を通じてルーティングすることができる。更に代替の実施態様では、仮想ＢＩＯＳ５０８Ａ又は５０８Ｂをゲスト仮想マシン５０２Ａ又は５０２Ｂから省略することができる。そのような実施態様では、ＢＩＯＳ機能にアクセスする要求は、ＶＭＭ３０２がインターセプトすることができる。
【００４４】
電子デバイス５００は、ハードウェアリソース３１６と、実際のＢＩＯＳ５１２（次の論述では「物理ＢＩＯＳ」と呼ばれる）を含むマシン可読命令を有するファームウェアレイヤ５１０とを更に備える。「物理ＢＩＯＳ」又は「実際のＢＩＯＳ」は、フラッシュメモリ又は他のプログラマブル読み出し専用メモリ等の不揮発性メモリに存在するとともに電子デバイス５００の起動時に実行されるＢＩＯＳコードを指す。物理ＢＩＯＳ５１２は、通常の物理ＢＩＯＳの縮小（簡略）バージョンとすることができる。なぜならば、ＢＩＯＳの１つ又は複数の機能は、特権ドメイン５２０に移動されている場合があり、これらの機能は、物理ＢＩＯＳ５１２のアクセスを実行する必要がないように特権ドメイン５２０から実行されるようになっているからである。一方、物理ＢＩＯＳ５１２の或る特定の機能は、物理ＢＩＯＳ５１２とともに残っている。そのようなＢＩＯＳ機能のアクセスは、物理ＢＩＯＳ５１２を起動することを伴う。そのような起動は、図５にパス５１４によって示すように、ＶＭＭ３０２を通じて特権ドメイン１０４から行うことができる。
【００４５】
また、従来、オペレーティングシステムとＢＩＯＳとの間で交換されるデータは保護されず、その結果、幾つかのシステムは、様々な独自の方式を用いて、オペレーティングシステムとＢＩＯＳとの間で交換されるデータに或るレベルの保護を提供し得ることにも留意されたい。そのような保護は、オペレーティングシステムとＢＩＯＳとの間で転送されるデータが、ユーザー名、パスワード、認証ハッシュ、及び／又は認証ポリシー等の機密情報を含む可能性があるために実行される。用いられる１つの例示の一般的な保護方式は、オペレーティングシステムとＢＩＯＳとの間で交換される情報を暗号化することである。暗号化を用いた保護は、鍵の使用と、鍵のＢＩＯＳ（及びオペレーティングシステム）への記憶とを伴い、通常、この鍵の保護は不十分であるので、オペレーティングシステムとＢＩＯＳとの間で交換される情報に与えられる保護は弱い可能性がある。物理ＢＩＯＳ５１２との通信は、特権ドメイン５２０を通じて実行されるので、物理ＢＩＯＳ５１２と通信されるデータの機密性及び／又は完全性を（データを暗号化すること等によって）保護するための従来のメカニズムは、実施する必要がない。これによって、この解決策の単純性及び性能向上がもたらされる一方、特定の独自の保護メカニズムを実際に設ける必要なく、物理ＢＩＯＳに通信されるデータのより高い保護が提供される。
【００４６】
ゲスト仮想マシン５０２Ａ及び５０２Ｂ並びに特権ドメイン５２０に加えて、電子デバイス５００は、ユーザーインターフェースを提供するように実行可能なユーザーインターフェース（ＵＩ）コード５１８を含むサービスドメイン仮想マシン５１６も備えることができる。サービスドメイン仮想マシン５１６内のＵＩコード５１８によって提供されるユーザーインターフェースは、ユーザーが特権ドメイン５２０のステータスを監視するのに用いることができ、そのため、ユーザーは、ＢＩＯＳ機能３０６の実行中にフィードバックの提供を受けることができる。また、このユーザーインターフェースは、特権ドメイン５２０の設定を構成するのに用いることもできる。
【００４７】
図５に更に示すように、特権ドメイン５２０は、特権ドメイン５２０内のＢＩＯＳ機能３０６のアクセスを可能にするウェブベースのインターフェース１０６も備える。ＢＩＯＳ機能３０６のアクセスは、電子デバイス５００内のエンティティからのものとすることができる。更なる例では、ウェブベースのインターフェース１０６は、セキュアな接続５２６を介して電子デバイス５００の外部のエンティティ５２４からのウェブアクセスを可能にする。「セキュアな接続」は、ネットワーク接続を介して通信されるデータの認可されていないアクセスを防止するセキュリティメカニズム（例えば、データの暗号化、セキュアなトンネルの確立等）が適用されるネットワーク接続を指す。例えば、企業体環境（ここで、企業体は、会社、教育組織体、又は政府機関とすることができる）では、セキュアな接続５２６によって、電子デバイス５００は、所定のサービスを提供するように構成されたサーバー等の信頼できるサーバー（５２４）との通信を確立することが可能になる。サーバー５２４が提供することができる所定のサービスの一例は、物理ＢＩＯＳ５１２又はＢＩＯＳ機能３０６を更新するサービスを含むことができる。他の例では、他のサービスをサーバー５２４が提供することができる。信頼できる特権ドメイン５２０を用いることによって、ＢＩＯＳ機能のコールを電子デバイス５００の外部から発信することが可能になる。
【００４８】
幾つかの実施態様では、クラウド内のＢＩＯＳは、ＶＭＭベースのアーキテクチャの次の前提、すなわち、物理ＢＩＯＳは、当該物理ＢＩＯＳがブートしている主要なランタイムエンティティ（図３又は図５におけるＶＭＭ３０２）を知っているとともに信頼していることと、ＢＩＯＳが信頼しているＶＭＭは、特権ドメインから来るＩ／Ｏ要求以外の（ＢＩＯＳ機能にアクセスする）全てのＩ/Ｏ要求をトラップし、オフにする能力を有すること、に基づいている。幾つかの実施態様では、電子デバイスによってブートされるＶＭＭの起源を認証するＢＩＯＳ検証メカニズムを提供することができる。そのような検証メカニズムの例は、米国特許出願第ＰＣＴ／ＵＳ２０１１／０２２８１４号に記載されている。そのような検証メカニズムによって、アドミニストレーター又は他のユーザーは、認可されたＶＭＭのみを電子デバイス１００又は３００においてブートすることができることを指定することが可能になる。この検証メカニズムは、電子デバイスに存在するＶＭＭイメージが悪意をもって変更されていないこと、及びＶＭＭを信頼することができることを保証する。物理ＢＩＯＳは、ＶＭＭイメージを視覚的に検証することができ、ＶＭＭが、事前に指定された既知の一組の制御された動作設定を用いてブートされることを保証することができる。
【００４９】
物理ＢＩＯＳは、認可されたＶＭＭがブートされたことを検証した後、次に、当該物理ＢＩＯＳが、認可されていないコード又は悪意のあるコードによる破損を防止するために通常ならば実行する様々なセキュリティ対策の実行を延期又は省略することができる。例えば、物理ＢＩＯＳは、ＢＩＯＳフラッシュレジスタ及び／又はフラッシュメモリの一部分をロックしないことを選ぶことができる。
【００５０】
図３及び図５は、クラウド内のＢＩＯＳ（例えば、ＢＩＯＳ機能３０６）が電子デバイス（３００又は５００）の内部に設けられている実施態様を示している。しかしながら、ＢＩＯＳサービスへのアクセスを望む電子デバイスのゲスト仮想マシン又は他のエンティティの観点からすると、ＢＩＯＳサービスを含むクラウドは、電子デバイスの外部のロケーションを含む任意の場所に位置することができることに留意されたい。
【００５１】
図６は、そのような配置の一例を示している。図６は、ゲスト仮想マシン６０２と、ＶＭＭ６０４と、ハードウェアリソース６０６とを有する電子デバイス６００を示している。電子デバイス６００は、ウェブベースのネットワーク通信機能６１０を有する特権ドメイン６０８を更に備える。ウェブベースのネットワーク通信機能６１０は、ＢＩＯＳアクセス要求を内部ＢＩＯＳ機能６１２（特権ドメイン６０８の一部分とすることができる）又は外部ＢＩＯＳ機能６１４（ネットワーク６１６を介してアクセス可能である）のいずれかにルーティングすることができるウェブベースのインターフェース６１１を提供する。要求エンティティ（例えば、ＶＭＭ６０４又はゲスト仮想マシン６０２）は、ＢＩＯＳアクセス要求を、ウェブベースのネットワーク通信機能６１０によって提供されたウェブベースのインターフェース６１１にサブミットすることができる。
【００５２】
幾つかの実施態様では、ネットワーク６１６は、当該ネットワーク６１６を介してネットワーク要素間で通信される情報の認可されていないアクセスを防止するセキュアなメカニズムを用いて実施されたセキュアなネットワークである。
【００５３】
外部ＢＩＯＳ機能６１４は、サーバーコンピューター６２０内の信頼できる環境６１８の一部分とすることができる。幾つかの実施態様では、信頼できる環境６１８は、サーバーコンピューター６２０内の特権ドメイン（例えば、ドメイン０、セキュアなゲスト仮想マシン、仮想マシンモニター等）に実装することもできる。サーバーコンピューター６２０は、１つ又は複数のプロセッサ６２２と、記憶媒体６２４と、ネットワーク６１６を介して電子デバイス６００と通信するネットワークインターフェース６２６とを有する。
【００５４】
図１、図３、図５、及び図６に示すモジュール等の様々なモジュールは、１つ又は複数のプロセッサ上で実行することができるマシン可読命令として実施することができる。プロセッサは、マイクロプロセッサ、マイクロコントローラー、プロセッサモジュール若しくはサブシステム、プログラマブル集積回路、プログラマブルゲートアレイ、又は別の制御デバイス若しくはコンピューティングデバイスを含むことができる。
【００５５】
マシン可読命令は、１つ又は複数のコンピューター可読記憶媒体又はマシン可読記憶媒体として実施することができるマシン可読記憶媒体又はコンピューター可読記憶媒体に記憶することができる。これらの記憶媒体は、種々の形態のメモリを含むことができる。この種々の形態のメモリには、ダイナミックランダムアクセスメモリ又はスタティックランダムアクセスメモリ（ＤＲＡＭ又はＳＲＡＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、及びフラッシュメモリ等の半導体メモリデバイス；固定ディスク、フロッピー（登録商標）ディスク、及び着脱可能ディスク等の磁気ディスク；テープを含む他の磁気媒体；コンパクトディスク（ＣＤ）若しくはデジタルビデオディスク（ＤＶＤ）等の光媒体；又は他のタイプの記憶デバイスが含まれる。上記で論述した命令は、１つのコンピューター可読記憶媒体又はマシン可読記憶媒体上に設けることもできるし、代替的に、複数のノードを有する可能性がある大規模システム内に分散された複数のコンピューター可読記憶媒体又はマシン可読記憶媒体上に設けることもできることに留意されたい。そのような単数又は複数のコンピューター可読記憶媒体又はマシン可読記憶媒体は、物品（又は製造物品）の一部分とみなされる。物品又は製造物品は、任意の製造された単一の構成要素又は複数の構成要素を指すことができる。この単数又は複数の記憶媒体は、マシン可読命令を実行するマシンに位置することもできるし、マシン可読命令を実行のためにネットワークを介してそこからダウンロードすることができるリモートサイトに位置することもできる。
【００５６】
上記説明において、本明細書に開示した主題の理解を提供するために、多数の詳細が述べられている。しかしながら、実施態様は、これらの詳細の一部又は全てがなくても実施され得る。他の実施態様は、上記で論述した詳細からの変更及び変形を含み得る。添付の特許請求の範囲はそのような変更及び変形を包含することが意図されている。
【図１】
0005881835.tif 000002
【図２】
0005881835.tif 000003
【図３】
0005881835.tif 000004
【図４】
0005881835.tif 000005
【図５】
0005881835.tif 000006
【図６】
0005881835.tif 000007