專利名稱:可用于訪問bios的多個接口文件的制作方法
可用于訪問BIOS的多個接口文件
背景技術(shù):
計算機系統(tǒng)包括基本輸入/輸出系統(tǒng)(BIOS),其提供對諸如鍵盤、盤驅(qū)動器等的低級硬件設(shè)備的訪問。在一些系統(tǒng)中,諸如視窗管理規(guī)范(WMI)的接口向操作系統(tǒng)提供對 BIOS的訪問。諸如托管對象格式(MOF)文件的接口文件也被提供來提供通過操作系統(tǒng)對 BIOS的訪問。MOF文件描述了操作系統(tǒng)及運行于其上的任何應(yīng)用程序可用的類和方法。WMI 接口定義了針對BIOS的接口,并且MOF文件定義了 BIOS支持的數(shù)據(jù)結(jié)構(gòu)和方法。
為了詳細描述本發(fā)明的說明性實施例,現(xiàn)在將參照附圖,其中圖1示出了根據(jù)各種實施例的系統(tǒng);圖2示出了根據(jù)各種實施例的方法;圖3示出了根據(jù)另一實施例的系統(tǒng);以及圖4示出了根據(jù)另一實施例的方法。
具體實施例方式計算機系統(tǒng)的不同配置具有不同的低級功能性。例如,一種計算機系統(tǒng)可以具有溫度傳感器,而另一種計算機系統(tǒng)卻沒有。前一種計算機系統(tǒng)中的BIOS將提供對訪問溫度傳感器的支持。后一種計算機系統(tǒng)(無溫度傳感器)中的BIOS將無需提供這種支持。MOF文件通常在其安裝到計算機系統(tǒng)中之前并因此在計算機從其組成部分被組裝之前被編譯。計算機通常沒有能力編輯其MOF文件或者用新MOF文件替換其MOF文件。因為 MOF文件是靜態(tài)的,并且因為總體地使各種計算機系統(tǒng)配置在計算機市場中是可獲得的,所以至少在一些實例中,可以支持任何計算機系統(tǒng)配置的MOF文件被包括在每個計算機系統(tǒng)中。這種MOF文件可以提供對設(shè)備(例如溫度傳感器)或其他類型的配置部件(例如安全證書)的支持,而所述設(shè)備或配置部件在其中使用該MOF文件的特定系統(tǒng)中可能并不存在。根據(jù)各種實施例,多個接口(MOF)文件被提供在諸如計算機的電子系統(tǒng)的非易失性存儲設(shè)備中。諸如系統(tǒng)BIOS的邏輯被處理器執(zhí)行來確定系統(tǒng)配置并從多個可能的接口文件中選擇適當?shù)慕涌谖募?,并且使用所選定的接口文件來允許操作系統(tǒng)或在操作系統(tǒng)下運行的應(yīng)用程序訪問BIOS。在其他實施例中,提供未編譯的接口文件,其中基于系統(tǒng)配置根據(jù)所述未編譯的接口文件生成合適的編譯后的接口文件。圖1示出了根據(jù)各種實施例的系統(tǒng)10。圖1中示出的系統(tǒng)是計算機的系統(tǒng),但是也可以表示其他實施例中的其他類型的系統(tǒng)。如所示出的,系統(tǒng)10包括耦合到三個存儲設(shè)備14、16和18的處理器12。存儲設(shè)備14包括諸如隨機存取存儲器的易失性存儲設(shè)備,并且被稱為“存儲器”。存儲設(shè)備16包括諸如硬盤驅(qū)動器(HDD) 16的非易失性存儲設(shè)備,并被稱為“HDD”。存儲設(shè)備18還包括諸如任何形式的只讀存儲器(ROM)的非易失性存儲設(shè)備,并被稱為“ROM”。ROM 18可以包括不可編程ROM、可編程ROM(PROM)、電可擦除I3ROM(EEI3ROM) 等。ROM 18存儲系統(tǒng)的基本輸入/輸出系統(tǒng)(BIOS) 24,并且也可以被稱為“系統(tǒng)ROM”。存儲設(shè)備14-18的任何一個或組合在本文中可以稱為計算機可讀存儲介質(zhì)。BIOS M包括由處理器12在系統(tǒng)初始化期間執(zhí)行來進行上電自檢(POST)的代碼。BIOS M還包括提供對各種硬件設(shè)備的訪問的代碼,其中所述硬件設(shè)備例如包括鍵盤、 鼠標、溫度傳感器、盤驅(qū)動器等。在系統(tǒng)10啟動期間或之后,根據(jù)至少一些實施例的BIOS M被拷貝到存儲器14,并且之后從存儲器14被執(zhí)行。BIOS對在存儲器14中的拷貝在圖 1中被表示為BIOS 24a0各種存儲設(shè)備14-18通過一個或多個總線和/或中間邏輯(例如,橋設(shè)備)耦合到處理器。盡管在圖1中示出了系統(tǒng)10的一種說明性的架構(gòu),但是在其他實施例中,可以使用不同的架構(gòu)。仍然參照圖1,HDD 16存儲操作系統(tǒng)(0S)30和管理接口 32。OS 30和管理接口 32包括可由處理器12執(zhí)行的代碼。OS 30提供一個或多個應(yīng)用程序可以在其上執(zhí)行的平臺。管理接口 32提供可由OS 30用來訪問BIOS M的接口(本文對BIOS M的引用也包括對BIOS 2 的引用)。根據(jù)至少一個實施例,OS 30包括WINDOWS 或者 WINDOWS VISTA 操作系統(tǒng),管理接口包括視窗管理規(guī)范(WMI),這二者均來自微軟公司。 在系統(tǒng)10啟動時,OS 30和管理接口 32被拷貝到存儲器14,并且在圖1中被示出為OS 30a 和管理接口 32a。本文對OS 32的引用包括對OS在存儲器14中的拷貝(OS 30a)的引用。 類似的,本文對管理32的引用包括對管理接口在存儲器14中的拷貝(管理接口 32a)的引用。在圖1的實施例中,系統(tǒng)ROM 18還存儲多個接口文件觀。在其他實施例中,接口文件觀被存儲在系統(tǒng)ROM 18之外的其他位置。每個接口文件觀描述了 OS 32及在其上運行的任何應(yīng)用程序可用的類和方法。根據(jù)至少一個實施例,每個接口文件觀是管理對象格式(MOF)文件。根據(jù)各種實施例,在系統(tǒng)初始化或啟動期間,系統(tǒng)10的處理器12確定系統(tǒng)的配置,并選擇適合于特定配置的接口文件觀。所選定的接口文件觀被選擇來在系統(tǒng)10 的運行時期間(在操作系統(tǒng)已經(jīng)加載之后)使用,并且被拷貝到存儲設(shè)備14以供后續(xù)從存儲設(shè)備14使用。接口文件在存儲設(shè)備14中的拷貝在圖1中被表示為接口文件^a。根據(jù)至少一些實施例,所選定的接口文件28的使用可以如下0S 32或在OS 32下運行的應(yīng)用程序可以為了數(shù)據(jù)向管理接口 32發(fā)起對數(shù)據(jù)的請求或者對特定方法的調(diào)用。管理接口 32 生成系統(tǒng)管理中斷(SMI),該系統(tǒng)管理中斷繼而被BIOS M處理。BIOS M獲取所請求的數(shù)據(jù)或者執(zhí)行所調(diào)用的方法,并將所獲取的數(shù)據(jù)或執(zhí)行所調(diào)用的方法而產(chǎn)生的狀態(tài)提供給早先發(fā)起對BIOS的訪問的邏輯(0S 32或應(yīng)用程序)。在圖1的示例中示出的接口文件洲是預(yù)編譯的文件。即,存儲在系統(tǒng)ROM 18上的接口文件觀在被加載到系統(tǒng)ROM 18上之前被編譯。在該實施例中,一旦接口文件觀被選擇,則該文件隨后可以被執(zhí)行而無須編譯該文件,因為該文件已經(jīng)被編譯。處理器12可以根據(jù)各種技術(shù)中的任何一種來確定系統(tǒng)10的配置。例如,一個或多個非易失性存儲設(shè)備40 (例如,互補金屬氧化物半導體(CM0Q存儲設(shè)備)可以存儲一些或所有與系統(tǒng)10相關(guān)聯(lián)的配置信息,或者至少存儲對于接口文件觀的選擇而言充分的足夠配置。例如,這種配置信息可以包括硬件設(shè)備和在系統(tǒng)10中執(zhí)行的操作系統(tǒng)的存在性, 其中所述硬件設(shè)備諸如有箱鎖(case lock)和/或溫度傳感器、經(jīng)驗證的安全證書。根據(jù)另一實施例,系統(tǒng)10的配置可以通過如下方式來確定針對每個配置部件(如果存在,則或者針對相關(guān)聯(lián)的邏輯),BI0S 24對所有可能的配置部件發(fā)出調(diào)用,從而用指示該部件是否存在的信息來應(yīng)答所述調(diào)用。如果部件存在,則該部件將應(yīng)答調(diào)用;如果部件不存在,則將不發(fā)出應(yīng)答。例如,BIOS M可以對能夠想象得到存在于系統(tǒng)中的所有硬件設(shè)備發(fā)出調(diào)用,以判定每個這樣的設(shè)備是存在還是不存在。此外,BIOS M可以發(fā)出調(diào)用, 以檢測諸如安全證書的非硬件配置部件是存在還是不存在。通過使用任何機制或過程來確定系統(tǒng)10的配置,在該特定配置下最適合在該系統(tǒng)中使用的接口文件觀被選擇以供使用。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)四(例如,查找表) 可以存儲在系統(tǒng)ROM 18中。這種數(shù)據(jù)結(jié)構(gòu)四可以提供各種配置和接口文件觀之間的映射。因此,在確定系統(tǒng)10的配置時,訪問數(shù)據(jù)結(jié)構(gòu)四以查找對應(yīng)的接口文件。在其他實施例中,針對給定配置選擇正確接口文件觀的邏輯可以被硬編碼到諸如BIOS 24的代碼中。在一些實施例中,系統(tǒng)ROM 18還存儲高級配置與電源接口(ACPI)區(qū)分系統(tǒng)描述表26。在一些實施例中,通過在ACPI表沈中嵌入包含所選定的MOF文件的輔助系統(tǒng)描述表來選擇接口文件觀以供使用。所選定的接口文件觀在運行時期間(S卩,在OS 30開始執(zhí)行之后)用來使OS 30 能夠訪問BIOS 24。例如,接口文件28允許用戶通過與OS的交互來執(zhí)行各種動作,例如改變BIOS配置選項、查看溫度傳感器數(shù)據(jù)、執(zhí)行安全操作等等。圖2示出了在系統(tǒng)10上實現(xiàn)的方法100。根據(jù)至少一些實施例,在圖2中描繪的每個動作由處理器12執(zhí)行。在102,處理器12確定系統(tǒng)10的配置。在104,處理器12基于系統(tǒng)的配置來選擇多個接口文件中的一個。在106,處理器12獲取并使用所選定的接口文件來使OS 30能夠在運行時期間訪問BIOS 24。如上文所提及的,在圖1中示出的接口文件可以在被加載到系統(tǒng)R0M18之前已經(jīng)被編譯。在其他實施例中,接口文件觀可以不被預(yù)編譯,而可以是在被使用之前需要由系統(tǒng)10進行編譯的純文本文件。在一些實施例中,系統(tǒng)ROM 18僅存儲單個未編譯的接口文件。圖3示出了其中在系統(tǒng)R0M51上存儲未編譯的接口文件38的系統(tǒng)130的實施例。在該實施例中,如所示出的,系統(tǒng)ROM 51包括BIOS對40 1表沈、數(shù)據(jù)結(jié)構(gòu)46和編譯器50。圖4示出了與未編譯的接口文件28 一起使用的方法150。根據(jù)至少一些實施例, 圖4中的方法150(還參照圖3來討論)由處理器12來執(zhí)行。在152,如之前所解釋那樣確定系統(tǒng)130的配置。在154,對于這樣確定的配置的每個配置部件,該方法包括選擇未編譯的接口文件38的子集,并將所選定的子集存儲到目標接口文件42,其中所述目標接口文件 42在存儲器14中創(chuàng)建并且在系統(tǒng)配置期間或者在運行時期間被動態(tài)組裝。在154,特定配置部件可以被映射到接口文件38的文本的選擇。例如,在152,可以確定溫度傳感器存在于系統(tǒng)130中。如果溫度傳感器存在,則其可以被映射到與訪問和使用該溫度傳感器有關(guān)的未編譯接口文件38的選擇。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)(D. S.) 46被提供在例如系統(tǒng)ROM 51上。這種數(shù)據(jù)結(jié)構(gòu)46將配置部件映射到接口文件38的對應(yīng)部分。在存儲器14中根據(jù)未編譯的接口文件38創(chuàng)建目標接口文件42后,目標接口文件 42被編譯(156)以產(chǎn)生編譯后的目標接口文件44。諸如MOF編譯器的編譯器可以在系統(tǒng) ROM 18上被提供來用于該目的。在158,如之前所解釋的那樣使用動態(tài)編譯后的接口文件 44。以上討論意在說明本發(fā)明的原理和各種實施例。在完整理解了以上公開后,許多變型和修改對于本領(lǐng)域技術(shù)人員而言將變得顯而易見。所附權(quán)利要求旨在被解釋為涵蓋所有此類變型和修改。
權(quán)利要求
1.一種系統(tǒng),包括 處理器(12);第一存儲設(shè)備(18),耦合到所述處理器,所述第一存儲設(shè)備包括能由所述處理器執(zhí)行的基本輸入/輸出系統(tǒng)(BIOS) (24);以及第二存儲設(shè)備(16),耦合到所述處理器,所述第二存儲設(shè)備包括能由操作系統(tǒng)用來訪問所述BIOS的管理接口 ;多個接口文件( ),每個接口文件能由所述管理接口用來訪問所述BIOS,并且每個接口文件定義由所述管理接口使用的一種或多種方法;其中,在執(zhí)行所述BIOS時,所述處理器確定所述系統(tǒng)的配置,并且基于所確定的配置來選擇在運行時期間使用的特定接口文件。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一存儲設(shè)備包括所述多個接口文件。
3.根據(jù)以上任一權(quán)利要求所述的系統(tǒng),其中,所述多個接口文件包括托管對象格式 (MOF)文件。
4.根據(jù)以上任一權(quán)利要求所述的系統(tǒng),其中,所述多個接口文件中的每一個在存儲到所述系統(tǒng)上之前被編譯。
5.根據(jù)以上任一權(quán)利要求所述的系統(tǒng),其中,所述BIOS通過訪問來自第三存儲設(shè)備的值來確定所述配置。
6.根據(jù)以上任一權(quán)利要求所述的系統(tǒng),其中,所述第一存儲設(shè)備是只讀存儲器,并且所述多個接口文件與所述BIOS —起被包括在所述只讀存儲器上。
7.一種方法,包括通過處理器確定(10 系統(tǒng)的配置;通過所述處理器基于所述配置來選擇(104)存儲在所述系統(tǒng)上的多個接口文件中的一個接口文件;以及通過所述處理器經(jīng)由執(zhí)行操作系統(tǒng)來基于所選定的接口文件的內(nèi)容訪問(106)基本輸入/輸出系統(tǒng)(BIOS)。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述多個接口文件包括托管對象格式(MOF)文件。
9.根據(jù)權(quán)利要求7和8中任一項所述的方法,其中,所述確定和所述選擇是在系統(tǒng)初始化期間執(zhí)行的。
10.一種系統(tǒng),包括 處理器(12);第一存儲設(shè)備(51),耦合到所述處理器,所述第一存儲設(shè)備包括能由所述處理器執(zhí)行的基本輸入/輸出系統(tǒng)(BIOS);以及第二存儲設(shè)備(16),耦合到所述處理器,所述第二存儲設(shè)備包括能由操作系統(tǒng)用來訪問所述BIOS的管理接口 ;未編譯的接口文件(38),其能由所述管理接口用來訪問所述BIOS,并且定義了由所述管理接口使用的一種或多種方法;其中,所述BIOS確定所述系統(tǒng)的配置,并且基于所確定的配置,根據(jù)所述未編譯的接口文件來生成目標接口文件。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,所述系統(tǒng)包括編譯所述目標接口文件的編譯器(50)。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,編譯后的目標接口文件使操作系統(tǒng)能夠訪問基本輸入/輸出系統(tǒng)(BIOS)。
13.根據(jù)權(quán)利要求10、11和12中任一項所述的系統(tǒng),其中,所述BIOS通過從所述未編譯的接口文件中選擇文本的子集并將所選定的子集存儲在所述目標接口文件中,來生成所述目標接口文件。
14.根據(jù)權(quán)利要求10、11、12和13中任一項所述的系統(tǒng),其中,所述BIOS通過從所述未編譯的接口文件中選擇文本的多個子集來生成所述目標接口文件,其中文本的每個子集對應(yīng)于所述配置的一個方面。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述第一存儲設(shè)備包括數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)將來自所述未編譯的接口文件的文本的每個子集映射到所述配置的對應(yīng)方面。
全文摘要
一種系統(tǒng)可以包括處理器(12)和耦合到所述處理器的第一存儲設(shè)備(18)。所述第一存儲設(shè)備包括能由所述處理器執(zhí)行的基本輸入/輸出系統(tǒng)(BIOS)(24)。所述系統(tǒng)還可以包括耦合到所述處理器的第二存儲設(shè)備(18)。所述第二存儲設(shè)備可以包括能由操作系統(tǒng)用來訪問所述BIOS的管理接口(32)。還可以提供多個接口文件(28),每個接口文件能由所述管理接口用來訪問所述BIOS,并且每個接口文件定義由所述接口或BIOS使用的一種或多種方法。在執(zhí)行所述BIOS時,所述處理器確定所述系統(tǒng)的配置,并且基于所確定的配置來選擇在運行時期間使用的特定接口文件。
文檔編號G06F15/177GK102473090SQ200980160607
公開日2012年5月23日 申請日期2009年8月25日 優(yōu)先權(quán)日2009年8月25日
發(fā)明者B·D·德塞勒, C·J·格雷厄姆, L·馬爾卡希 申請人:惠普開發(fā)有限公司