JP2004070953A - 複数のオペレーティングシステムをサポートする方法 - Google Patents
複数のオペレーティングシステムをサポートする方法 Download PDFInfo
- Publication number
- JP2004070953A JP2004070953A JP2003281415A JP2003281415A JP2004070953A JP 2004070953 A JP2004070953 A JP 2004070953A JP 2003281415 A JP2003281415 A JP 2003281415A JP 2003281415 A JP2003281415 A JP 2003281415A JP 2004070953 A JP2004070953 A JP 2004070953A
- Authority
- JP
- Japan
- Prior art keywords
- acpi
- operating system
- interpreter
- operating
- identifier
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【課題】単一コンピュータシステム、またはプラットフォームにおいて、相互に排他的な要件を有する複数のオペレーティングシステムをサポートするシステムおよび方法を提供すること。
【解決手段】オペレーティングシステム(101)はACPI(105)変数を設定して、プラットフォーム(200)において実行されるオペレーティングシステム(101)を特定する。システムファームウェア(103)は、自動的にプラットフォーム上においてすべてのオペレーティングシステムを充足する機能の共通のセットを作り出す。ACPIインタプリタ(105)は、ブートアップ時の変数が特定するOS(101)を読み出し、それを、オペレーティングシステム(101)に依存する条件付きコード(107)において使用して、システムコンポーネントの動作を定義する。
【選択図】図1
【解決手段】オペレーティングシステム(101)はACPI(105)変数を設定して、プラットフォーム(200)において実行されるオペレーティングシステム(101)を特定する。システムファームウェア(103)は、自動的にプラットフォーム上においてすべてのオペレーティングシステムを充足する機能の共通のセットを作り出す。ACPIインタプリタ(105)は、ブートアップ時の変数が特定するOS(101)を読み出し、それを、オペレーティングシステム(101)に依存する条件付きコード(107)において使用して、システムコンポーネントの動作を定義する。
【選択図】図1
Description
ACPIをサポートする複数のオペレーティングシステムにおいてオペレーティングシステムが定義したフィールドを使用するシステムに関する。
ACPI(Advanced Configuration and Power Interface)は、ラップトップ、デスクトップ、サーバ等を含むコンピュータのオペレーティングシステムにハードウェア状態情報を提供する仕様である。ACPIについてのより多くの情報は、Compaq Computer 社、Intel社、Microsoft 社、Phoenix Technologies Ltd.、およびToshiba 社が共同で規定した500頁の「Advanced Configuration and Power Interface Specification」(Revision 2.0a、March 31,2002)に見られる。ACPI仕様は、装置とシステム全体の両方に対して堅牢な、オペレーティングシステム(OS)によるマザーボードデバイスの構成および電力の直接管理を可能にする業界標準インタフェースを確立するために策定されたものである。ACPIは、オペレーティングシステムによる構成および電力の直接管理(OSPM)における重要な要素である。
ACPIは、Microsoft(商標)社市販のWindows(商標)、様々なベンダーからオープンソースとして入手可能なLinux、Hewlett-Packard 社市販のHP−UX等の多種多様なオペレーティングシステムを実行させるパーソナルコンピュータ(PC)で使用される。またACPIは、ハードウェア資源を操作することもできる。たとえば、ACPIは、コンピュータシステムの周辺機器の電源をオンオフできるようにすることによって電力管理を支援し、電力管理を改善させる。ACPIはまた、外部装置によってコンピュータシステムをオンオフできるようにする。たとえば、マウスに触れる、またはキーを押下することにより、ACPIを使用するコンピュータシステムを起動させることができる。
従来のACPIは、様々な理由により扱いが難しい。第1に、ACPIは、コンピュータシステムプラットフォームにネイティブ(固有)のアセンブリ言語で書かれない。その代わりに、ACPIは、独自のソース言語および機械語であるACPIソース言語(ASL)およびACPI機械語(AML)をそれぞれ有する。用途が高度に特化されているため、ASLのプログラマは比較的少ない。さらに、ASLは、使用が限定されていることからコンストラクト(construct)が比較的少ない。その上、ACPIコードの設計は従来、モノリシックである。したがってこれにより、ACPIコードを他のプラットフォーム、さらには同じプラットフォームの異なる構成に移植することが困難になる。このため、新しく設計されたプラットフォームを扱うには、新しいASLコードを書く必要がある。ASLプログラマの数が限られていることから、コードを新たに書くと、問題およびコストが一層増してしまう。
ACPIは、静的テーブルおよび解釈可能テーブルの両方からなる。ブートアップ時に、システムファームウェア(通常BIOS、すなわち基本入出力システム)が静的テーブルを構築し、オペレーティングシステムがこの静的テーブルを使用する。解釈可能テーブルはAMLからなる。AMLはコンパイルされてから、システムファームウェアに併合される。オペレーティングシステムは、AMLを解釈可能テーブルから読み取り、ACPIインタプリタを使用して構築されたインタフェースを実行する。このようにして、オペレーティングシステムはハードウェア資源を操作する。解釈可能テーブルがシステムファームウェアに併合されるため、この従来の方法は柔軟性、および拡張性を欠き、相違するシステム構成に適合するように再プログラムするために相当の時間を要する。
たとえば、従来、ASL開発者は、特定の構成のプラットフォームまたはその差(variance)を指定するACPIコードを書く。不都合なことに、ハードウェア変更が少しでも行われる場合には、設計を変更する必要がある。このためには、新しいAMLコードを書き、新しいテーブルをシステムファームウェアに併合する必要がある。したがって、従来の設計には移植性がない、すなわち再利用することができない。
さらに、従来ACPIでは、プラットフォームの差がある場合、または相互に排他的なACPI要件を有する2つ以上のACPIアウェアOSシステムをサポートする場合、異なるシステムファームウェアROM(読み取り専用メモリ)またはBIOSを使用する必要があった。同じシステムが複数のオペレーティングシステムをサポートすべき場合、異なるシステムファームウェアROMを使用する必要もあった。たとえば、現行のパーソナルコンピュータの分野では、IA−32命令セットが使用されている。ACPIは、主として、Microsoft(商標)ファミリのオペレーティングシステム、特にIA−32命令セットを有するシステムによって用いられている。
ACPIは、様々なオペレーティングシステムに標準インタフェースとして受け入れられてきた。新しい命令セットアーキテクチャIA−64が開発されつつあるが、レガシーACPIコード、またはメソッドと一緒では、その利点を十分に利用することができない。Intel(商標)社から市販されている新しいItanium(商標)プロセッサファミリは、IA−64命令セットを使用している。現行の手法を利用すると、このファミリの新しいプロセッサ毎に、ASLを一意に書き換える必要があるだろう。さらに、所与のプロセッサに複数のオペレーティングシステムがある場合も同様に、ASLは各OS毎に一意である必要がある。
ACPI名前空間は、名前付きのオブジェクトを含むOS制御メモリ内の階層ツリー構造である。こうしたオブジェクトは、データオブジェクト、制御メソッドオブジェクト、バス/デバイスパッケージオブジェクト等であり得る。OSは、ACPI BIOSに存在するACPIテーブルから定義ブロックをロードかつ/またはアンロードすることにより、実行時に名前空間の内容を動的に変更する。ACPI名前空間中の情報はすべて、差分定義ブロックと、1つまたは複数の他の定義ブロックとを含む差分システム記述テーブル(DSDT)からの情報である。現行技術では、OEM(相手先商標による製品製造会社)は、ベースシステムについての実施情報および構成情報を提供するDSDTをACPI互換OSに供給しなければならない。OSは、常にシステムブート時にDSDT情報をACPI名前空間に挿入し、これを除去することは決してない。
別のACPIコンストラクトは、システム記述補助テーブル(SSDT)である。SSDTはDSDTの延長であり、複数のSSDTをプラットフォーム記述の一部として使用することができる。DSDTがACPI名前空間にロードされた後に、一意のOEMテーブルIDを有する各補助記述テーブルがロードされる。これによりOEMは、他のテーブルにわずかなシステム選択肢を付加しながら、あるテーブルに基本的なサポートを提供することができる。追加のテーブルが付加できるのはデータのみであり、前のテーブルからのデータを上書きすることはできない。
ACPI仕様は、オペレーティングシステムを特定するストリングに評価されるオブジェクトとしてオペレーティングシステム定義変数\_OSを定義する。堅牢なOSPM実施形態では、\_OSは各OSリリースを別様に評価する。これにより、AMLコードはOSPM実施形態の違いに適応することができる。この値は、AMLインタプリタが各種改訂されても変化しない。この変数は現在、すべてのオペレーティングシステムに実装されているわけではなく、使用される場合でも標準的な方法で使用されない。
異なるオペレーティングシステムと動作可能な従来技術による単一コンピュータシステムは、一意のBIOS、またはファームウェアを通常有し、ロードされたBIOSまたはファームウェアは、1つのオペレーティングシステムにのみ固有である。異なるOSをロードするには、ファームウェアをスワップアウトするか、またはプログラミングし直す必要がある。
本発明の目的は、単一コンピュータシステム、またはプラットフォームにおいて、相互に排他的な要件を有する複数のオペレーティングシステムをサポートするシステムおよび方法を提供することである。
オペレーティングシステムは、ACPI変数\_OSをセットして、プラットフォーム上で実行されているオペレーティングシステムを特定する。システムファームウェアが、プラットフォーム上で実行することのできるすべてのオペレーティングシステムを満足させる共通機能セットを自動的にロードする。ACPIインタプリタは、ブートアップ時に\_OS変数を読み出す。
2つ以上のオペレーティングシステムが存在する場合に適合するために、ACPI原始コードが書かれる。\_OS変数は、現在実行中のOS用にシステムをカスタマイズするかどうかの条件として用いられる。ACPIはやはりソース言語で書き、次いでACPI機械語にコンパイルする必要がある。オペレーティングシステムの特定情報を使用する追加ロジックが、ASLコードに埋め込まれる。
ACPIは、新しいIA−64命令セットに依然として用いられているIA−32命令セットの概念である。ACPIは、ハードウェア操作および構成データを抽出して、オペレーティングシステム(OS)とファームウェアとの対話のためにハードウェアの構成を定義する方法である。ACPIは業界標準の仕様である。現在、商業的な3つの主なパーソナルコンピュータ(PC)のオペレーティングシステム、すなわちLinux、HP/UX、およびWindows(商標)は、ACPIをIA−32空間で使用しており、ACPIを新しいIA−64空間で使用して実行することになる。システムがブートされると、ファームウェアに電源が投入され、システム構成を確認する。必要であればシステムが初期化され、次いで動作がOSに引き渡される、すなわちOSをブートアップする。システムは、ブートアップされるとき、相違するプラットフォーム構成についての知識を持っていなければならない。ACPIは、多様なプラットフォーム構成を定義するためのインタフェースオブジェクトおよび名前空間を有するハードウェア構成のための仕様である。
新しいプラットフォームに対するACPIコードの作成をより構造化するとともに、ACPIコードプラットフォームとオペレーティングシステムとを独立させることが望ましい。これは、ACPIコードにモジュール方式の設計を使用する構築化されたアプローチを用いて達成することができる。このACPI設計方法は現在使用されておらず、実際、開発者には不評である。
従来のACPI設計に伴う別の問題は、ACPI開発者がASLを使用して任意所与のプラットフォームまたはオペレーティングシステムバリアンスを完全に記述する必要があったことである。この設計では、ブートアップ中のハードウェアコンポーネントの欠損を含め、行われたハードウェア変更がごくわずかであった場合でも移植または再利用することができなかった。その上、同じシステムが複数のオペレーティングシステムをサポートする場合、所与のプラットフォームタイプのバリアンスは同じROMを採用することができなかった。
ACPI名前空間は、コンピュータシステムの階層を論理的な方法で記述する。たとえば、OSが名前空間を埋めると、下位にあるハードウェアがどのように見えるかついてのイメージが得られる。したがって、OSが所与のハードウェアコンポーネントに資源を獲得する必要がある場合、またはコンポーネントにどのようにアクセスするかを知る必要がある場合には、名前空間を見る。たとえば、OSがマシンを待機モードにする必要がある場合には、装置を待機モードにする方法を特定するオブジェクトがある。OSは、名前空間において定義されるインタフェースまたはオブジェクトを使用してハードウェアを操作する。これはACPIの機能である。
本システムおよび本方法の利点は、共通または一般的にプログラムされたファームウェアを使用して様々なオペレーティングシステムを実行させることができることである。現在のファームウェアの未だ満たされていない要望は、1つのOSを使用する1つのプラットフォームという一構成でしか使用できないことである。本システムおよび本方法では、システムファームウェアが3つの主なOSすべてと共に同時に動作することができる。したがって、OSが変更されるたびにファームウェアをアップグレード/変更する必要がない。このためには特に、どのOSがブート時にプラットフォームで実行されているかをOSが知る必要がある。
これより図面、特に図1を参照して、OS、ACPIインタプリタ、およびACPIテーブルの間の対話を示すブロック図を示す。システムの通常動作中、OS101はいくつかのハードウェア機能にアクセスするか、または動作させる必要がある。このためには、OSはハードウェアがどのように動作するかについての情報を持たなければならない。ブートアップすると、システムファームウェア103が上述したACPI名前空間を作成し、ACPIテーブル109にシステムコンポーネント情報を入れる。OS101は、ハードウェアにアクセスするかまたはハードウェアに動作させようとするとき、ACPIインタプリタ105を通してACPI AMLコード107を実行してシステム情報を検索する。従来技術によるシステムでは、AMLは特定のオペレーティングシステムにハードコードされる。
ACPIテーブルは、静的テーブルおよび動的テーブルの両方からなる。動的テーブルは、たとえばホットプラグ可能な装置に対応する。システムファームウェア103がブートアップされると、対応するAML107を実行する。システムファームウェア103は、構築された静的テーブル109もセットアップする。テーブルは構造化されており、ファームウェアはメモリにこれらテーブルを作成し、メモリに残す(ACPIテーブル109)。OSは、制御権を有するときには、ACPIテーブル109の発見方法、検索方法、および使用方法を自動的に知る。これらACPIテーブル109は本質的に静的なものである。所与のブートについて、静的ACPIテーブル109は変更されることなくそのままである。
ファームウェア103はまた、ACPI AML107の動的な部分もセットアップする。OS101が起動するとき、OS101はACPIインタプリタ105を起動する。インタプリタ105はAML107を消費する。このAML107は、一部は上述したように静的であり、一部は本質的に動的なものである。ホットプラグ可能なカードをシステムに追加する場合がある。ホットプラグ可能な装置には、標準オブジェクト、たとえば_EJ0(デバイス取り外しオブジェクト、たとえば、イジェクトオブジェクト)および_Lxx(制御メソッド、たとえば、挿入オブジェクト)が関連付けられている。ホットプラグ可能なカードが追加されると、そのカードを取り扱う方法についての命令が生成される。そのホットプラグイベントのためにAMLバイトコードが書かれて実行される。イベントが処理され、次いで状態がOSに返される。このようにすれば、OSは特定のシステムのホットプラグ動作をどのように行うべきかについて知る必要がない。ファームウェア設計者は、ホットプラグ定義をASLで書き、そのコードがコンパイルされてAML107の一部になる。OSが実行され、たとえば、ホットプラグ可能なデバイスをイジェクトする必要があるかどうかを判定する。OSは、命令をACPIインタプリタ105に送り、次いでハードウェアを操作する。この例では、デバイスがイジェクトされ、OSは動作から状態が返ってくるのを待つ。
ACPIテーブルは、ロードされたシステムコンポーネントの名前空間を定義する。これより図2を参照して、OSがACPIインタプリタを介してハードウェアと対話することができるように名前空間を定義する必要がある例示的なシステム200を示す。システムは、システムバスアダプタSBA0 203に接続されたCPU201を有する。システムバスアダプタ203は、3つのローカルバスアダプタLBA1 205、LBA2 207、およびLBA2 209に接続されている。LBA1 205はPCIスロットPCI1 211を有する。LBA3 209はPCIスロットPCI5 213を有する。オペレーティングシステムが適宜機能するためには、ACPIインタプリタがOSとハードウェアとの間にインタフェースを提供するように、これらシステムコンポーネントがACPI名前空間で記述されなければならない。
これより図3を参照して、図2における例示的なシステムに対応する簡単にした例示的なACPI名前空間定義を示す。CPU301のシステムバス_SBは、子システムバスアダプタ_SBA0 303を有する。システムバスアダプタ_SBA0 303は、子である_CRS(現在の資源設定)305と、3つのローカルバスアダプタ_LBA1 307、_LBA2 309、および_LBA3 311とを有する。ローカルバスアダプタ_LBA1 307は子PCIスロットPCI1 313を有し、ローカルバスアダプタ_LBA3 311は子PCIスロットPCI5 315を有する。ローカルバスアダプタ_LBA1 307、_LBA2 309、および_LBA3 311にはそれぞれ_CRS(現在の資源状態)317、319、および321として他の子も関連付けられる。PCIスロットは、_CRS323および325も有する。_PCI1は状態_STA327もさらに有する。
ACPI仕様は、プラットフォーム上で実行されているオペレーティングシステムを特定する\_OS変数も定義する。システムファームウェアは、プラットフォーム上で実行可能なすべてのオペレーティングシステムを満足させる共通機能セットを使用して自動的にブートアップする。ACPIインタプリタは、ブートアップ時に\_OS変数を読み取る。この変数は、IA−32命令セットにも定義されていたが、すべてのオペレーティングシステムに幅広く使用されているわけではなかった。現在このフィールドを規則正しく埋めるオペレーティングシステムは、Windows(商標)のみである。
本方法では、ACPI原始コードは、2つ以上のオペレーティングシステムが存在する場合に対処するように書かれる。\_OS変数は、現在実行中のOS用にシステムをカスタマイズする条件として使用される。ACPIは依然としてソース言語で書き、次いでACPI機械語にコンパイルする必要がある。しかし今回、現在ではWindows(商標)にのみ使用されている、オペレーティングシステムについての情報を使用する追加ロジックがコードに埋め込まれる。
たとえば、イジェクト動作の完了にかかる最長許容時間はOSに応じて変化する。イジェクト動作の完了にWindows(商標)では3秒許され、Linuxでは10秒許され、HP−UXでは15秒許されるものと仮定する。ファームウェアが現在実行中のOSを考慮せずにデフォルトである5秒を採用すると、Linuxが実行中の場合イジェクトに10秒かかり、システムは失敗するか、または少なくともエラー状態になる。本方法では、\_OS変数を使用することにより、システムが様々なオペレーティングシステムに対応することが可能である。
ASLは、\_OS変数をテストするように設計される。\_OS変数がどのように使用されるかについての単純な例を、プログラム設計言語(PDL)で以下に示す。
IF ((\_OS==WINDOWS AND EJECT_TIME <=3Sec) OR
(\_OS==LINUX AND EJECT_TIME <=10Sec) OR
(\_OS==HP-UX AND EJECT_TIME <=15Sec)) THEN
STATUS=SUCCESS
ELSE
STATUS=FAIL
ENDIF
イジェクト時間がOS定義のしきい値以下、すなわち3秒以下、10秒以下、または15秒以下の場合には、成功状態がOSに返される。イジェクト時間が許容されるしきい値よりも長い場合、失敗状態が返される。ASLプログラマは、オペレーティングシステムの種類に基づいた条件を現在使用しておらず、ASLを特定のオペレーティングシステムにハードコードしている。
(\_OS==LINUX AND EJECT_TIME <=10Sec) OR
(\_OS==HP-UX AND EJECT_TIME <=15Sec)) THEN
STATUS=SUCCESS
ELSE
STATUS=FAIL
ENDIF
イジェクト時間がOS定義のしきい値以下、すなわち3秒以下、10秒以下、または15秒以下の場合には、成功状態がOSに返される。イジェクト時間が許容されるしきい値よりも長い場合、失敗状態が返される。ASLプログラマは、オペレーティングシステムの種類に基づいた条件を現在使用しておらず、ASLを特定のオペレーティングシステムにハードコードしている。
本方法は、OSが\_OS変数を埋める場合に最適なモードで機能する。しかし、OSが\_OS変数を埋めていない場合、または\_OS変数の値が未知の場合、デフォルトモードをコード化することができる。たとえば、上記PDLはここでは以下のようにコード化される。
IF ((\_OS==WINDOWS AND EJECT_TIME <=3Sec) OR
(\_OS==LINUX AND EJECT_TIME <=10Sec) OR
(\_OS==HP-UX AND EJECT_TIME <=15Sec) OR
(\_OS==undefined AND EJECT_TIME <=10 Sec)) THEN
STATUS=SUCCESS
ELSE
STATUS=FAIL
ENDIF
この方法では、ASLをコード化し直す必要なく、任意の数のオペレーティングシステムを1つのプラットフォームで実行させることができる。資源を隠す能力を強調する別の例は以下である。Windows(商標)は250本を越えるPCIバスをコンピュータシステムにおいて処理することができず、一方Linuxは任意の量をサポートすることができるものと仮定する。ACPIインタプリタが名前空間をロードアップすると、名前空間には300本のPCIバスが記述されている。AMLは、実行中のOSがWindows(商標)であることを発見する。300本はOSが処理可能な本数を越えているため、越えた分の50本のPCIバスが名前空間からアンロードされ、Windows(商標)システムのブートが可能になる。
(\_OS==LINUX AND EJECT_TIME <=10Sec) OR
(\_OS==HP-UX AND EJECT_TIME <=15Sec) OR
(\_OS==undefined AND EJECT_TIME <=10 Sec)) THEN
STATUS=SUCCESS
ELSE
STATUS=FAIL
ENDIF
この方法では、ASLをコード化し直す必要なく、任意の数のオペレーティングシステムを1つのプラットフォームで実行させることができる。資源を隠す能力を強調する別の例は以下である。Windows(商標)は250本を越えるPCIバスをコンピュータシステムにおいて処理することができず、一方Linuxは任意の量をサポートすることができるものと仮定する。ACPIインタプリタが名前空間をロードアップすると、名前空間には300本のPCIバスが記述されている。AMLは、実行中のOSがWindows(商標)であることを発見する。300本はOSが処理可能な本数を越えているため、越えた分の50本のPCIバスが名前空間からアンロードされ、Windows(商標)システムのブートが可能になる。
ACPIコード解釈時に既存の変数を埋めて条件として使用する新規の方法の好適な実施形態について述べたが(限定ではなく例示を意図する)、当業者は上記教示を鑑みて変更および変形を行うことができることに留意する。したがって、併記特許請求項によって規定される本発明の範囲および精神内にある、開示された本発明の特定の実施形態に変更を行ってよいことは認められよう。
Claims (10)
- コンピュータシステム上で実行されるオペレーティングシステムが定義したフィールドを使用して、相互に排他的な要件を有する複数のオペレーティングシステムをサポートする方法であって、
システムブートアップ中にアクセスすることが可能なオペレーティングシステム識別子を格納するステップと、
システムブートアップ中に使用される条件付きコードを提供するステップであって、前記条件付きコードは、システムコンポーネント定義インタプリタによって解釈されるとともに、前記オペレーティングシステム識別子で条件付けられ、システムコンポーネント定義は前記オペレーティングシステム識別子によって定義される、条件付きコードを提供するステップと、
を含む方法。 - 前記オペレーティングシステム識別子がシステムブートアップ後に未定義のとき、インスタンスを収容するために前記オペレーティングシステム識別子にデフォルト値を提供するステップをさらに含む請求項1記載の方法。
- 前記システムコンポーネント定義インタプリタはACPIインタプリタであり、該ACPIインタプリタはACPI機械語を解釈し、前記オペレーティングシステム識別子はACPI定義変数である\_OSである請求項1記載の方法。
- オペレーティングシステムをコンピュータシステム上で実行することをさらに含み、前記オペレーティングシステムがシステムコンポーネントを利用するとき、前記システムコンポーネント定義インタプリタと対話する請求項1記載の方法。
- システムブートアップ中に名前空間を埋めるステップをさらに含み、前記名前空間は前記コンピュータシステムに存在するシステムコンポーネントを定義し、前記オペレーティングシステムおよび前記システムコンポーネント定義インタプリタは前記名前空間にアクセス可能である請求項4記載の方法。
- IA−64命令ファームウェアを有する複数オペレーティングシステムのコンピュータシステムであって、
中央演算処理装置と、
該中央演算処理装置を少なくとも1つのシステムコンポーネントに接続するメモリバスと、
前記中央演算処理装置に接続され、前記コンピュータシステムをブートアップするシステムファームウェアであって、該システムファームウェアは、前記少なくとも1つのシステムコンポーネントを定義する共通名前空間を埋め、該共通名前空間はオペレーティングシステム識別子をさらに含むシステムファームウェアと、
前記オペレーティングシステムを前記システムコンポーネントに橋渡しするインタプリタインタフェースであって、前記共通名前空間および前記オペレーティングシステム識別子にアクセスするインタプリタインタフェースと、
システムコンポーネントの対話が必要な際に前記インタプリタインタフェースを使用する現オペレーティングシステムであって、前記インタプリタインタフェースの動作は前記オペレーティングシステム識別子で条件付けられる、現オペレーティングシステムと、
を備えるシステム。 - システムブートアップ後に未定義のとき、前記オペレーティングシステム識別子は予め定義されたタイプにセットされる請求項6記載のシステム。
- 前記インタプリタインタフェースはACPIインタプリタであって、前記ACPIインタプリタはACPI機械語を解釈し、前記オペレーティングシステム識別子はACPI定義変数である\_OSであり、前記共通名前空間はACPIテーブルを定義する請求項6記載のシステム。
- 前記現オペレーティングシステムは、Windows、Linux、およびHP−UXからなるオペレーティングシステム群から選択される請求項8記載のシステム。
- 前記コンピュータシステムはIA−64命令セットを使用する請求項6記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/212,718 US6986032B2 (en) | 2002-08-07 | 2002-08-07 | System and method for using an operating system defined field in ACPI support multiple operating systems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004070953A true JP2004070953A (ja) | 2004-03-04 |
Family
ID=27788753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003281415A Withdrawn JP2004070953A (ja) | 2002-08-07 | 2003-07-29 | 複数のオペレーティングシステムをサポートする方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6986032B2 (ja) |
JP (1) | JP2004070953A (ja) |
GB (1) | GB2393538B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011180885A (ja) * | 2010-03-02 | 2011-09-15 | Nec Corp | コンピュータシステム及びそのhw抽象化方法 |
JP2017508205A (ja) * | 2014-03-21 | 2017-03-23 | インテル・コーポレーション | プラットフォーム固有の機能の選択的有効化 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188339B2 (en) * | 2003-10-24 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | ACPI preprocessor |
US7434201B2 (en) * | 2004-06-21 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus providing for extendable interaction between firmware and operating systems on digital devices |
US7694125B2 (en) * | 2006-12-01 | 2010-04-06 | Dell Products, Lp | System and method of booting an operating system in an optimal performance state |
US7689566B1 (en) * | 2006-12-12 | 2010-03-30 | Sun Microsystems, Inc. | Method for defining non-native operating environments |
JP4940967B2 (ja) * | 2007-01-30 | 2012-05-30 | 富士通株式会社 | ストレージシステム、ストレージ装置、ファームウェアの活性交換方法、ファームウェアの活性交換プログラム |
US8286195B2 (en) * | 2007-10-31 | 2012-10-09 | Microsoft Corporation | Controlling hardware across two or more simultaneously running operating systems |
US9582393B2 (en) * | 2014-06-20 | 2017-02-28 | Dell Products, Lp | Method to facilitate rapid deployment and rapid redeployment of an information handling system |
CN104679218A (zh) * | 2015-02-13 | 2015-06-03 | 小米科技有限责任公司 | 控制功耗的方法和装置 |
EP3286632A4 (en) * | 2016-02-12 | 2018-06-13 | Hewlett-Packard Enterprise Development LP | Creating operating system volumes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US59473A (en) * | 1866-11-06 | Improved apparatus for carbureting air | ||
US6178503B1 (en) * | 1998-09-11 | 2001-01-23 | Powerquest Corporation | Managing multiple operating systems on a single computer |
US6081890A (en) * | 1998-11-30 | 2000-06-27 | Intel Corporation | Method of communication between firmware written for different instruction set architectures |
US6269480B1 (en) * | 1999-03-29 | 2001-07-31 | International Business Machines Corporation | Cross platform installer-with the ability to create platform independent variables of specific operating system variables from a scripting language |
US6687819B1 (en) * | 2000-03-23 | 2004-02-03 | International Business Machines Corporation | System, apparatus and method for supporting multiple file systems in boot code |
US6907474B2 (en) * | 2000-09-15 | 2005-06-14 | Microsoft Corporation | System and method for adding hardware registers to a power management and configuration system |
-
2002
- 2002-08-07 US US10/212,718 patent/US6986032B2/en not_active Expired - Lifetime
-
2003
- 2003-07-22 GB GB0317125A patent/GB2393538B/en not_active Expired - Lifetime
- 2003-07-29 JP JP2003281415A patent/JP2004070953A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011180885A (ja) * | 2010-03-02 | 2011-09-15 | Nec Corp | コンピュータシステム及びそのhw抽象化方法 |
US8555046B2 (en) | 2010-03-02 | 2013-10-08 | Nec Corporation | Computer system and its HW abstraction method |
JP2017508205A (ja) * | 2014-03-21 | 2017-03-23 | インテル・コーポレーション | プラットフォーム固有の機能の選択的有効化 |
Also Published As
Publication number | Publication date |
---|---|
GB2393538A (en) | 2004-03-31 |
US6986032B2 (en) | 2006-01-10 |
GB0317125D0 (en) | 2003-08-27 |
GB2393538B (en) | 2005-08-31 |
US20040030874A1 (en) | 2004-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7328279B2 (en) | System and method for adding hardware registers to a power management and configuration system | |
US7430662B2 (en) | Techniques for initializing a device on an expansion card | |
US7134007B2 (en) | Method for sharing firmware across heterogeneous processor architectures | |
US7284083B2 (en) | Dynamically configuring resources for cycle translation in a computer system | |
US7953996B2 (en) | ACPI to firmware interface | |
US20040230963A1 (en) | Method for updating firmware in an operating system agnostic manner | |
US20020023179A1 (en) | Method and apparatus for providing support for dynamic resource assignment and configuation of peripheral devices when enabling or disabling plug-and-play aware operating systems | |
EP1983431A2 (en) | Method and apparatus for quickly changing the power state of a data processing system | |
US6990576B2 (en) | System and method for using a firmware interface table to dynamically load an ACPI SSDT | |
US6986014B2 (en) | System and method for using a vendor-long descriptor in ACPI for the chipset registers | |
KR100764921B1 (ko) | 장치 이뉴머레이션을 위한 가상 rom | |
US9811347B2 (en) | Managing dependencies for human interface infrastructure (HII) devices | |
US20080072028A1 (en) | Method of restarting a computer platform | |
US8539214B1 (en) | Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware | |
EP2951705A1 (en) | Assigning processors to memory mapped configuration | |
US7017034B2 (en) | System and method for using a firmware interface table to dynamically load multiple ACPI SSDT tables | |
US7600111B2 (en) | Method of restarting a computer platform | |
JP2004070953A (ja) | 複数のオペレーティングシステムをサポートする方法 | |
US7484083B1 (en) | Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment | |
US7103767B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
Banik et al. | System Firmware Architecture | |
US7240187B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
Apple Computer, Inc. et al. | PowerPC Microprocessor Common Hardware Reference Platform: A System Architecture | |
Skalsky et al. | UEFI AND THE OEM AND IHV COMMUNITY. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060725 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080408 |