JP2017508205A - プラットフォーム固有の機能の選択的有効化 - Google Patents

プラットフォーム固有の機能の選択的有効化 Download PDF

Info

Publication number
JP2017508205A
JP2017508205A JP2016549780A JP2016549780A JP2017508205A JP 2017508205 A JP2017508205 A JP 2017508205A JP 2016549780 A JP2016549780 A JP 2016549780A JP 2016549780 A JP2016549780 A JP 2016549780A JP 2017508205 A JP2017508205 A JP 2017508205A
Authority
JP
Japan
Prior art keywords
acpi
specific
subsystem
computing device
virtual device
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
JP2016549780A
Other languages
English (en)
Other versions
JP6262870B2 (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 JP2017508205A publication Critical patent/JP2017508205A/ja
Application granted granted Critical
Publication of JP6262870B2 publication Critical patent/JP6262870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

複数のプラットフォーム固有の機能を選択的に有効にするための技術は、仮想デバイスドライバロジックを初期化して、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続するコンピューティングデバイスを含む。ACPIサブシステムは、仮想デバイスに関連付けられるオペレーティングシステム(OS)固有の機能仕様を含む。OS固有の機能仕様は、識別されたOSに基づいてACPIサブシステムにより実行されるべき複数のOS固有の機能を含む。仮想デバイスドライバロジックは、ACPIサブシステムにおいてOS固有の機能仕様に対する呼び出しを送信する。呼び出しは、OSを他の複数のオペレーティングシステムからユニークに識別するコンピューティングデバイスのOSの識別子を含む。ACPIサブシステムは、識別子に基づいてOS固有の機能仕様を分析して、OSに関連付けられる複数のOS固有の機能を決定する。ACPIサブシステムは、決定されたOS固有の機能を実行する。

Description

[関連する米国特許出願の相互参照]
本願は、2014年3月21日に出願された「SELECTIVELY ENABLING PLATFORM−SPECIFIC FEATURES」という名称の米国特許出願第14/221,983号に対する優先権を主張する。
一般にコンピューティングデバイスは、コンピューティングデバイスの様々なハードウェアおよびソフトウェアリソースを管理するオペレーティングシステムを含む。多くの場合、最新のオペレーティングシステムはブート処理中、ハードウェアデバイスおよび/またはオペレーティングシステムに利用可能なコンピューティングデバイスの機能を公開するハードウェア供給元により提供されたファームウェアに依存する。多くの場合、特定のハードウェアデバイスおよび/または機能は、オペレーティングシステム固有であり得る。すなわち、特定のハードウェアデバイスおよび/または機能は、あるオペレーティングシステムとの使用には互換性があるが、別のオペレーティングシステムには互換性がないことがある。従って配布およびメンテナンスコストを減少させる取り組みにおいて、ハードウェア供給元は通常、製品ライン全体で単一のファームウェアをリリースし、これにより複数のオペレーティングシステムをサポートする。従って、互換性があるハードウェアデバイスおよび/または機能のみがオペレーティングシステムに公開されることを保証するべく、どのオペレーティングシステムがブートされているかを、ファームウェアが認識することが重要である。
ポータブルコンピューティングデバイス市場が過熱するにつれて、複数のオペレーティングシステム供給元間の競争が増大している。この競争は、以前よりも迅速に新しい機能を開発して市場にリリースするようにオペレーティングシステム供給元を駆り立てている。これらの新しい機能の多くは業界標準に従っておらず、プラットフォームおよび/もしくはオペレーティング固有のハードウェアデバイス、ならびに/またはファームウェアにより提供される機能にやはり依存する。そのような慣行により、ブート中にオペレーティングシステムに公開される互換性のないハードウェアデバイスおよび/または機能のリスクを増大させる。また、そのような慣行は、ハードウェア供給元が製品ライン全体で1個のファームウェアをリリースできることをも脅かす。
本明細書において説明される複数の概念は、添付の複数の図において限定としてではなく例として図示されている。図示を簡略化して見やすくするべく、図に例示される複数の要素は、必ずしも縮尺通りに描かれない。適切と考えられる場合には、対応するか、または類似する複数の要素を示すべく、複数の図面において符号が反復されている。
複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを用いるシステムの少なくとも一実施形態による簡易ブロックダイアグラムである。
図1におけるシステムのコンピューティングデバイス環境の少なくとも一実施形態による簡易ブロックダイアグラムである。
図1および2におけるコンピューティングデバイスにより実行され得る複数のプラットフォーム固有の機能を選択的に有効にするための方法の少なくとも一実施形態の簡略フロー図である。
複数のプラットフォーム固有の機能を選択的に有効にするための、図3における方法の少なくとも一実施形態による簡略動作フロー図である。
複数のプラットフォーム固有の機能を選択的に有効にするための、図1および2におけるコンピューティングデバイスにより用いられ得るオペレーティングシステム(OS)固有の機能仕様の例示的な実施形態である。
複数のプラットフォーム固有の機能を選択的に有効にするための、図1および2におけるコンピューティングデバイスにより用いられ得る機能仕様の例示的な実施形態である。
図3および9の方法の実行に応答する、図1および2のコンピューティングデバイスの最終的構成の例示的な図である。
図3および9の方法の実行に応答する、図1および2のコンピューティングデバイスの最終的構成の別の例示的な図である。
図1および2におけるコンピューティングデバイスにより実行され得る複数のプラットフォーム固有の機能を選択的に有効にするための方法の少なくとも1つの他の実施形態の簡略フロー図である。
複数のプラットフォーム固有の機能を選択的に有効にするための図9における方法の少なくとも一実施形態による簡略動作フロー図である。
本開示の概念では、様々な変更形態および代替形態が可能であるが、それらの具体的な実施形態は、図面において例として示されており、本明細書において詳細に説明されない。しかし、本開示の複数の概念を開示される特定の形態に限定する意図は存在せず、反対に本開示および添付の特許請求の範囲に即した全ての変更形態、均等物、および代替形態を包含する意図であることを理解されたい。
本明細書において「一実施形態」、「実施形態」、「例示的な実施形態」等を参照する場合、説明される実施形態が特定の機能、構造、または特性を含み得ることを示すが、あらゆる実施形態は、当該特定の機能、構造、または特性を含み得、または必ずしも含むわけではない場合がある。更に、そのような文言は同一の実施形態を必ずしも参照するわけではない。更に、特定の機能、構造、または特性が一実施形態に関連して説明される場合、明示的に説明されているか否かにかかわらず、複数の他の実施形態に関連してそのような機能、構造、または特性をもたらすことは当業者の知識の範囲内であると考えられる。更に、「A、B、およびCのうちの少なくとも1つ」の形での一覧に含まれる項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、B、およびC)を意味し得ることを理解されたい。同様に、「A、B、またはCのうちの少なくとも1つ」の形で列挙された複数の項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、B、およびC)を意味し得る。
複数の開示された実施形態はいくつかの場合に、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装され得る。複数の開示された実施形態は、1または複数の一時的または非一時的機械可読(例えばコンピュータ可読)ストレージ媒体により保持され、またはこれらに記憶される命令としても実装され得る。命令は、1または複数のプロセッサにより読み取られて実行され得る。機械可読ストレージ媒体は、機械(例えば、揮発性もしくは不揮発性メモリ、メディアディスク、または他の媒体のデバイス)により読み取り可能な形態の情報を格納または送信する任意のストレージデバイス、メカニズム、または他の物理構造体として実施され得る。
複数の図面において、いくつかの構造的または方法の機能は、特定の配置および/または順序で示され得る。しかし、複数のそのような特定の配置および/または順序は必要とされない場合があることを理解されたい。むしろいくつかの実施形態において、複数のそのような機能は異なる態様で、および/または例示的な図に示されるものとは異なる順序で配置され得る。更に、特定の図面に構造的または方法の機能を含んでいても、そのような機能が全ての実施形態において必要とされることを示唆するとは予定されておらず、いくつかの実施形態において含まれていない場合があり、または他の複数の機能と組み合わされる場合がある。
ここで図1を参照すると、例示的な実施形態において、複数のプラットフォーム固有の機能を選択的に有効にするためのシステム100はコンピューティングデバイス110を含む。使用時に、コンピューティングデバイス110は、OS126を初期化する間に1または複数のオペレーティングシステム(OS)固有の機能を実行する。それを行うべく、コンピューティングデバイス110の基本入出力システム(BIOS)インターフェース118は、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステム120を提供し、これを介してコンピューティングデバイス110は、初期化(例えば、ブート、ロード、実行等)されるOSと通信および/またはインタラクトし得る。OS126を初期化する間にOS固有の機能を実行することを容易にすべく、ACPIサブシステム120は、仮想ACPIデバイス(例えば、仮想ACPIオブジェクト)および仮想ACPIデバイスに関連付けられるOS固有の機能仕様(例えば、デバイス固有(device specific method)の方法または「_DSM」)を含む。いくつかの実施形態において、仮想ACPIデバイスに関連付けられるOS固有の機能仕様は、異なる様々なオペレーティングシステム(OS)に対する1または複数のOS固有の機能を含む。複数のそのような実施形態において、仮想デバイスドライバは、ブート/初期化処理中にOS126により初期化され、OS126が仮想ACPIデバイスとインタラクトすることを可能にし得る。仮想デバイスドライバは、仮想デバイスドライバがどのOS126とインタラクトするように構成されているかをユニークに識別するユニーク識別子(例えば、グローバルユニーク識別子または「GUID」、汎用ユニーク識別子または「UUID」等)を含み得る。いくつかの実施形態では、仮想デバイスドライバは、ACPIサブシステム120において仮想ACPIデバイスと関連付けられるOS固有の機能仕様を呼び出し得る。呼び出しは、初期化されるOS126のユニーク識別子を含み得る。呼び出しを受信すると、ACPIサブシステム120はOS固有の機能仕様を分析して、ユニーク識別子に基づいて初期化される特定のOS126に対して実行されるべき1または複数のOS固有の機能を決定する。次にACPIサブシステム120は、決定されたOS固有の機能を実行し、決定されたOS固有の機能としては、例えば、1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトをOS126に公開すること、OS126に対する1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを有効にすること(例えば、複数の機能および/またはオブジェクトをACPI名前空間に追加する、ロードする等)、1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトをOS126に対して非表示にすること(例えば、公開を阻止する)、および/またはOS126に対する1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを無効にする(例えば、機能および/またはオブジェクトをACPI名前空間から削除する、アンロードする等)が挙げられ得る。そのようにして、コンピューティングデバイス110は、ACPIサブシステム120、仮想ACPIデバイス、および仮想デバイスドライバを介し、初期化される特定のOS126に基づいて複数のプラットフォーム機能およびオブジェクトを選択的に有効および/または無効にするべく用いられ得る。
コンピューティングデバイス110は、デスクトップコンピュータ、ラップトップコンピューティングデバイス、サーバコンピュータ、消費者電子デバイス、モバイルコンピューティングデバイス、携帯電話、スマートフォーン、タブレットコンピューティングデバイス、携帯情報端末、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、および/または他のタイプのコンピューティングデバイスを含むがこれらに限定されない、本明細書において説明される複数の機能を実行することができる任意のタイプのコンピューティングデバイスとして実施され、またはそうでなければこれを含み得る。例示的なコンピューティングデバイス110は、プロセッサ112、メモリ114、入力/出力(I/O)サブシステム116、基本入出力システム(BIOS)インターフェース118、通信回路122、およびデータストレージ124を含む。勿論、コンピューティングデバイス110は、複数の他の実施形態において、コンピュータにおいて一般に見られるもの(例えば、様々な入力/出力デバイス)のような他のまたは追加の複数のコンポーネントを含み得る。更にいくつかの実施形態において、例示的なコンポーネントのうちの1または複数は、別のコンポーネントに組み込まれ、またはそうでなければこの一部を形成し得る。いくつかの実施形態において、例えばメモリ114またはその一部は、プロセッサ112に組み込まれ得る。
プロセッサ112は、本明細書において説明される複数の機能を実行することができる任意のタイプのプロセッサとして実施され得る。例えばプロセッサ112は、シングルまたはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラもしくは他のプロセッサ、または処理/制御回路として実施され得る。同様に、メモリ114は、本明細書において説明される複数の機能を実行することができる任意のタイプの揮発性もしくは不揮発性メモリ、またはデータストレージとして実施され得る。動作時にメモリ114は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、およびドライバ等のコンピューティングデバイス110の動作中に用いられる様々なデータおよびソフトウェアを格納し得る。メモリ114はI/Oサブシステム116を介してプロセッサ112に通信可能に結合され、I/Oサブシステム116は、コンピューティングデバイス110のプロセッサ112、メモリ114、および複数の他のコンポーネントとの入力/出力動作を容易にする回路および/またはコンポーネントとして実施され得る。例えばI/Oサブシステム116は、メモリコントローラハブ、入力/出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等)、および/または入力/出力動作を容易にする他のコンポーネント、ならびにサブシステムとして実施され、またはそうでなければこれらを含み得る。いくつかの実施形態において、I/Oサブシステム116は、1つの集積回路チップ上においてコンピューティングデバイス110のプロセッサ112、メモリ114、および複数の他のコンポーネントと共にシステムオンチップ(SoC)の一部を形成して組み込まれ得る。
BIOS118は、コンピューティングデバイス110のプラットフォームおよび/またはオペレーティングシステム(OS)をブートし、またはそうでなければ初期化することを容易にするハードウェアコンポーネント、ソフトウェアコンポーネント、またはこれらの組み合わせ(例えば、システムファームウェア、システム初期化データ等)として実施され得る。例えばBIOS118は、コンピューティングデバイス110の様々なコンポーネント(例えば入力/出力デバイス)を初期化および/またはテストし得る。いくつかの実施形態において、BIOS118はアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステム120および/またはフレームワークを介してロードされるOS126と通信およびインタラクトし得、これはBIOS118により提供され得る。更に以下に検討されるように、ACPIサブシステム120は1または複数のOS固有の機能をロードされるOS126に提供するように構成され得る。
コンピューティングデバイス110の通信回路122は、コンピューティングデバイス110と1または複数の他のコンピューティングデバイスとの間の通信を可能にすることができる任意のタイプの通信回路、デバイス、またはこれらの集合として実施され得る。そのような通信をもたらすべく、通信回路122は、任意の1または複数の通信技術(例えば、無線もしくは有線通信)および関連付けられる複数のプロトコル(例えば、イーサネット(登録商標)、Wi−Fi(登録商標)、WiMAX等)を用いるように構成され得る。
データストレージ124は、例えば、メモリデバイスおよび回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、または他のデータストレージデバイス等、データの短期的もしくは長期的な格納のために構成された任意のタイプのデバイスまたは複数のデバイスとして実施され得る。例えばデータストレージ124は、コンピューティングデバイス110により初期化および/または実行されるべき1または複数のオペレーティングシステム(例えば、図2に示されるオペレーティングシステム126)を格納するように構成され得る。いくつかの実施形態において、オペレーティングシステムの複数の部分は、より速く処理するべく、および/またはその他の理由により動作中にメモリ114にコピーされ得る。
ここで図2を参照すると、使用する際、コンピューティングデバイス110は、動作中に環境200を確立する。例示的な環境200は、ACPIサブシステムモジュール120、オペレーティングシステム(OS)126、デフォルトのACPIドライバロジック202、および仮想デバイスドライバロジック204を含む。環境200におけるモジュール、ロジック、および複数の他のコンポーネントの各々は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせとして実施され得る。コンピューティングデバイス110は、複数の他のコンポーネント、サブコンポーネント、モジュール、およびコンピューティングデバイスに一般に見られる複数のデバイスを含み得、これらは記載を見やすくするべく図2に図示されていないことを理解されたい。
ACPIサブシステムモジュール120は、コンピューティングデバイス110上で初期化(例えば、ブート、ロード、実行等)されるオペレーティングシステム126とインタラクトおよび/または通信するように構成され得る。それを行うべく、ACPIサブシステムモジュール120は、デフォルトのACPIドライバロジック202と通信し得る。以下に検討されるように、いくつかの実施形態において、デフォルトのACPIドライバロジック202は、複数の他のドライバ(例えば、仮想デバイスドライバロジック204、ビデオデバイスドライバロジック、入力/出力ドライバロジック等)を初期化する前にOS126により初期化され得る。複数のそのような実施形態において、ACPIサブシステムモジュール120は、コンピューティングデバイス110の1または複数の他のコンポーネントおよび/または機能を初期化する前にOS126とインタラクトし得る。
いくつかの実施形態において、ACPIサブシステムモジュール120は、仮想ACPIデバイスに対応するデバイスデータおよび/またはオブジェクトデータ、ならびに関連付けられるOS固有の機能仕様を1または複数のACPIテーブルにロードするように構成され得る。仮想ACPIデバイスは、ブート処理中にOS126によりエニュメレートされ得る仮想ACPIオブジェクトまたは任意のタイプのACPIコンポーネントとして実施され得る。仮想ACPIデバイスに関連付けられるOS固有の機能仕様は、デバイス固有の方法または「_DSM」として実施され得る。しかし、OS固有の機能仕様は、本明細書において説明される複数の機能を実行するように構成されたその他のタイプのACPI制御方法(例えば、カスタムの制御方法等)、オブジェクト、またはその他のタイプのACPIコンポーネントとして実施され得ることを理解されたい。いくつかの実施形態において、仮想ACPIデバイスおよびOS固有の機能仕様がACPI名前空間において宣言され、OS126によりこれらのデバイス/オブジェクトを後でエニュメレートすることを容易にし得る。
いくつかの実施形態において、ACPIサブシステムモジュール120は、初期化(例えば、ロード、ブート、実行等)される特定のOS126に基づいて1または複数の機能を実行するようにも構成され得る。複数のそのような実施形態において、OS固有の機能仕様(例えば、「_DSM」)は、任意の数の異なるオペレーティングシステム(例えば、図5および6、ならびに関連する検討を参照されたい)に関連して実行される1または複数のOS固有の機能を含み得る。例えば、OS固有の機能としては、1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを特定のOS126に公開し、特定のOS126に対する1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを有効にし(例えば、複数の機能および/またはオブジェクトをACPI名前空間に追加する、ロードする等)、1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを特定のOS126に対して非表示にし(例えば、公開を阻止する)、および/または特定のOS126に対する1または複数のOS固有のプラットフォーム機能および/またはOS固有のプラットフォームオブジェクトを無効にする(例えば、機能および/またはオブジェクトをACPI名前空間から削除する、アンロードする等)機能を含み得る。OS固有の機能仕様(例えば、「_DSM」)に含まれる各OS126は、ユニーク識別子(例えば、グローバルユニーク識別子または「GUID」、汎用ユニーク識別子または「UUID」等)により識別され得る。各OS126に対するユニーク識別子は、OS126を他のOS126からユニークに識別する1または複数の文字、数字、シンボル、文字列等として実施され得る。以下により詳細に検討されるように、初期化されたOS126に基づいて実行される複数の特定の機能を制御することにより、ハードウェア供給元および/またはデバイス管理者は、初期化される特定のOS126に利用可能な複数のOS固有の機能および/またはオブジェクトを選択的に有効および/または無効にし得る。
ACPIサブシステムモジュール120は、初期化される特定のOS126に基づいて、どのOS固有の機能が実行されるべきかを決定するようにも構成され得る。それを行うべく、ACPIサブシステムモジュール120は、仮想デバイスドライバロジック204からの呼び出しを受信するように構成される。いくつかの実施形態において、仮想デバイスドライバロジック204から受信された呼び出しは、初期化されたOS126のユニーク識別子を含む。従って、ACPIサブシステムモジュール120は、OS固有の機能仕様(例えば「_DSM」)を分析して、受信されたユニーク識別子がOS固有の機能仕様内に含まれる複数のOS固有の機能に関連付けられるユニーク識別子のいずれかに一致するかを判断するように構成される。受信されたユニーク識別子がOS固有の機能仕様内の複数のユニーク識別子のうちの1つに一致するとACPIサブシステムモジュール120が判断した場合、ACPIサブシステムモジュール120は、対応する機能を実行するように構成され得る。
複数の他の実施形態において、ACPIサブシステムモジュール120は、仮想デバイスドライバロジック204から受信された1または複数の機能識別子に基づいて1または複数の機能を実行するように構成され得る。複数のそのような実施形態において、ACPIサブシステムモジュール120は、仮想ACPIデバイスに対応するデバイスデータおよび/またはオブジェクトデータ、ならびに仮想ACPIデバイスに関連付けられる一般的機能仕様を1または複数のACPIテーブルにロードするように構成され得る。仮想ACPIデバイスに関連する機能仕様は、デバイス固有の方法または「_DSM」として実施され得、異なる様々なオペレーティングシステム(OS)に対する1または複数のOS固有の機能を含み得る。いくつかの実施形態において、複数のOS固有の機能の各々は付番され、またはそうでなければ機能識別子を含み得る。OS固有の各機能の機能識別子は、OS固有の機能を他のOS固有の機能からユニークに識別する1または複数の文字、数字、シンボル、文字列等として実施され得る。従って、ACPIサブシステムモジュール120により受信された呼び出しは、初期化されたOS126に対して実行されるべき1または複数のOS固有の機能に対応する1または複数のユニーク機能識別子を含み得る。ACPIサブシステムモジュール120は、機能仕様(例えば「_DSM」)を分析して、受信された機能識別子のうちの1または複数が機能仕様内に含まれる複数の機能識別子のいずれかに一致するかを判断するように構成される。受信された機能識別子が機能仕様内の複数の機能識別子のうちの1つに一致するとACPIサブシステムモジュール120が判断した場合、ACPIサブシステムモジュール120は、対応する機能を実行するように構成され得る。
オペレーティングシステム(OS)126は、本明細書において説明される複数の機能を実行し、および/または複数の機能を提供するための任意のタイプのOS、または他の類似のセットの命令として実施され得る。例えば様々な実施形態において、OS126は、ワシントン州レドモンド市のマイクロソフトコーポレーションから市販されるウィンドウズ(登録商標)のバージョン、(カリフォルニア州マウンテンビュー市のグーグルインコーポレイテッドから市販されるアンドロイド(商標)を含む)Linux(登録商標)のバージョン、カリフォルニア州クパチーノ市のアップルインコーポレイテッドから市販され、UNIX(登録商標)のバージョンであるOS X(登録商標)、および/またはその他のタイプのOS126として実施され得る。使用時に、OS126は、コンピューティングデバイス110により実行される1または複数のアプリケーションに対するハードウェアおよびソフトウェアリソースを管理し得る。いくつかの実施形態においてOS126は、デフォルトのACPIドライバロジック202および/または仮想デバイスドライバロジック204により、ACPIサブシステムモジュール120、またはACPIサブシステムの1もしくは複数のコンポーネント(例えば、仮想ACPIデバイス、OS固有の機能仕様、機能仕様等)と通信および/またはインタラクトするように構成され得る。例えばコンピューティングデバイス110によりOS126を初期化する間、OS126は(関連付けられるOSローダーまたは他のコンポーネントを介して)デフォルトのACPIドライバロジック202を初期化および/またはロードし得る。デフォルトのACPIドライバロジック202は、OS126を有効にしてACPIサブシステムモジュール120とインタラクトおよび/または通信するように構成され得る。またOS126は、仮想デバイスドライバロジック204を初期化し得る。仮想デバイスドライバロジック204は以下により詳細に検討されるように、OS126を有効にしてACPIサブシステムモジュール120によりロードされた仮想ACPIデバイスとインタラクトおよび/または通信するように構成され得る。
デフォルトのACPIドライバロジック202は、ACPIサブシステムモジュール120、またはACPIサブシステムモジュール120の1もしくは複数のコンポーネント(例えば、仮想ACPIデバイス、OS固有の機能仕様、機能仕様等)と通信および/またはインタラクトするように構成され得る。いくつかの実施形態において、デフォルトのACPIドライバロジック202は、OS126のブート処理の初期段階中に初期化されるように構成され得る。例えばデフォルトのACPIドライバロジック202は、他のドライバロジック(例えば、仮想デバイスドライバロジック204、ビデオデバイスドライバロジック、入力/出力ドライバロジック等)を初期化する前にOS126により初期化され得る。複数のそのような実施形態において、ACPIサブシステムモジュール120は、コンピューティングデバイス110の1または複数の他のコンポーネントおよび/または機能を初期化する前にOS126とインタラクトし得る。デフォルトのACPIドライバロジック202は、例示的な実施形態において「デフォルトの」ACPIドライバロジックとして説明されるが、デフォルトのACPIドライバロジック202は、任意のタイプのドライバロジック(例えば、OS供給元および/またはハードウェア供給元により提供される標準またはユニバーサルACPIドライバロジック、オープンソースACPIドライバロジック、占有ドライバロジック等)であってもよいことを理解されたい。従って本明細書において用いられるように、「デフォルトのACPIドライバロジック」という用語が、OS126の初期化中にOS126とACPIサブシステムモジュール120との間の複数の初期インタラクションを可能にするように構成された任意のドライバロジックを包含することが意図される。
仮想デバイスドライバロジック204は、ACPIサブシステムモジュール120によりロードされた仮想ACPIデバイスとインタラクトおよび/または通信するように構成され得る。いくつかの実施形態において、仮想デバイスドライバロジック204は、デフォルトのACPIドライバロジック202を初期化した後にOS126により初期化され得る。仮想デバイスドライバロジック204は、ロードされる(例えば、初期化され、ブートされ、実行される等)特定のOS126に固有であり得、どのOS固有の機能がACPIサブシステムモジュール120により実行されるべきかを判断することを容易にし得る(例えば、図5および6、ならびに関連する検討を参照されたい)。例えばいくつかの実施形態において、仮想デバイスドライバロジック204は、どのOS126と仮想デバイスドライバがインタラクトするように構成されているかをユニークに識別するユニーク識別子(例えば、GUID、UUID等)を含み得る。複数の他の実施形態において、仮想デバイスドライバロジック204は、初期化されるOS126に対して実行されるべき複数のOS固有の機能をユニークに識別する1または複数の機能識別子を含み得る。複数のそのような実施形態において、以下に検討されるように、仮想デバイスドライバロジック204は、初期化されるOS126のユニーク識別子、および/または実行されるべき特定の機能に関連付けられる機能識別子を含むACPIサブシステムモジュール120に呼び出しを送信するように構成され得る。ACPIサブシステムモジュール120は、受信された識別子を比較して、OS126に対して実行されるべき複数のOS固有の機能を決定し得る。
ここで図3を参照すると、コンピューティングデバイス110は、複数のプラットフォーム固有の機能を選択的に有効にするための方法300を実行し得る。方法300はブロック302で開始し、コンピューティングデバイス110のACPIサブシステム120は、仮想ACPIデバイスを示すデバイスデータおよび/またはオブジェクトデータ(例えば、仮想ACPIオブジェクト等)、ならびに関連付けられるOS固有の機能仕様(例えば、「_DSM」、制御方法等)を1または複数のACPIテーブル(例えば、図4に例示的に示されたデータフロー402)へとロードする。ACPIテーブルは、コンピューティングデバイス110上に格納された任意のタイプのデータ構造体として実施され得、ACPIサブシステム120またはその任意のコンポーネントに関連付けられるデータは、ACPIサブシステム120および/またはロードされるOS126により後で用いられるように格納され得る。例えばいくつかの実施形態において、ACPIテーブルは、初期化中および/または実行の後の段階(例えば、ランタイム)の間にOS126によりエニュメレートされ、および/またはインタラクトし得る1または複数のACPIデバイス、機能、オブジェクト、デバイス固有の方法等を含み得る。いくつかの実施形態において、ACPIテーブルにロードされるデバイスデータは、コンピューティングデバイス110のACPIベーシック入出力システム(BIOS)ファームウェアからロードされ得る。しかし、ACPIテーブルにロードされるデバイスデータは、コンピューティングデバイス110のその他のコンポーネント(例えば、メモリ114、データストレージ124等)からロードされ得ることを理解されたい。いくつかの実施形態では、ブロック304および306において仮想ACPIデバイスおよびOS固有の機能仕様がACPI名前空間で宣言され、ブート処理中(例えば、OS126の初期化)および/または通常の実行中(例えば、ランタイム)にOS126による後のエニュメレーションおよび/またはOS126とのインタラクションを容易にし得る。
検討されるように、いくつかの実施形態において仮想ACPIデバイスに関連付けられるOS固有の機能仕様(例えば、「_DSM」)は、異なる様々なオペレーティングシステム(OS)に対する1または複数のOS固有の機能を含み得る。OS固有の機能仕様に含まれる各OS126は、ユニーク識別子(例えば、グローバルユニーク識別子または「GUID」、汎用ユニーク識別子または「UUID」等)により識別され得る。更にいくつかの実施形態において、OS固有の機能は、それが関連付けられる特定のOS126に基づいてグループ化され得る。複数のそのような実施形態において、特定のOS126に対するユニーク識別子は、当該OS126に対するOS固有の機能を他のOS126に対するOS固有の機能からグループ化する(例えば、パーティショニングし、分離し、配置する等)べく用いられ得る。例えば図5に例示的に示されるように、OS固有の機能仕様(例えば、「_DSM」500)は、その中で列挙される各OS126に対する1または複数のOS固有の機能512、522、532を含み得る。OS固有の機能512、522、532は、それらが関連付けられる特定のOS126に応じてグループ化され、またはそうでなければ配置され得る。OS固有の機能512、522、532をグループ化することを容易にすべく、OS固有の機能仕様(例えば、「_DSM」500)の各OS126は、異なるユニーク識別子(例えば、GUID510、520、530)にも関連し得る。いくつかの実施形態において、複数のユニーク識別子(例えば、GUID510、520、530)は、初期化(例えば、ロード、ブート、実行等)される特定のOS126の識別に基づいて1または複数のOS固有の機能512、522、532を後で実行することも容易にするようにも用いられ得る。
再び図3を参照すると、ブロック308においてACPIサブシステム120は、デバイスデータを、ACPIテーブルからブートされるOS126により初期化されたデフォルトのACPIドライバ202へと送信する(例えば、図4に例示的に示されたデータフロー404および406)。いくつかの実施形態において、デフォルトのACPIドライバ202は、複数の他のドライバ(例えば、仮想デバイスドライバ204、ビデオデバイスドライバ、入力/出力ドライバ等)を初期化する前にOS126により初期化され得る。複数のそのような実施形態において、デフォルトのACPIドライバ202は、コンピューティングデバイス110の1または複数の他のコンポーネントおよび/または機能を初期化する前に、OS126がACPIサブシステム120と通信し、インタラクトし、またはそうでなければインターフェース接続することを可能にするように構成される。更にいくつかの実施形態において、デフォルトのACPIドライバ202に送信されたデバイスデータはOS126により、仮想ACPIデバイスおよび/またはACPIサブシステム120のその他のACPIデバイス、機能、コンポーネント、オブジェクト、制御方法等をエニュメレートするために用いられ得る(例えば、図4に例示的に示されたデータフロー408)。デフォルトのACPIドライバ202は、例示的な実施形態において「デフォルトの」ACPIドライバとして説明されるが、デフォルトのACPIドライバ202は、任意のタイプのドライバ(例えば、OS供給元および/またはハードウェア供給元により提供される標準またはユニバーサルACPIドライバ、オープンソースACPIドライバ、占有ドライバ等)であってもよいことを理解されたい。従って本明細書において用いられるように、「デフォルトのACPIドライバ」という用語が、OS126の初期化中にOS126とACPIサブシステム120との間の複数の初期インタラクションを可能にするように構成された任意のドライバを包含することが意図される。
ブロック310においてコンピューティングデバイス110は、ACPIサブシステム120においてOS固有の機能仕様に呼び出しを送信する(例えば、図4に例示的に示されたデータフロー412)。いくつかの実施形態において、OS固有の機能仕様に対する呼び出しは、仮想デバイスドライバ204により送信され、仮想デバイスドライバ204は、ブートされるOS126により初期化され得る。(例えば、図4に例示的に示されたデータフロー410)。更にいくつかの実施形態において、仮想デバイスドライバ204は、デフォルトのACPIドライバ202を初期化した後にOS126により初期化され得、ACPIサブシステム120の仮想ACPIデバイスとインターフェース接続する(例えば、インタラクトし、通信する等)ように構成されている。検討されるように、仮想デバイスドライバ204は、ロードされる特定のOS126に固有であり得、当該OS126を他のOS126からユニークに識別するユニーク識別子(例えば、GUID、UUID等)を含み得る。従って、ACPIサブシステム120におけるOS固有の機能仕様(例えば、「_DSM」)に対する呼び出しは、仮想デバイスドライバ204から得られたユニーク識別子に基づいてロードされるOS126のユニーク識別子(例えば、GUID)を含み得る。更にいくつかの実施形態では、ブロック312において仮想デバイスドライバ204は、ACPIサブシステム120において呼び出しによりユニーク識別子(例えば、GUID)をOS固有の機能仕様(例えば「_DSM」)に対する引数として渡し得る。ユニーク識別子(例えば、GUID)を送信し、またはそうでなければ供給するためのその他の技術も、コンピューティングデバイス110および/または仮想デバイスドライバ204により用いられ得ることを理解されたい。
ブロック314において、コンピューティングデバイス110のACPIサブシステム120は、仮想デバイスドライバ204からロードされるOS126のユニーク識別子(例えば、GUID)を含む呼び出しを受信する。その次に、ブロック316においてコンピューティングデバイス110のACPIサブシステム120は、OS固有の機能仕様(例えば、「_DSM」)を分析して、仮想デバイスドライバ204から呼び出しと共に受信されたユニーク識別子(例えば、GUID)に基づいて初期化されたOS126に対して実行されるべき1または複数のOS固有の機能を決定する。それを行うべく、ACPIサブシステム120は、初期化されるOSの仮想デバイスドライバ204から受信されたユニーク識別子を、OS固有の機能仕様(例えば「_DSM」)に含まれる複数のユニーク識別子と比較し得る。受信されたユニーク識別子がOS固有の機能仕様に含まれる複数のユニーク識別子のうちの1つと一致するとの判断に応答して、ACPIサブシステム120は、一致する識別子と関連付けられるOS126に対するOS固有の機能が実行されるべきであると決定し得る。
ブロック318において、コンピューティングデバイス110のACPIサブシステム120は、受信されたユニーク識別子に基づいて決定されたOS126に対するOS固有の機能を実行する。例えばいくつかの実施形態では、ブロック320においてACPIサブシステム120は、OS固有の機能および/またはOS固有のオブジェクトを初期化されるOS126に公開する(例えば、図4に例示的に示されたデータフロー414)。更にまたは代替的に、ブロック322においてACPIサブシステム120は、OS固有の機能および/またはOS固有のオブジェクトを初期化されるOS126に対して非表示にする。
まず、初期化されるOS126および/またはOS126に対して実行されるべき複数の特定の機能を識別することに応答して実行される複数の特定の機能を制御することにより、ACPIサブシステム120は、初期化されるOS126に対する複数のOS固有の機能を選択的に有効および/または無効にし得ることを理解されたい。例えば図7に例示的に示されるように、コンピューティングデバイス110は、複数の機能のプール700、および/または異なる様々なOS126(例えば、OS_1 704、OS_2 705、OS_3 706、OS_4 707)により用いられる複数のオブジェクト710を提供するファームウェア(例えば、BIOS118)を含み得る。いくつかの実施形態において、ファームウェアにより提供される複数の機能および/またはオブジェクト710のうちの1または複数は、OS固有であり得る。例えばファームウェアは、OS_1 704に固有の複数の機能および/またはオブジェクト740のグループ(例えば、A1 742、A2 744、A3 746、A4 748)と、OS_2 705に固有の複数の機能および/またはオブジェクト750のグループ(例えば、B1 752)と、OS_3 706に固有の複数の機能および/またはオブジェクト760のグループ(例えば、C1 762、C2 764、C3 766)と、OS_4 707に固有の複数の機能および/またはオブジェクト770のグループ(例えば、D1 772、D2 774)とを含み得る。いくつかの実施形態において、仮想ACPIオブジェクト730(例えば、仮想ACPIデバイス)およびACPIサブシステム120の複数の他のコンポーネントは、初期化されるOS126(例えば、OS_1 704)とインタラクトするように構成され得る。初期化される特定のOS126(例えば、OS_1 704)を識別することに応答して、ACPIサブシステム120は、初期化されない他のOS126(例えば、OS_2 705、OS_3 706、OS_4 707)と関連付けられる複数の機能および/またはオブジェクト(例えば、B1 752、C1 762、C2 764、C3 766、D1 772、D2 774)を無効または非表示720にするように構成されたOS_1 704に固有の1または複数の機能を実行し得る。更にACPIサブシステム120は、OS_1 704に関連付けられる複数の機能および/またはオブジェクト(例えば、A1 742、A2 744)のうちの1または複数を有効にし、または公開するように構成されたOS_1 704に固有の1または複数の機能を実行し得る。更にまたは代替的に、ACPIサブシステム120は、OS_1 704に関連付けられる複数の機能および/またはオブジェクト(例えば、A3 746、A4 748)のうちの1または複数を無効または非表示にするように構成されたOS_1 704に固有の1または複数の機能を実行し得る。
ここで図8を参照すると、初期化される異なるOS126(例えば、OS_3 706)の複数の機能を選択的に有効および無効にする別の図示的な例が示されている。示されるように、初期化されるOS_3 706を識別することに応答して、ACPIサブシステム120は、初期化されない他のOS126(例えば、OS_1 704、OS_2 705、OS_4 707)と関連付けられる複数の機能および/またはオブジェクト(例えば、A1 742、A2 744、A3 746、A4 748、B1 752、D1 772、D2 774)を無効または非表示720にするように構成されたOS_3 706に固有の1または複数の機能を実行し得る。更にACPIサブシステム120は、OS_3 706に関連付けられる複数の機能および/またはオブジェクト(例えば、C1 762、C2 764)のうちの1または複数を有効にし、または公開するように構成されたOS_3 706に固有の1または複数の機能を実行し得る。更にまたは代替的に、ACPIサブシステム120は、OS_3 706に関連付けられる複数の機能および/またはオブジェクト(例えば、C3 766)のうちの1または複数を無効または非表示にするように構成されたOS_3 706に固有の1または複数の機能を実行し得る。
ここで図9を参照すると、いくつかの実施形態においてコンピューティングデバイス110は、複数のプラットフォーム固有の機能を選択的に有効にするための方法900を実行し得る。方法900はブロック902で開始し、コンピューティングデバイス110のACPIサブシステム120は、仮想ACPIデバイスを示すデバイスデータおよび/またはオブジェクトデータ(例えば、仮想ACPIオブジェクト等)、ならびに関連付けられる機能仕様(例えば、「_DSM」、制御方法等)を1または複数のACPIテーブル(例えば、図10に例示的に示されたデータフロー1002)へとロードする。ACPIテーブルは、コンピューティングデバイス110上に格納された任意のタイプのデータ構造体として実施され得、ACPIサブシステム120またはその任意のコンポーネントに関連付けられるデータは、ACPIサブシステム120および/またはロードされるOS126により後で用いられるように格納され得る。いくつかの実施形態において、ACPIテーブルにロードされるデバイスデータは、コンピューティングデバイス110のACPIベーシック入出力システム(BIOS)ファームウェアからロードされ得る。しかし、ACPIテーブルにロードされるデバイスデータは、コンピューティングデバイス110のその他のコンポーネント(例えば、メモリ114、データストレージ124等)からロードされ得ることを理解されたい。いくつかの実施形態では、ブロック904および906において仮想ACPIデバイスおよび機能仕様(例えば「_DSM」)がACPI名前空間において宣言され、ブート処理中(例えば、OS126の初期化)にOS126による後のエニュメレーションを容易にし得る。
検討されるように、いくつかの実施形態において仮想ACPIデバイスに関連付けられる機能仕様(例えば、「_DSM」)は、異なる様々なオペレーティングシステム(OS)に対する1または複数のOS固有の機能を含み得る。複数のそのような実施形態において、機能仕様は、含まれる全てのOS固有の機能およびOS126と共に用いる識別子(例えば、GUID、UUID等)を含み得る。しかし、複数のOS固有の機能の各々は付番され、またはそうでなければ機能識別子を含み、ACPIサブシステム120による後の識別を容易にし得る。OS固有の各機能の機能識別子は、OS固有の機能を他のOS固有の機能からユニークに識別する1または複数の文字、数字、シンボル、文字列等として実施され得る。以下により詳細に検討されるように、複数のOS固有の機能およびそれらの関連付けられる機能識別子は、仮想デバイスドライバ204内に含まれる1または複数のOS固有の機能および機能識別子に対応し得る。いくつかの実施形態において、複数のOS固有の機能は、それらが関連付けられる特定のOS126に基づいて機能仕様内でグループ化または配置され得る。更にそのような実施形態において、複数のOS固有の機能が連続して付番され、ACPIサブシステム120による後の識別を容易にし得る。例えば図6に例示的に示されるように、機能仕様(例えば、「_DSM」600)は、1または複数のOS126に対する1または複数のOS固有の機能612を含み得る。OS固有の機能612は、それらが関連付けられる特定のOS126に応じてグループ化され、またはそうでなければ配置され得る。更に、例示的な機能仕様(例えば「_DSM」600)は、それに含まれる複数のOS固有の機能612の全てと共に用いる1つの識別子(例えば、GUID610)を含む。
再び図9を参照すると、ブロック908においてACPIサブシステム120は、デバイスデータを、ACPIテーブルからブートされるOS126により初期化されたデフォルトのACPIドライバ202へと送信する(例えば、図10に例示的に示されたデータフロー1004および1006)。いくつかの実施形態において、デフォルトのACPIドライバ202は、複数の他のドライバ(例えば、仮想デバイスドライバ204、ビデオデバイスドライバ、入力/出力ドライバ等)を初期化する前にOS126により初期化され得る。複数のそのような実施形態において、デフォルトのACPIドライバ202は、コンピューティングデバイス110の1または複数の他のコンポーネントおよび/または機能を初期化する前に、OS126がACPIサブシステム120と通信し、インタラクトし、またはそうでなければインターフェース接続することを可能にするように構成される。いくつかの実施形態において、デフォルトのACPIドライバ202に送信されたデバイスデータは、OS126により用いられ、仮想ACPIデバイスをエニュメレートし得る(例えば、図10に例示的に示されたデータフロー1008)。
ブロック910においてコンピューティングデバイス110は、ACPIサブシステム120において機能仕様に呼び出しを送信する(例えば、図10に例示的に示されたデータフロー1012)。いくつかの実施形態において、ACPIサブシステム120における機能仕様に対する呼び出しは、仮想デバイスドライバ204により送信され、仮想デバイスドライバ204は、ブートされるOS126により初期化され得る。(例えば、図10に例示的に示されたデータフロー1010)。更にいくつかの実施形態において、仮想デバイスドライバ204は、デフォルトのACPIドライバ202を初期化した後にOS126により初期化され得、ACPIサブシステム120の仮想ACPIデバイスとインターフェース接続する(例えば、インタラクトし、通信する等)ように構成されている。仮想デバイスドライバ204は、ロードされる特定のOS126に固有であり得、1または複数のOS固有の機能の一覧を含み得る。いくつかの実施形態において、列挙されるOS固有の各機能は、機能仕様(例えば「_DSM」)に含まれる異なるOS固有の機能に対応し得る。同様に、列挙されたOS固有の各機能は、機能仕様に含まれる、対応するOS固有の機能の機能識別子と一貫性がある機能識別子を含み得る。従って、ACPIサブシステム120における機能仕様(例えば「_DSM」)に対する呼び出しは、実行されるべき1または複数のOS固有の機能に関連付けられる1または複数の機能識別子を含み得る。更にいくつかの実施形態では、ブロック912において仮想デバイスドライバ204は、ACPIサブシステム120において呼び出しにより機能識別子を機能仕様(例えば「_DSM」)に対する引数として渡し得る。機能識別子を送信し、またはそうでなければ供給するためのその他の技術も、コンピューティングデバイス110および/または仮想デバイスドライバ204により用いられ得ることを理解されたい。
ブロック914において、コンピューティングデバイス110のACPIサブシステム120は、仮想デバイスドライバ204から機能識別子を含む呼び出しを受信する。その次に、ブロック916においてコンピューティングデバイス110のACPIサブシステム120は、機能仕様(例えば、「_DSM」)を分析して、仮想デバイスドライバ204から呼び出しと共に受信された機能識別子に基づいて初期化されたOS126に対して実行されるべき1または複数のOS固有の機能を決定する。それを行うべく、ACPIサブシステム120は、初期化されるOSの仮想デバイスドライバ204から受信された機能識別子を、機能仕様(例えば「_DSM」)に含まれる対応する機能識別子と比較し得る。受信された機能識別子が機能仕様に含まれる対応する機能識別子のうちの1つと一致するとの判断に応答して、ACPIサブシステム120は、一致する機能識別子と関連付けられるOS固有の機能が実行されるべきであると決定し得る。
ブロック918において、コンピューティングデバイス110のACPIサブシステム120は、受信された機能識別子に基づいて決定されたOS126に対するOS固有の機能を実行する。例えばいくつかの実施形態では、ブロック920においてACPIサブシステム120は、OS固有の機能および/またはOS固有のオブジェクトを初期化されるOS126に公開する(例えば、図10に例示的に示されたデータフロー1014)。更にまたは代替的に、ブロック922においてACPIサブシステム120は、OS固有の機能および/またはOS固有のオブジェクトを初期化されるOS126に対して非表示にする。
本明細書において開示される複数の技術を用いることにより、ハードウェア供給元および/またはコンピューティングデバイス管理者は、初期化される(例えばブートされ、ロードされ、実行される等)特定のオペレーティングシステム126に基づいて、複数のOS固有の機能および/またはオブジェクトを選択的に有効および無効にし得ることを理解されたい。それを行うべく、ハードウェア供給元および/またはコンピューティングデバイス管理者は、同一または類似のハードウェアデバイスおよび/またはプラットフォーム上で異なる様々なOS126をサポートするように構成されたファームウェア(例えば、BIOS118、ACPIサブシステム120等)をリリースする場合がある。ファームウェアは、仮想ACPIデバイス(例えば、仮想ACPIオブジェクト)およびそれに関連付けられるOS固有の機能仕様(または機能仕様)を含むACPIサブシステム120および/またはフレームワークを提供し得る。別個の、OS固有の仮想デバイスドライバもサポートされる各OSに提供され得る。各仮想デバイスドライバ204は、ブートされるOS126により初期化されると、ブートされる特定のOS126の識別および/またはACPIサブシステム120により確認される1または複数のOS固有の機能の識別を有効にする。これに応答してACPIサブシステム120は、初期化されるOS126に固有の機能を実行し得る。従って、ブートされる特定のOS126の識別および/またはブートされる特定のOS126に対して実行される特定の機能の識別に基づいて実行されるべき複数の特定の機能を制御することにより、ハードウェア供給元は、ACPIサブシステム120を用いて、当該OS126に対する複数のOS固有の機能および/またはオブジェクトを選択的に有効および無効にし得る。
[例]
本明細書において開示される複数の技術の図示的な例が以下に提供される。複数の技術の実施形態は、以下に説明される複数の例の任意の1または複数、およびその任意の組み合わせを含み得る。
例1は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスに関連付けられるオペレーティングシステム(OS)固有の機能仕様を有し、OS固有の機能仕様が、複数のOS固有の機能を含むACPIサブシステムと、コンピューティングデバイスのOSにより初期化され、(i)ACPIサブシステムの仮想デバイスとインターフェース接続し、(ii)ACPIサブシステムにおいてOS固有の機能仕様に、OSを他の複数のオペレーティングシステムからユニークに識別するOSの識別子を含む呼び出しを送信する仮想デバイスドライバロジックとを備え、ACPIサブシステムが、(i)OS固有の機能仕様を分析して、OSをユニークに識別する呼び出しからの識別子に基づいて、OSのための複数のOS固有の機能のうちの1または複数のOS固有の機能を決定し、(ii)識別子に基づいてOSに対して決定された1または複数のOS固有の機能を実行する。
例2は例1の主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または仮想デバイスに関連付けられるカスタムのACPI制御方法を含む。
例3は例1および2のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例4は例1〜3のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、および(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例5は例1〜4のいずれかの主題を含み、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信することは、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信して、OSの識別子を引数として渡すことを含む。
例6は例1〜5のいずれかの主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも1つのOS固有の機能を含み、複数のオペレーティングシステムの各OSは、OSを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
例7は例1〜6のいずれかの主題を含み、OSは、第1のOSを含み、識別子は、第1のOSを他の複数のオペレーティングシステムからユニークに識別する第1の識別子を含み、OS固有の機能仕様の複数のOS固有の機能は、第1のOSに対する複数のOS固有の機能の第1のグループと、第1のOSとは異なるコンピューティングデバイスの第2のOSに対する複数のOS固有の機能の第2のグループとを含み、複数のOS固有の機能の第1のグループは、OS固有の機能仕様において第1の識別子により識別され、複数のOS固有の機能の第2のグループは、OS固有の機能仕様において第1の識別子とは異なる第2の識別子により識別される。
例8は例1〜7のいずれかの主題を含み、コンピューティングデバイスのOSにより初期化され、仮想デバイスドライバロジックを初期化する前にACPIサブシステムとインターフェース接続し、仮想デバイスドライバロジックとは異なるACPIドライバロジックを更に備え、ACPIサブシステムは、更に、(i)デバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードし、(ii)デバイスデータをACPIテーブルからACPIドライバロジックへと送信し、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるOS固有の機能仕様を示し、ACPIドライバロジックによりACPIテーブルからデバイスデータを受信したことに応答して、OSは、仮想デバイスをエニュメレートする。
例9は例1〜8のいずれかの主題を含み、デバイスデータをACPIテーブルにロードすることは、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードすることを含む。
例10は、コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法を含み、方法は、コンピューティングデバイスのオペレーティングシステム(OS)により仮想デバイスドライバを初期化してコンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続する段階と、仮想デバイスドライバにより、ACPIサブシステムにおいてOS固有の機能仕様に、OSを他の複数のオペレーティングシステムからユニークに識別するOSの識別子を含む呼び出しを送信する段階と、ACPIサブシステムによりOS固有の機能仕様を分析して、OSをユニークに識別する呼び出しからの識別子に基づいて、OSに対する複数のOS固有の機能のうちの1または複数のOS固有の機能を決定する段階と、ACPIサブシステムにより、識別子に基づいてOSに対して決定された1または複数のOS固有の機能を実行する段階とを備え、ACPIサブシステムは、仮想デバイスに関連付けられるOS固有の機能仕様を含み、OS固有の機能仕様は、複数のOS固有の機能を含む。
例11は例10の主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または仮想デバイスに関連付けられるカスタムのACPI制御方法を含む。
例12は例10および11のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例13は例10〜12いずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、および(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例14は例10〜13のいずれかの主題を含み、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信する段階は、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信する段階と、OSの識別子を引数として渡す段階とを有する。
例15は例10〜14のいずれかの主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも1つのOS固有の機能を含み、複数のオペレーティングシステムの各OSは、OSを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
例16は例10〜15のいずれかの主題を含み、OSは、第1のOSを含み、識別子は、第1のOSを他の複数のオペレーティングシステムからユニークに識別する第1の識別子を含み、OS固有の機能仕様の複数のOS固有の機能は、第1のOSに対する複数のOS固有の機能の第1のグループと、第1のOSとは異なるコンピューティングデバイスの第2のOSに対する複数のOS固有の機能の第2のグループとを含み、複数のOS固有の機能の第1のグループは、OS固有の機能仕様において第1の識別子により識別され、複数のOS固有の機能の第2のグループは、OS固有の機能仕様において第1の識別子とは異なる第2の識別子により識別される。
例17は例10〜16のいずれかの主題を含み、コンピューティングデバイスのACPIサブシステムによりデバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードする段階と、コンピューティングデバイスのOSによりACPIドライバを初期化して、仮想デバイスドライバを初期化する前にACPIサブシステムとインターフェース接続する段階と、ACPIサブシステムによりACPIテーブルからACPIドライバへとデバイスデータを送信する段階と、ACPIドライバがデバイスデータをACPIテーブルから受信したことに応答して、コンピューティングデバイスのOSにより仮想デバイスをエニュメレートする段階とを更に備え、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるOS固有の機能仕様を示し、ACPIドライバは、仮想デバイスドライバとは異なる。
例18は例10〜17のいずれかの主題を含み、デバイスデータをACPIテーブルにロードする段階は、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードする段階を有する。
例19は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、プロセッサと、プロセッサにより実行されると、コンピューティングデバイスに例10〜18のいずれかの方法を実行させる複数の命令が格納されたメモリを含む。
例20は、実行されることに応答してコンピューティングデバイスに例10〜18のいずれかの方法を実行させる、格納された複数の命令を含む1または複数の機械可読媒体を含む。
例21は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、コンピューティングデバイスのオペレーティングシステム(OS)により仮想デバイスドライバを初期化してコンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続するための手段と、仮想デバイスドライバによりACPIサブシステムにおいてOS固有の機能仕様に、OSを他の複数のオペレーティングシステムからユニークに識別するOSの識別子を含む呼び出しを送信するための手段と、ACPIサブシステムによりOS固有の機能仕様を分析して、OSをユニークに識別する呼び出しからの識別子に基づいて、OSに対する複数のOS固有の機能のうちの1または複数のOS固有の機能を決定するための手段と、ACPIサブシステムにより、識別子に基づいてOSに対して決定された1または複数のOS固有の機能を実行するための手段とを備え、ACPIサブシステムは、仮想デバイスに関連付けられるOS固有の機能仕様を含み、OS固有の機能仕様は、複数のOS固有の機能を含む。
例22は例21の主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または仮想デバイスに関連付けられるカスタムのACPI制御方法を含む。
例23は例21および22のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例24は例21〜23のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、または(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例25は例21〜24のいずれかの主題を含み、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信するための手段は、ACPIサブシステムにおいてOS固有の機能仕様に呼び出しを送信するための手段と、OSの識別子を引数として渡すための手段とを有する。
例26は例21〜25のいずれかの主題を含み、仮想デバイスに関連付けられるOS固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも1つのOS固有の機能を含み、複数のオペレーティングシステムの各OSは、OSを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
例27は例21〜26のいずれかの主題を含み、OSは、第1のOSを含み、識別子は、第1のOSを他の複数のオペレーティングシステムからユニークに識別する第1の識別子を含み、OS固有の機能仕様の複数のOS固有の機能は、第1のOSに対する複数のOS固有の機能の第1のグループと、第1のOSとは異なるコンピューティングデバイスの第2のOSに対する複数のOS固有の機能の第2のグループとを含み、複数のOS固有の機能の第1のグループは、OS固有の機能仕様において第1の識別子により識別され、複数のOS固有の機能の第2のグループは、OS固有の機能仕様において第1の識別子とは異なる第2の識別子により識別される。
例28は例21〜27のいずれかの主題を含み、コンピューティングデバイスのACPIサブシステムによりデバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードするための手段と、コンピューティングデバイスのOSによりACPIドライバを初期化して、仮想デバイスドライバを初期化する前にACPIサブシステムとインターフェース接続するための手段と、ACPIサブシステムによりACPIテーブルからACPIドライバへとデバイスデータを送信するための手段と、ACPIドライバがデバイスデータをACPIテーブルから受信したことに応答して、コンピューティングデバイスのOSにより仮想デバイスをエニュメレートするための手段とを更に備え、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるOS固有の機能仕様を示し、ACPIドライバは、仮想デバイスドライバとは異なる。
例29は例21〜28のいずれかの主題を含み、デバイスデータをACPIテーブルにロードするための手段は、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードするための手段を有する。
例30は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を有するアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムであって、機能仕様は、ACPIサブシステムにより実行される複数のオペレーティングシステム(OS)固有の機能を含み、複数のOS固有の機能の各々のOS固有の機能は、OS固有の機能をユニークに複数の他のOS固有の機能から識別する機能識別子に関連付けられるACPIサブシステムと、コンピューティングデバイスのOSにより初期化され、OSに固有であり、(i)ACPIサブシステムの仮想デバイスとインターフェース接続し、(ii)ACPIサブシステムにおいて機能仕様に対する呼び出しを送信するように構成された仮想デバイスドライバロジックであって、呼び出しは、OSに対応する機能仕様のOS固有の機能の複数の機能識別子のうちの1または複数を含む仮想デバイスドライバロジックとを備え、ACPIサブシステムは、(i)1または複数の機能識別子に基づいて機能仕様を分析して、複数のOS固有の機能のうちの1または複数のOS固有の機能を決定し、(ii)1または複数の機能識別子に基づいて決定された1または複数のOS固有の機能を実行する。
例31は例30の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)を含む。
例32は例30および31のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例33は例30〜32のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、および(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例34は例30〜33のいずれかの主題を含み、コンピューティングデバイスのOSにより初期化され、仮想デバイスドライバロジックを初期化する前にACPIサブシステムとインターフェース接続し、仮想デバイスドライバロジックとは異なるACPIドライバロジックを更に備え、ACPIサブシステムは、更に、(i)デバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードし、(ii)デバイスデータをACPIテーブルからACPIドライバロジックへと送信し、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示し、ACPIドライバロジックによりACPIテーブルからデバイスデータを受信したことに応答して、OSは、仮想デバイスをエニュメレートする。
例35は例30〜34のいずれかの主題を含み、デバイスデータをACPIテーブルにロードすることは、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードすることを含む。
例36は、コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法を含み、方法は、コンピューティングデバイスのオペレーティングシステム(OS)によりOSに固有の仮想デバイスドライバを初期化する段階と、仮想デバイスドライバにより、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続する段階と、仮想デバイスドライバにより、ACPIサブシステムにおいて機能仕様に対する呼び出しを送信する段階と、1または複数の機能識別子に基づいてACPIサブシステムにより機能仕様を分析して、複数のOS固有の機能のうちの1または複数のOS固有の機能を決定する段階と、ACPIサブシステムにより、1または複数の機能識別子に基づいて決定された1または複数のOS固有の機能を実行する段階とを備え、ACPIサブシステムは、仮想デバイスに関連付けられる機能仕様を含み、機能仕様は、ACPIサブシステムにより実行されるべき複数のOS固有の機能を含み、複数のOS固有の機能の各々のOS固有の機能は、OS固有の機能を複数の他のOS固有の機能からユニークに識別する機能識別子に関連し、呼び出しは、OSに対応する機能仕様の複数のOS固有の機能の複数の機能識別子のうちの1または複数を含む。
例37は例36の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または仮想デバイスに関連付けられるカスタムのACPI制御方法を含む。
例38は例36および37のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例39は例36〜38のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、および(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例40は例36〜39のいずれかの主題を含み、コンピューティングデバイスのOSにより、仮想デバイスドライバを初期化する前にACPIドライバを初期化して、ACPIサブシステムとインターフェース接続する段階と、ACPIサブシステムによりデバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードする段階と、ACPIサブシステムによりACPIテーブルからACPIドライバへとデバイスデータを送信する段階と、コンピューティングデバイスのOSにより、ACPIドライバにより受信されたACPIテーブルからデバイスデータをエニュメレートする段階とを更に備え、ACPIドライバは、仮想デバイスドライバと異なり、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示す。
例41は例36〜40のいずれかの主題を含み、デバイスデータをACPIテーブルにロードする段階は、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードする段階を有する。
例42は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、プロセッサと、プロセッサにより実行されると、コンピューティングデバイスに例36〜41のいずれかの方法を実行させる複数の命令が格納されたメモリを含む。
例43は、実行されることに応答してコンピューティングデバイスが例36〜41のいずれかの方法を実行させる、格納された複数の命令を含む1または複数の機械可読媒体を含む。
例44は、プラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、コンピューティングデバイスのオペレーティングシステム(OS)によりOSに固有の仮想デバイスドライバを初期化するための手段と、仮想デバイスドライバにより、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続するための手段と、仮想デバイスドライバにより、ACPIサブシステムにおいて機能仕様に対する呼び出しを送信するための手段と、ACPIサブシステムにより1または複数の機能識別子に基づいて機能仕様を分析して、複数のOS固有の機能のうちの1または複数のOS固有の機能を決定するための手段と、ACPIサブシステムにより、1または複数の機能識別子に基づいて決定された1または複数のOS固有の機能を実行するための手段とを備え、ACPIサブシステムは、仮想デバイスに関連付けられる機能仕様を含み、機能仕様は、ACPIサブシステムにより実行されるべき複数のOS固有の機能を含み、複数のOS固有の機能の各々のOS固有の機能は、OS固有の機能を複数の他のOS固有の機能からユニークに識別する機能識別子に関連し、呼び出しは、OSに対応する機能仕様の複数のOS固有の機能の複数の機能識別子のうちの1または複数を含む。
例45は例44の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または仮想デバイスに関連付けられるカスタムのACPI制御方法を含む。
例46は例44および45のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OSにOS固有の機能を公開すること、および(ii)OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例47は例44〜46のいずれかの主題を含み、複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能をOSに対して非表示にすること、および(ii)OS固有のオブジェクトをOSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む。
例48は例44〜47のいずれかの主題を含み、コンピューティングデバイスのOSにより、仮想デバイスドライバを初期化する前にACPIドライバを初期化して、ACPIサブシステムとインターフェース接続するための手段と、ACPIサブシステムによりデバイスデータをACPIサブシステムに関連付けられるACPIテーブルにロードするための手段と、ACPIサブシステムによりACPIテーブルからACPIドライバへとデバイスデータを送信するための手段と、コンピューティングデバイスのOSにより、ACPIドライバにより受信されたACPIテーブルからデバイスデータをエニュメレートするための手段とを更に備え、ACPIドライバは、仮想デバイスドライバと異なり、デバイスデータは、ACPIサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示す。
例49は例44〜48のいずれかの主題を含み、デバイスデータをACPIテーブルにロードするための手段は、コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアからACPIテーブルへとデバイスデータをロードするための手段を有する。

Claims (25)

  1. 複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスであって、
    アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスに関連付けられるオペレーティングシステム(OS)固有の機能仕様を有し、前記OS固有の機能仕様は、複数のOS固有の機能を含む前記ACPIサブシステムと、
    前記コンピューティングデバイスのOSにより初期化され、(i)前記ACPIサブシステムの前記仮想デバイスとインターフェース接続し、(ii)前記ACPIサブシステムにおいて前記OS固有の機能仕様に、前記OSを他の複数のオペレーティングシステムからユニークに識別する前記OSの識別子を含む呼び出しを送信する仮想デバイスドライバロジックとを備え、
    前記ACPIサブシステムは、(i)前記OS固有の機能仕様を分析して、前記OSをユニークに識別する前記呼び出しからの前記識別子に基づいて、前記OSのための前記複数のOS固有の機能のうちの1または複数のOS固有の機能を決定し、(ii)前記識別子に基づいて前記OSに対して決定された前記1または複数のOS固有の機能を実行する、コンピューティングデバイス。
  2. 前記仮想デバイスに関連付けられる前記OS固有の機能仕様は、前記仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または前記仮想デバイスに関連付けられるカスタムのACPI制御方法を含む、請求項1に記載のコンピューティングデバイス。
  3. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)前記OSにOS固有の機能を公開すること、および(ii)前記OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項1に記載のコンピューティングデバイス。
  4. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能を前記OSに対して非表示にすること、および(ii)OS固有のオブジェクトを前記OSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項1に記載のコンピューティングデバイス。
  5. 前記ACPIサブシステムにおいて前記OS固有の機能仕様に前記呼び出しを送信することは、前記ACPIサブシステムにおいて前記OS固有の機能仕様に前記呼び出しを送信して、前記OSの前記識別子を引数として渡すことを含む、請求項1に記載のコンピューティングデバイス。
  6. 前記仮想デバイスに関連付けられる前記OS固有の機能仕様は、異なる複数のオペレーティングシステムの各々に関連付けられる少なくとも1つのOS固有の機能を含み、
    前記複数のオペレーティングシステムの各OSは、前記OSを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する、請求項1〜5のいずれか1項に記載のコンピューティングデバイス。
  7. 前記OSは、第1のOSを含み、
    前記識別子は、前記第1のOSを他の複数のオペレーティングシステムからユニークに識別する第1の識別子を含み、
    前記OS固有の機能仕様の前記複数のOS固有の機能は、前記第1のOSに対する複数のOS固有の機能の第1のグループと、前記第1のOSとは異なる前記コンピューティングデバイスの第2のOSに対する複数のOS固有の機能の第2のグループとを含み、
    複数のOS固有の機能の前記第1のグループは、前記OS固有の機能仕様において前記第1の識別子により識別され、
    複数のOS固有の機能の前記第2のグループは、前記OS固有の機能仕様において前記第1の識別子とは異なる第2の識別子により識別される、請求項1〜5のいずれか1項に記載のコンピューティングデバイス。
  8. 前記コンピューティングデバイスの前記OSにより初期化され、前記仮想デバイスドライバロジックを初期化する前に前記ACPIサブシステムとインターフェース接続し、前記仮想デバイスドライバロジックとは異なるACPIドライバロジックを更に備え、
    前記ACPIサブシステムは、更に、(i)デバイスデータを前記ACPIサブシステムに関連付けられるACPIテーブルにロードし、(ii)前記デバイスデータを前記ACPIテーブルから前記ACPIドライバロジックへと送信し、
    前記デバイスデータは、前記ACPIサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記OS固有の機能仕様を示し、
    前記ACPIドライバロジックにより前記ACPIテーブルから前記デバイスデータを受信したことに応答して、前記OSは、前記仮想デバイスをエニュメレートする、請求項1〜5のいずれか1項に記載のコンピューティングデバイス。
  9. 前記デバイスデータを前記ACPIテーブルにロードすることは、前記コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアから前記ACPIテーブルへとデバイスデータをロードすることを含む、請求項8に記載のコンピューティングデバイス。
  10. コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法であって、
    前記コンピューティングデバイスのオペレーティングシステム(OS)により仮想デバイスドライバを初期化して前記コンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムの仮想デバイスとインターフェース接続する段階と、
    前記仮想デバイスドライバにより、前記ACPIサブシステムにおいてOS固有の機能仕様に、前記OSを他の複数のオペレーティングシステムからユニークに識別する前記OSの識別子を含む呼び出しを送信する段階と、
    前記ACPIサブシステムにより前記OS固有の機能仕様を分析して、前記OSをユニークに識別する前記呼び出しからの前記識別子に基づいて、前記OSに対する複数のOS固有の機能のうちの1または複数のOS固有の機能を決定する段階と、
    前記ACPIサブシステムにより、前記識別子に基づいて前記OSに対して決定された前記1または複数のOS固有の機能を実行する段階とを備え、
    前記ACPIサブシステムは、前記仮想デバイスに関連付けられる前記OS固有の機能仕様を含み、
    前記OS固有の機能仕様は、前記複数のOS固有の機能を含む、方法。
  11. 前記仮想デバイスに関連付けられる前記OS固有の機能仕様は、前記仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)または前記仮想デバイスに関連付けられるカスタムのACPI制御方法を含む、請求項10に記載の方法。
  12. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)前記OSにOS固有の機能を公開すること、および(ii)前記OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項10に記載の方法。
  13. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能を前記OSに対して非表示にすること、および(ii)OS固有のオブジェクトを前記OSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項10に記載の方法。
  14. 前記ACPIサブシステムにおいて前記OS固有の機能仕様に前記呼び出しを送信する段階は、前記ACPIサブシステムにおいて前記OS固有の機能仕様に前記呼び出しを送信する段階と、前記OSの前記識別子を引数として渡す段階とを有する、請求項10に記載の方法。
  15. 前記仮想デバイスに関連付けられる前記OS固有の機能仕様は、異なる複数のオペレーティングシステムの各々に関連付けられる少なくとも1つのOS固有の機能を含み、
    前記複数のオペレーティングシステムの各OSは、前記OSを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する、請求項10に記載の方法。
  16. 前記OSは、第1のOSを含み、
    前記識別子は、前記第1のOSを他の複数のオペレーティングシステムからユニークに識別する第1の識別子を含み、
    前記OS固有の機能仕様の前記複数のOS固有の機能は、前記第1のOSに対する複数のOS固有の機能の第1のグループと、前記第1のOSとは異なる前記コンピューティングデバイスの第2のOSに対する複数のOS固有の機能の第2のグループとを含み、
    複数のOS固有の機能の前記第1のグループは、前記OS固有の機能仕様において前記第1の識別子により識別され、
    複数のOS固有の機能の前記第2のグループは、前記OS固有の機能仕様において前記第1の識別子とは異なる第2の識別子により識別される、請求項10に記載の方法。
  17. 前記コンピューティングデバイスの前記ACPIサブシステムによりデバイスデータを前記ACPIサブシステムに関連付けられるACPIテーブルにロードする段階と、
    前記コンピューティングデバイスの前記OSによりACPIドライバを初期化して、前記仮想デバイスドライバを初期化する前に前記ACPIサブシステムとインターフェース接続する段階と、
    前記ACPIサブシステムにより前記ACPIテーブルから前記ACPIドライバへと前記デバイスデータを送信する段階と、
    前記ACPIドライバが前記デバイスデータを前記ACPIテーブルから受信したことに応答して、前記コンピューティングデバイスの前記OSにより前記仮想デバイスをエニュメレートする段階とを更に備え、
    前記デバイスデータは、前記ACPIサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記OS固有の機能仕様を示し、
    前記ACPIドライバは、前記仮想デバイスドライバとは異なる、請求項10に記載の方法。
  18. 前記デバイスデータを前記ACPIテーブルにロードする段階は、前記コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアから前記ACPIテーブルへとデバイスデータをロードする段階を有する、請求項17に記載の方法。
  19. 実行されることに応答してコンピューティングデバイスに請求項10〜18のいずれか1項に記載の方法を実行させる、格納された複数の命令を備える1または複数の機械可読媒体。
  20. 複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスであって、
    仮想デバイスおよび前記仮想デバイスに関連付けられる機能仕様を有するアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス(ACPI)サブシステムであって、前記機能仕様は、前記ACPIサブシステムにより実行される複数のオペレーティングシステム(OS)固有の機能を含み、前記複数のOS固有の機能の各々のOS固有の機能は、前記OS固有の機能をユニークに複数の他のOS固有の機能から識別する機能識別子に関連付けられるACPIサブシステムと、
    前記コンピューティングデバイスのOSにより初期化され、前記OSに固有であり、(i)前記ACPIサブシステムの前記仮想デバイスとインターフェース接続し、(ii)前記ACPIサブシステムにおいて前記機能仕様に対する呼び出しを送信するように構成された仮想デバイスドライバロジックであって、前記呼び出しは、前記OSに対応する前記機能仕様のOS固有の機能の複数の前記機能識別子のうちの1または複数を含む仮想デバイスドライバロジックとを備え、
    前記ACPIサブシステムは、(i)1または複数の前記機能識別子に基づいて前記機能仕様を分析して、前記複数のOS固有の機能のうちの前記1または複数のOS固有の機能を決定し、(ii)1または複数の前記機能識別子に基づいて決定された前記1または複数のOS固有の機能を実行する、コンピューティングデバイス。
  21. 前記仮想デバイスに関連付けられる前記機能仕様は、前記仮想デバイスに関連付けられるACPIデバイス固有の方法(DSM)を含む、請求項20に記載のコンピューティングデバイス。
  22. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)前記OSにOS固有の機能を公開すること、および(ii)前記OSにOS固有のオブジェクトを公開することのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項20に記載のコンピューティングデバイス。
  23. 前記複数のOS固有の機能のうちの少なくとも1つは、(i)OS固有の機能を前記OSに対して非表示にすること、および(ii)OS固有のオブジェクトを前記OSに対して非表示にすることのうちの少なくとも1つを行うように構成されたOS固有の機能を含む、請求項20に記載のコンピューティングデバイス。
  24. 前記コンピューティングデバイスの前記OSにより初期化され、前記仮想デバイスドライバロジックを初期化する前に前記ACPIサブシステムとインターフェース接続し、前記仮想デバイスドライバロジックとは異なるACPIドライバロジックを更に備え、
    前記ACPIサブシステムは、更に、(i)デバイスデータを前記ACPIサブシステムに関連付けられるACPIテーブルにロードし、(ii)前記デバイスデータを前記ACPIテーブルから前記ACPIドライバロジックへと送信し、
    前記デバイスデータは、前記ACPIサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記機能仕様を示し、
    前記ACPIドライバロジックにより前記ACPIテーブルから前記デバイスデータを受信したことに応答して、前記OSは、前記仮想デバイスをエニュメレートする、請求項20〜23のいずれか1項に記載のコンピューティングデバイス。
  25. 前記デバイスデータを前記ACPIテーブルにロードすることは、前記コンピューティングデバイスのACPIベーシック入出力システム(BIOS)ファームウェアから前記ACPIテーブルへとデバイスデータをロードすることを含む、請求項24に記載のコンピューティングデバイス。
JP2016549780A 2014-03-21 2015-03-04 プラットフォーム固有の機能の選択的有効化 Active JP6262870B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/221,983 2014-03-21
US14/221,983 US20150268970A1 (en) 2014-03-21 2014-03-21 Selectively enabling platform-specific features
PCT/US2015/018769 WO2015142521A1 (en) 2014-03-21 2015-03-04 Selectively enabling platform-specific features

Publications (2)

Publication Number Publication Date
JP2017508205A true JP2017508205A (ja) 2017-03-23
JP6262870B2 JP6262870B2 (ja) 2018-01-17

Family

ID=54142195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549780A Active JP6262870B2 (ja) 2014-03-21 2015-03-04 プラットフォーム固有の機能の選択的有効化

Country Status (6)

Country Link
US (1) US20150268970A1 (ja)
EP (1) EP3120241A4 (ja)
JP (1) JP6262870B2 (ja)
KR (1) KR101935290B1 (ja)
CN (1) CN105980981A (ja)
WO (1) WO2015142521A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7533142B2 (ja) 2020-11-12 2024-08-14 大日本印刷株式会社 電子情報記憶媒体、初期化シーケンス実行方法、及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282538B2 (en) * 2014-12-27 2019-05-07 Intel Corporation Technologies for providing hardware subscription models using pre-boot update mechanism
US10498822B2 (en) * 2015-01-30 2019-12-03 Pure Storage, Inc. Adaptive scanning rates
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US9842072B2 (en) 2015-03-27 2017-12-12 Toshiba Global Commerce Solutions Holdings Corporation Systems and methods for implementing a user mode virtual serial communications port emulator
EP3286632A4 (en) * 2016-02-12 2018-06-13 Hewlett-Packard Enterprise Development LP Creating operating system volumes
US10620963B2 (en) * 2017-07-19 2020-04-14 Vmware, Inc. Providing fallback drivers for IO devices in a computing system
US11010224B2 (en) * 2018-07-06 2021-05-18 Dell Products L.P. System and method of utilizing a watchdog timer
US11281472B2 (en) * 2020-02-03 2022-03-22 Dell Products L.P. System and method for securing compromised information handling systems
JP7444728B2 (ja) * 2020-08-11 2024-03-06 シャープ株式会社 電子機器、制御方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070953A (ja) * 2002-08-07 2004-03-04 Hewlett-Packard Development Co Lp 複数のオペレーティングシステムをサポートする方法
JP2009508183A (ja) * 2005-06-30 2009-02-26 インテル コーポレイション 仮想マシン・モニタと、acpi準拠ゲスト・オペレーティング・システムとの間の双方向通信のための方法、装置及びシステム
US20090165117A1 (en) * 2007-12-21 2009-06-25 Tasneem Brutch Methods And Apparatus Supporting Access To Physical And Virtual Trusted Platform Modules

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604904A (en) * 1994-09-26 1997-02-18 Intel Corporation Method and apparatus for accessing system management functions of a computer system
US20030225928A1 (en) * 2002-05-28 2003-12-04 Sun Microsystems, Inc. Method, system, and program for managing access to a device by device specific components and operating system specific components
US20040216140A1 (en) * 2002-10-31 2004-10-28 Hiltgen Daniel K. Method and system for accessing system operations through an interface layer
US8056084B2 (en) * 2007-01-25 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
CN101408792A (zh) * 2007-10-10 2009-04-15 英业达股份有限公司 电源管理装置与其管理方法
US8799691B2 (en) * 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
US7853817B2 (en) * 2009-02-26 2010-12-14 Apple Inc. Power management independent of CPU hardware support

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070953A (ja) * 2002-08-07 2004-03-04 Hewlett-Packard Development Co Lp 複数のオペレーティングシステムをサポートする方法
JP2009508183A (ja) * 2005-06-30 2009-02-26 インテル コーポレイション 仮想マシン・モニタと、acpi準拠ゲスト・オペレーティング・システムとの間の双方向通信のための方法、装置及びシステム
US20090165117A1 (en) * 2007-12-21 2009-06-25 Tasneem Brutch Methods And Apparatus Supporting Access To Physical And Virtual Trusted Platform Modules

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7533142B2 (ja) 2020-11-12 2024-08-14 大日本印刷株式会社 電子情報記憶媒体、初期化シーケンス実行方法、及びプログラム

Also Published As

Publication number Publication date
EP3120241A1 (en) 2017-01-25
CN105980981A (zh) 2016-09-28
WO2015142521A1 (en) 2015-09-24
JP6262870B2 (ja) 2018-01-17
KR20160108499A (ko) 2016-09-19
US20150268970A1 (en) 2015-09-24
KR101935290B1 (ko) 2019-01-04
EP3120241A4 (en) 2017-12-06

Similar Documents

Publication Publication Date Title
JP6262870B2 (ja) プラットフォーム固有の機能の選択的有効化
CN106445576B (zh) 主机板及其计算机实现方法及非暂态计算机可读储存装置
US20160364243A1 (en) Out-of-band (oob) real-time inventory and configuration of original equipment manufacturer (oem) devices using advanced configuration and power interface (acpi) and unified extensible firmware interface (uefi) services
US9135044B2 (en) Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
US10747526B2 (en) Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
US8904159B2 (en) Methods and systems for enabling control to a hypervisor in a cloud computing environment
US10860307B2 (en) Fragmented firmware storage system and method therefor
US9582393B2 (en) Method to facilitate rapid deployment and rapid redeployment of an information handling system
US10303487B2 (en) System and method for booting an information handling system
US10459742B2 (en) System and method for operating system initiated firmware update via UEFI applications
US10402204B1 (en) Multi-platform firmware support
US9519503B2 (en) Systems and methods for virtual machine attribution with fault resilient memory tag
US11392512B2 (en) USB method and apparatus in a virtualization environment with multi-VM
JP6859463B2 (ja) 仮想マシンを起動させるための方法、装置、デバイス及び媒体
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
US20150186317A1 (en) Method and apparatus for detecting the initiator/target orientation of a smart bridge
US12014161B2 (en) Deployment of management features using containerized service on management device and application thereof
US20240103900A1 (en) Isolated execution mechanism for cross-platform hardware management agent
AU2011305211B2 (en) Cluster computing - NIC based OS provision
CN118331687B (zh) 用户态半虚拟化数据路径加速方法、设备、集群以及介质
US10430201B1 (en) Multi-platform firmware support
US10048970B2 (en) Portable boot configuration solution for thin client device
CN114968571A (zh) 云计算中心服务的边缘化方法、电子设备
CN117393029A (zh) 一种raid卡测试方法和测试服务器
KR20190081285A (ko) 가상화 시스템에서 동적 패스쓰루 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170915

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171214

R150 Certificate of patent or registration of utility model

Ref document number: 6262870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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