国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      更新計(jì)算機(jī)固件的系統(tǒng)、方法與計(jì)算機(jī)可讀取儲(chǔ)存媒體與流程

      文檔序號(hào):12596410閱讀:435來(lái)源:國(guó)知局
      更新計(jì)算機(jī)固件的系統(tǒng)、方法與計(jì)算機(jī)可讀取儲(chǔ)存媒體與流程

      本發(fā)明涉及計(jì)算機(jī)固件,且特別是涉及更新計(jì)算機(jī)固件而不用擦除(flash)整個(gè)固件映像檔的方法。



      背景技術(shù):

      一般的計(jì)算機(jī)系統(tǒng)在啟動(dòng)程序期間使用特定的計(jì)算機(jī)固件來(lái)辨認(rèn)、初始化與測(cè)試計(jì)算機(jī)系統(tǒng)中的硬件,并且載入啟動(dòng)載入器(boot loader)或者是操作系統(tǒng)。例如為基本輸入輸出系統(tǒng)(basic input/output system,BIOS)或是統(tǒng)一可擴(kuò)展固件接口(unified extensible firmware interface,UEFI)的固件平臺(tái)提供了接口,使得可以設(shè)定各種不同的參數(shù),例如為硬件參數(shù)或是啟動(dòng)設(shè)定參數(shù)。例如,固件接口可用來(lái)指令時(shí)鐘脈沖速度與總線速度,指出那些周邊裝置是連接到計(jì)算機(jī)系統(tǒng),設(shè)定特定的監(jiān)控程序,并且設(shè)定會(huì)影響計(jì)算機(jī)系統(tǒng)效能與功率使用的其他各種參數(shù)。

      一般而言,計(jì)算機(jī)系統(tǒng)的固件是儲(chǔ)存在快閃存儲(chǔ)器中,例如為非易失隨機(jī)存取存儲(chǔ)器(non-volatile random access memory,NVRAM)、只讀存儲(chǔ)器(read-only memory,ROM)、或者是電可擦除可編程只讀存儲(chǔ)器(electrically erasable programmable read-only memory,EEPROM)??扉W存儲(chǔ)器可以讓固件與固件設(shè)定重復(fù)寫入而不用將存儲(chǔ)器芯片從計(jì)算機(jī)裝置中移除。然而,可惜的是任何對(duì)固件的修改或更新現(xiàn)在都需要將整個(gè)固件重新寫入至快閃存儲(chǔ)器,此步驟被稱為擦除或快閃(flashing)固件映像檔。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的附加特征和優(yōu)點(diǎn)將在隨后的描述中闡述,其中一部分將從描述中變得明顯,或者可以通過實(shí)踐在此公開的原理而學(xué)習(xí)到這些特征與優(yōu)點(diǎn)。本發(fā)明的附加特征和優(yōu)點(diǎn)可以借助在權(quán)利要求中具體指出的儀器和組合來(lái)實(shí)現(xiàn)和獲得。這些和其他的本發(fā)明特征將從隨后的描述和權(quán)利要求中變得更為完全地明顯,或者可以通過實(shí)踐在此闡述的原理來(lái)獲得。

      本發(fā)明披露了用于更新計(jì)算機(jī)固件而不用擦除整個(gè)固件映像檔的系統(tǒng)、方法與非暫態(tài)計(jì)算機(jī)可讀取儲(chǔ)存媒體。此系統(tǒng)可在計(jì)算機(jī)固件容量中產(chǎn)生用戶固件容量,而計(jì)算機(jī)固件容量包含了系統(tǒng)在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件。在某些例子中,用戶固件容量可以是一個(gè)檔案系統(tǒng)。此外,計(jì)算機(jī)固件容量可以是在一個(gè)或多個(gè)存儲(chǔ)器裝置上的邏輯容量,這些存儲(chǔ)器裝置例如為系統(tǒng)中的快閃存儲(chǔ)器儲(chǔ)存元件。

      此系統(tǒng)可包含固件檔案,其是用來(lái)更新系統(tǒng)在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件。此系統(tǒng)可以通過網(wǎng)絡(luò)從另一個(gè)單獨(dú)的裝置中取得固件檔案或者是在本地產(chǎn)生并儲(chǔ)存固件檔案。例如,在某些例子下,系統(tǒng)可以從一個(gè)伺服器或是中央位置取得固件檔案以將固件檔案配置或整合至系統(tǒng)的計(jì)算機(jī)固件。在其他例子下,系統(tǒng)可以產(chǎn)生或編譯固件檔案并將之儲(chǔ)存在例如為只讀存儲(chǔ)器的存儲(chǔ)器中,用以配置或整合至系統(tǒng)的計(jì)算機(jī)固件中。

      接下來(lái),系統(tǒng)可比較固件檔案與計(jì)算機(jī)固件容量的內(nèi)容,并且基于比較結(jié)果將固件檔案儲(chǔ)存在計(jì)算機(jī)固件容量中的用戶固件容量,而不用擦除系統(tǒng)在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件的全部。此固件檔案可包括一個(gè)或多個(gè)固件模塊。系統(tǒng)可檢查固件檔案是否已經(jīng)在計(jì)算機(jī)固件中。例如,系統(tǒng)可以檢查計(jì)算機(jī)固件容量以判斷固件檔案是否已經(jīng)在計(jì)算機(jī)固件容量中。如果系統(tǒng)判斷固件檔案并不在計(jì)算機(jī)固件里,它可以簡(jiǎn)單地把固件檔案加入至計(jì)算機(jī)固件以成為新的元件(即新檔案或模塊)。在某些例子下,系統(tǒng)可以檢查固件檔案是否已經(jīng)在計(jì)算機(jī)固件中和/或在系統(tǒng)的啟動(dòng)程序期間將固件檔案加入至計(jì)算機(jī)固件。

      另一方面,如果系統(tǒng)判斷固件檔案是對(duì)應(yīng)于已經(jīng)在計(jì)算機(jī)固件中的固件檔案,它可以檢查或比較固件檔案與計(jì)算機(jī)固件中對(duì)應(yīng)的固件檔案的版本,由此判斷固件檔案是否為計(jì)算機(jī)固件中固件檔案的新版本或更新版本。如果系統(tǒng)判斷固件檔案是計(jì)算機(jī)固件中固件檔案的新版本或更新版本,它可以將計(jì)算機(jī)固件中對(duì)應(yīng)的固件檔案替換或更新為上述的固件檔案。另一方面,如果系統(tǒng)判斷固件檔案中的固件模塊是計(jì)算機(jī)固件中對(duì)應(yīng)的固件模塊的相同版本與更舊的版本,它可以決定不要以固件檔案中的固件模塊來(lái)替換或更新計(jì)算機(jī)固件中對(duì)應(yīng)的固件模塊。

      在某些例子下,系統(tǒng)可以檢查或比較固件檔案的版本和/或在系統(tǒng)的啟動(dòng)程序期間將計(jì)算機(jī)固件中對(duì)應(yīng)的固件檔案替換或更新為上述的固件檔案。

      為了一些安全的目的,系統(tǒng)也可以實(shí)施加密、簽章和/或驗(yàn)證或授權(quán)的機(jī)制來(lái)保護(hù)固件檔案和/或計(jì)算機(jī)固件。例如,系統(tǒng)可以加密和/或簽章固件檔案,并且在將固件檔案加入或儲(chǔ)存至計(jì)算機(jī)固件容量之前,或是在將現(xiàn)存固件檔案更新或替換為固件檔案之前,執(zhí)行驗(yàn)證或是授權(quán)的步驟。在某些例子下,系統(tǒng)可以通過對(duì)固件檔案實(shí)施一雜湊函數(shù)(例如MD5、SHA等)來(lái)產(chǎn)生信息摘要。此外,系統(tǒng)可以選擇性地以一加密金鑰來(lái)加密信息摘要,此加密金鑰例如是非對(duì)稱加密的私鑰(private key)或者是對(duì)稱加密的金鑰。系統(tǒng)可以將簽章后和/或加密后的信息摘要整合至固件檔案以產(chǎn)生簽章后的固件檔案。

      為了驗(yàn)證或授權(quán)簽章后的固件檔案,系統(tǒng)可以從簽章后的固件檔案擷取固件檔案與信息摘要。如果此信息摘要是先前加密的那一個(gè),系統(tǒng)可以根據(jù)解密金鑰(例如,對(duì)稱式加密所使用的金鑰,或者是非對(duì)稱式加密的公開金鑰)來(lái)解密信息摘要。接下來(lái),在簽章固件檔案時(shí)所使用的雜湊函數(shù)可用來(lái)實(shí)施在從簽章后的固件檔案所擷取的固件檔案上,并且其結(jié)果可和從簽章后的固件檔案中擷取的(并且選擇定地解密)的信息摘要做比較。如果比較結(jié)果顯示兩者配對(duì),則固件檔案可被驗(yàn)證或授權(quán)成功。如此一來(lái),系統(tǒng)接著可以使用此固件檔案來(lái)更新或修改計(jì)算機(jī)固件。另一方面,如果比較結(jié)果顯示兩者不配對(duì),則表示固件檔案不被驗(yàn)證或授權(quán)成功,因此不會(huì)被系統(tǒng)用來(lái)更新或修改計(jì)算機(jī)固件。通過判斷出兩個(gè)固件檔案不配對(duì)的比較結(jié)果,系統(tǒng)可以辨認(rèn)出潛在的妥協(xié)或者是駭客的嘗試,并且可以避免實(shí)施了未被授權(quán)的固件檔案。

      附圖說(shuō)明

      為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下??衫斫獾氖沁@些圖式僅繪示了本發(fā)明中示范性的實(shí)施例,并不用以限制本發(fā)明,其中的原理會(huì)使用所附的圖式另外具體且詳細(xì)的描述和解釋。

      圖1A與圖1B繪示了示范性的系統(tǒng)實(shí)施例;

      圖2繪示了用以通過網(wǎng)絡(luò)來(lái)更新計(jì)算機(jī)固件的示范性環(huán)境的方塊圖;

      圖3繪示了用以將固件檔案整合至計(jì)算機(jī)固件容量的一個(gè)示范性流程圖的示意圖;

      圖4繪示了用以將計(jì)算機(jī)固件配置在系統(tǒng)中的一個(gè)示范性機(jī)制的流程圖;

      圖5繪示了在計(jì)算機(jī)固件與系統(tǒng)管理者之間互動(dòng)流程的示意圖;

      圖6繪示了邏輯固件裝置的范例;

      圖7繪示了用以更新計(jì)算機(jī)固件的一個(gè)示范性程序的示意圖;

      圖8繪示了用以更新計(jì)算機(jī)固件的一個(gè)示范性方法實(shí)施例;以及

      圖9繪示了用以保護(hù)固件檔案的示范性方法。

      附圖符號(hào)說(shuō)明

      100:系統(tǒng)

      105:總線

      110:處理器

      112:快取存儲(chǔ)器

      115:存儲(chǔ)器

      120:只讀存儲(chǔ)器

      125:隨機(jī)存取存儲(chǔ)器

      130:儲(chǔ)存裝置

      132:模塊一

      134:模塊二

      135:輸出裝置

      136:模塊三

      138:基板管理控制器

      140:通訊接口

      142:快閃存儲(chǔ)器

      145:輸出裝置

      148:固件

      150:系統(tǒng)

      155:處理器

      160:芯片組

      165:輸出裝置

      170:儲(chǔ)存裝置

      175:隨機(jī)存取存儲(chǔ)器

      180:橋

      185:用戶接口元件

      190:通訊接口

      195:固件

      200:環(huán)境方塊圖

      202:網(wǎng)絡(luò)

      204、206、208:遠(yuǎn)端裝置

      210:系統(tǒng)

      300:示意圖

      302:計(jì)算機(jī)固件容量

      304:用戶固件容量

      306、308:步驟

      310:固件檔案

      400:流程圖

      402~422:步驟

      500:示意圖

      502:系統(tǒng)管理者

      504、506、508、510:步驟

      600:邏輯固件裝置

      602、604、608:固件容量

      700:程序

      702:計(jì)算機(jī)固件模塊

      606:固件容量

      704、706、708、710、712:步驟

      800、900:方法

      802、804、806、808、902、904、906、908、910、912、914:步驟

      具體實(shí)施方式

      以下詳細(xì)地描述了本發(fā)明的各種實(shí)施例。當(dāng)討論特定的實(shí)施方式時(shí),可理解的是此實(shí)施方式只作為解釋目的。本領(lǐng)域技術(shù)人員可理解的是,當(dāng)不離 開本發(fā)明的精神與范圍時(shí),可使用其他的元件與設(shè)定。

      在此描述的是用以更新計(jì)算機(jī)固件而不擦除整個(gè)固件映像檔的系統(tǒng)、方法與非暫態(tài)計(jì)算機(jī)可讀取儲(chǔ)存媒體。首先,會(huì)先描述用于更新計(jì)算機(jī)固件而不擦除整個(gè)固件映像檔的示范性系統(tǒng)與環(huán)境的簡(jiǎn)單介紹。更新計(jì)算機(jī)系統(tǒng)而不擦除整個(gè)固件映像檔的詳細(xì)描述(包括范例與變化)都會(huì)在之后描述。這些變化在此應(yīng)被解釋為各種實(shí)施例。本發(fā)明現(xiàn)在從圖1A與圖1B開始。

      圖1A與1B繪示了示范性的系統(tǒng)實(shí)施例。在實(shí)施此技術(shù)時(shí),對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)當(dāng)可理解有更適當(dāng)?shù)膶?shí)施例。本領(lǐng)域技術(shù)人員當(dāng)可理解其他系統(tǒng)實(shí)施例也是可能的。

      圖1A繪示了系統(tǒng)總線計(jì)算系統(tǒng)100,此系統(tǒng)的元件是通過總線105彼此電性通訊。示范性的系統(tǒng)100包括了處理單元(中央處理器或是處理器)110與系統(tǒng)總線105,系統(tǒng)總線105將各種系統(tǒng)元件(包括系統(tǒng)存儲(chǔ)器115,例如為儲(chǔ)存裝置170與隨機(jī)存取存儲(chǔ)器175)耦接至處理器110。系統(tǒng)100可包括高速的快取存儲(chǔ)器112,其是靠近地直接連接到處理器110或是整合為處理器110的一部分。系統(tǒng)可以將數(shù)據(jù)從存儲(chǔ)器115和/或儲(chǔ)存裝置130復(fù)制到快取存儲(chǔ)器112中,讓處理器110快速地存取。以此方式,快取存儲(chǔ)器112可以提升效能,避免處理器110在等待數(shù)據(jù)時(shí)延遲了。這些模塊與其他模塊可控制處理器110或是被處理器110所控制,由此執(zhí)行各種動(dòng)作。也可以使用其他的系統(tǒng)存儲(chǔ)器115。存儲(chǔ)器115可包括多個(gè)不同類型且具有不同效能特性的存儲(chǔ)器。處理器110可包括通用目的的處理器與硬件模塊或軟件模塊,例如為儲(chǔ)存在儲(chǔ)存裝置130的模塊132、134與136,用來(lái)控制處理器110成為特定目的的處理器,在此其中的軟件指令是與實(shí)際的處理器設(shè)計(jì)一起合作。處理器110可實(shí)質(zhì)上為完全自足的計(jì)算系統(tǒng),包含多個(gè)核心或處理器、總線、存儲(chǔ)器控制器、快取存儲(chǔ)器等。多核心的處理器可以為對(duì)稱式或是非對(duì)稱式。

      為了讓用戶與計(jì)算機(jī)裝置100互動(dòng),輸入裝置145可表示為任意數(shù)目的輸入機(jī)制,例如為語(yǔ)音用的麥克風(fēng)、用于手勢(shì)或圖形輸入的觸控面板、鍵盤、鼠標(biāo)、動(dòng)作輸入、語(yǔ)音等等。輸出裝置135可以為本領(lǐng)域技術(shù)人員能理解的一個(gè)或多個(gè)輸出機(jī)制。在一些例子中,多模塊的系統(tǒng)可以讓用戶提供各種輸入來(lái)與計(jì)算機(jī)裝置100通訊。一般來(lái)說(shuō),通訊接口140可用來(lái)支配并管理用戶的輸入和系統(tǒng)的輸出。本發(fā)明并不限制運(yùn)作任意特定的硬件配置,因此隨 著硬件的發(fā)展,在此基本的特征可以輕易地置換為更好的硬件或固件配置。

      儲(chǔ)存裝置130是一個(gè)非易失性的存儲(chǔ)器,可以為硬盤或其他形式的計(jì)算機(jī)可讀取媒體,其可以儲(chǔ)存計(jì)算機(jī)可存取的數(shù)據(jù)。此計(jì)算機(jī)可讀取媒體例如為磁帶盒(magnetic cassettes)、快閃存儲(chǔ)器卡、固態(tài)存儲(chǔ)器裝置、數(shù)字通用磁盤(digital versatile disks)、盒式磁帶(cartridges)、隨機(jī)存取存儲(chǔ)器125、只讀存儲(chǔ)器120或其組合。

      儲(chǔ)存裝置130可包括軟件模塊132,134,136,用以控制處理器110。其他的硬件或軟件模塊是可預(yù)期的。儲(chǔ)存裝置130可連接至系統(tǒng)總線105。從某一個(gè)角度,實(shí)施特定功能的一個(gè)硬件模塊可包括儲(chǔ)存在計(jì)算機(jī)可讀取媒體的軟件元件,此計(jì)算機(jī)可讀取媒體是連接到必要的硬件元件,例如為處理器110、總線105、顯示器135等等,由此進(jìn)行上述的功能。

      基板管理控制器(baseboard management controller,BMC)138可以為系統(tǒng)100中專門的微控制器或處理器。在某些例子中,基板管理控制器138可以是智能平臺(tái)管理接口(Intelligent Platform Management Interface,IPMI)的一部分。此外,在一些例子中,基板管理控制器138可以嵌入在系統(tǒng)的主機(jī)板或主要電路板中?;骞芾砜刂破?38可管理系統(tǒng)管理軟件與平臺(tái)硬件之間的接口。在系統(tǒng)中建置的不同種類的傳感器可以回報(bào)一些參數(shù)給基板管理控制器138,這些參數(shù)例如為溫度、冷卻風(fēng)扇速度、電源狀態(tài)、操作系統(tǒng)狀態(tài)等等?;骞芾砜刂破?38可以監(jiān)控這些傳感器并且通過網(wǎng)絡(luò)接口(例如為通訊接口140)發(fā)出警告給管理員(administrator),如果有任一個(gè)參數(shù)沒有落在預(yù)設(shè)的限制或臨界值內(nèi),上述的警告可指出系統(tǒng)100潛在的故障或是錯(cuò)誤。管理員也可以遠(yuǎn)端地與基板管理控制器138通訊以采取正確的動(dòng)作,例如重置系統(tǒng)100或執(zhí)行電源循環(huán),由此回復(fù)系統(tǒng)的功能。

      快閃存儲(chǔ)器142可以為電子式非易失性計(jì)算機(jī)儲(chǔ)存媒體或是芯片,其可被系統(tǒng)100用來(lái)作為儲(chǔ)存和/或轉(zhuǎn)移數(shù)據(jù)的用途??扉W存儲(chǔ)器142可被電子式地擦除和/或重新編程。例如,快閃存儲(chǔ)器142可包括可擦除可編程只讀存儲(chǔ)器(erasable programmable read-only memory,EPROM)、電子式可擦除可編程只讀存儲(chǔ)器(electrically erasable programmable read-only memory,EEPROM)、只讀存儲(chǔ)器、非易失性隨機(jī)存取存儲(chǔ)器或互補(bǔ)金屬氧化物半導(dǎo)體(complementary metal-oxide semiconductor,CMOS)??扉W存儲(chǔ)器142可儲(chǔ)存固件148,當(dāng)系統(tǒng)100開機(jī)時(shí)系統(tǒng)100會(huì)執(zhí)行固件148與固件148指定 的一組設(shè)定。快閃存儲(chǔ)器142也可以被固件148所使用的設(shè)定。

      固件148可包括基本輸入/輸出系統(tǒng)、其繼承者(successors)或具有相同功能的系統(tǒng),例如可擴(kuò)展固件接口(Extensible Firmware Interface,EFI)、或者是統(tǒng)一可擴(kuò)展固件接口(Unified Extensible Firmware Interface,UEFI)。每次系統(tǒng)100開機(jī)時(shí),固件148可被載入且執(zhí)行為一順序程序(sequence program)。固件可以基于上述該組設(shè)定來(lái)辨認(rèn)、初始化與測(cè)試系統(tǒng)100中的硬件。固件可以在系統(tǒng)100上執(zhí)行自我測(cè)試,例如為電力開啟自我測(cè)試(Power-on-Self-Test,POST)。此自我測(cè)試可以測(cè)試各種硬件元件,例如為硬盤驅(qū)動(dòng)器、光學(xué)讀取裝置、冷卻裝置、存儲(chǔ)器模塊、擴(kuò)充卡等的功能。固件148在存儲(chǔ)器115、只讀存儲(chǔ)器120、隨機(jī)存取存儲(chǔ)器125和/或儲(chǔ)存裝置130中定址且分配出一個(gè)區(qū)域,由此儲(chǔ)存操作系統(tǒng)。固件148可載入一個(gè)啟動(dòng)載入器和/或操作系統(tǒng),并且將系統(tǒng)100的控制交給操作系統(tǒng)。

      系統(tǒng)100的固件148可包括固件設(shè)置,其定義了固件148如何控制系統(tǒng)100中的各種元件。此固件設(shè)置可決定系統(tǒng)100中各種硬件元件啟動(dòng)的順序。固件148可以提供例如為統(tǒng)一可擴(kuò)展固件接口的接口,使得可設(shè)定各種不同的參數(shù),這些設(shè)定的參數(shù)可不同于預(yù)設(shè)固件設(shè)置中的參數(shù)。例如,用戶(例如管理員)可以使用固件148來(lái)指定時(shí)鐘脈沖速度或是總線速度,定義那些周邊裝置是連接至系統(tǒng)100,設(shè)定健康狀況(例如風(fēng)扇速度與中央處理器的溫度上下限)的監(jiān)視,和/或提供會(huì)影響系統(tǒng)100整體效能與電力使用的其他各種參數(shù)。

      當(dāng)描述固件148儲(chǔ)存在快閃存儲(chǔ)器142時(shí),本領(lǐng)域技術(shù)人員當(dāng)可理解固件148也可以儲(chǔ)存在其他的存儲(chǔ)器元件,例如為存儲(chǔ)器115或是只讀存儲(chǔ)器120。然而,為了解釋的目的,在此描述固件148是被儲(chǔ)存在快閃存儲(chǔ)器142中以作為一個(gè)非限制性的例子。

      圖1B繪示了包含芯片組架構(gòu)的示范性計(jì)算機(jī)系統(tǒng)150,其可用來(lái)執(zhí)行上述的方法或操作,并且產(chǎn)生與顯示圖形化接口(graphical user interface,GUI)。計(jì)算機(jī)系統(tǒng)150可包括可用來(lái)實(shí)施上述技術(shù)的計(jì)算機(jī)硬件、軟件與固件。系統(tǒng)150可包括處理器155,代表任意數(shù)目且不同的物理和/或邏輯資源,其能夠執(zhí)行用來(lái)實(shí)施上述計(jì)算的軟件、固件與硬件。處理器155可與芯片組160進(jìn)行通訊,芯片組160可控制處理器155的輸入與輸出。在此例子中,芯片組160輸出資訊給輸出裝置165(例如為顯示器),并且可以從儲(chǔ)存裝置 170中讀取或?qū)懭胭Y訊,儲(chǔ)存裝置170可例如包括磁性媒體或者是固態(tài)媒體。芯片組160可從隨機(jī)存取存儲(chǔ)器175中讀取數(shù)據(jù)或是寫入數(shù)據(jù)。橋(bridge)180可作為芯片組160和各種用戶接口元件185之間的接口。這些用戶接口元件185可包括鍵盤、麥克風(fēng)、觸控檢測(cè)和處理電路、指向裝置(例如鼠標(biāo))等。一般來(lái)說(shuō),系統(tǒng)150的輸入可以來(lái)自于各種來(lái)源,這些來(lái)源可以是機(jī)器產(chǎn)生的和/或人所產(chǎn)生的。

      芯片組160也可以接合至一個(gè)或多個(gè)通訊接口190,其可具有不同的物理接口。這些通訊接口可以是用于有線或是無(wú)線的區(qū)域網(wǎng)絡(luò)、寬頻無(wú)線網(wǎng)絡(luò)或個(gè)人區(qū)域網(wǎng)絡(luò)的接口。用于產(chǎn)生、顯示并使用圖形化用戶接口的方法的一些應(yīng)用可以包括由處理器155接收有序的數(shù)據(jù)集,這些數(shù)據(jù)集可以是在物理接口上接收的,或者是由機(jī)器本身產(chǎn)生的,處理器155會(huì)分析在儲(chǔ)存裝置170或隨機(jī)存取存儲(chǔ)器175中的數(shù)據(jù)。另外,機(jī)器可以通過用戶接口元件185接收用戶的輸入并且執(zhí)行適當(dāng)?shù)墓δ?,例如是使用處理?55來(lái)解譯這些輸入而達(dá)到瀏覽的功能。

      此外,芯片組160也可以與固件195通訊,此固件195可以在開機(jī)時(shí)由計(jì)算機(jī)系統(tǒng)150來(lái)執(zhí)行。固件195可以基于一組固件設(shè)定來(lái)辨認(rèn)、初始化并且測(cè)試計(jì)算機(jī)系統(tǒng)150中的硬件。固件可以在系統(tǒng)150上執(zhí)行自我測(cè)試,例如為電力開啟自我測(cè)試(POST)。此自我測(cè)試會(huì)測(cè)試各種硬件元件(符號(hào)155~190)的功能。固件195可以在隨機(jī)存取存儲(chǔ)器175中定址并配置一個(gè)區(qū)域來(lái)儲(chǔ)存操作系統(tǒng)。固件195可以載入啟動(dòng)載入器和/或操作系統(tǒng),并且將系統(tǒng)150的控制交給操作系統(tǒng)。在某些例子中,固件195可與硬件元件155-190通訊。在此,固件可通過芯片組160和/或通過一或多個(gè)其他的元件來(lái)與硬件元件155-190通訊。在一些例子中,固件195可以直接與硬件元件155-190通訊。

      可理解的是,示范性的系統(tǒng)100與150可包含多于一個(gè)處理器110或者也可以是由網(wǎng)絡(luò)連接的一群或一叢集計(jì)算機(jī)裝置中的一部分以提供更大的處理能力。

      為了清楚的解釋,在一些例子中本技術(shù)可以表示為包括個(gè)別的功能方塊,其中一些功能方塊可包括裝置、裝置元件、由軟件實(shí)施的方法中的步驟或程序、或者是硬件與軟件的結(jié)合。

      在一些實(shí)施例中,這些計(jì)算機(jī)可讀取儲(chǔ)存裝置、媒體與存儲(chǔ)器可包括纜 線或無(wú)線信號(hào),其中具有位串。然而,在此提到的非暫態(tài)計(jì)算機(jī)可讀取儲(chǔ)存媒體明確地排除了例如為能量、載波、電磁波以及信號(hào)本身的媒體。

      上述例子的方法可以利用計(jì)算機(jī)可執(zhí)行指令來(lái)實(shí)施,這些指令可以儲(chǔ)存在計(jì)算機(jī)可讀取媒體或者可以從計(jì)算機(jī)可讀取媒體中取得。例如,這些指令可包括指令與數(shù)據(jù),其造成或設(shè)定通用目的的計(jì)算機(jī)、特殊目的的計(jì)算機(jī)或特殊目的的處理裝置來(lái)執(zhí)行特定的功能或功能組。所使用的計(jì)算機(jī)資源的一部分也可以通過網(wǎng)絡(luò)來(lái)存取。例如,這些計(jì)算機(jī)可執(zhí)行指令可以是數(shù)字檔、例如為組合語(yǔ)言的中間(intermediate)格式指令、固件、或原始碼。計(jì)算機(jī)可讀取媒體的例子包括磁盤、光盤、快閃存儲(chǔ)器、與非易失性存儲(chǔ)器一起提供的通用串列總線(Universal Serial Bus,USB)裝置、連接至網(wǎng)絡(luò)的儲(chǔ)存裝置等,而計(jì)算機(jī)可讀取媒體可用來(lái)儲(chǔ)存指令、使用的資訊和/或在上述例子的方法中所產(chǎn)生的資訊。

      根據(jù)上述發(fā)明用來(lái)實(shí)施方法的裝置可包括硬件、固件和/或軟件,并且可以采用各種形狀因子(form factor)。這些形狀因子的一般性例子包括筆記型計(jì)算機(jī)、智能型手機(jī)、具有小形狀因子的個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字化助理、機(jī)架式設(shè)備或是獨(dú)立設(shè)備等等。在此所描述的功能可以實(shí)施為周邊裝置或是外接卡。在更進(jìn)一步的例子中,這些功能也可以伴隨著不同的芯片而實(shí)施在電路板上,或者是實(shí)施在單一裝置中的不同處理器上。

      這些指令、用來(lái)傳送指令的媒體、用來(lái)執(zhí)行指令的計(jì)算資源、以及其他用來(lái)支持這些計(jì)算資源的結(jié)構(gòu)都是用來(lái)提供所述功能的手段。

      圖2繪示了用來(lái)通過網(wǎng)絡(luò)202更新計(jì)算機(jī)固件的示范性環(huán)境方塊圖200。系統(tǒng)210可以通過網(wǎng)絡(luò)202來(lái)增加、更新和/或替換遠(yuǎn)端裝置204~208上的固件模塊(例如固件檔案)。例如,為了遠(yuǎn)端裝置204~208上的計(jì)算機(jī)固件,系統(tǒng)210可以傳送一個(gè)或多個(gè)固件模塊和/或指令至遠(yuǎn)端裝置204~208以增加、更新和/或替換固件模塊。遠(yuǎn)端裝置204~208可包含客戶端裝置,例如為筆記型計(jì)算機(jī)、桌上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能型手機(jī)等;伺服器;網(wǎng)絡(luò)裝置,例如為交換器(switch)或路由器(router);或任意其他的計(jì)算機(jī)裝置。在一些例子中,系統(tǒng)210可傳送固件模塊(可伴隨安裝指令或不伴隨安裝指令)至一個(gè)或多個(gè)遠(yuǎn)端裝置204~208,并且驅(qū)動(dòng)已經(jīng)接收到固件模塊的遠(yuǎn)端裝置204~208來(lái)增加或安裝固件模塊至特定遠(yuǎn)裝裝置上的計(jì)算機(jī)固件。

      在其他例子中,系統(tǒng)210可以傳送固件修改指令至一個(gè)或多個(gè)遠(yuǎn)端裝置 204~208來(lái)驅(qū)動(dòng)此一個(gè)或多個(gè)遠(yuǎn)端裝置204~208來(lái)增加、更新或替換在特定遠(yuǎn)端裝置上的計(jì)算機(jī)固件中的固件模塊。例如,系統(tǒng)210可以傳送一指令,此指令指定某個(gè)的第一固件模塊應(yīng)該被安裝在遠(yuǎn)端裝置204上。遠(yuǎn)端裝置204可接收此指令,并且對(duì)應(yīng)地在遠(yuǎn)端裝置204上啟動(dòng)第一固件模塊的安裝。在此,如果遠(yuǎn)端裝置已經(jīng)具有第一固件模塊的復(fù)本(copy),它可以簡(jiǎn)單地根據(jù)從系統(tǒng)210接收的指令來(lái)執(zhí)行安裝程序。另一方面,如果遠(yuǎn)端裝置204并沒有第一固件模塊的復(fù)本,則它可以向系統(tǒng)210和/或任意其他的裝置要求和/或取得第一固件模塊。在一些例子中,來(lái)自系統(tǒng)210的指令可以指定遠(yuǎn)端裝置204可找到并取得第一固件模塊的位置以完成安裝程序。在一些其他的例子中,遠(yuǎn)端裝置204具有用來(lái)指定一個(gè)或多個(gè)位置的設(shè)定,讓遠(yuǎn)端裝置204可以從這些位置要求或下載第一固件裝置和/或任意其他的固件模塊以完成安裝程序。

      從系統(tǒng)210而來(lái)的指令可以包括一個(gè)觸發(fā)器,用以啟動(dòng)固件的更新、安裝和/或修改。從系統(tǒng)210而來(lái)的指令也可以指出要被接收到此指令的遠(yuǎn)端裝置加入、更新和/或替換的一個(gè)或多個(gè)固件模塊。此外,從系統(tǒng)210而來(lái)的指令可以包括指示如何加入、更新和/或替換一個(gè)特定的固件模塊的指令。如果從系統(tǒng)210而來(lái)的指令并沒有伴隨著要被接收到指令的裝置來(lái)安裝的固件模塊,則此指令可包括一個(gè)或多個(gè)位址,其會(huì)指出裝置可以從哪里下載或要求此特定的固件模塊,而此特定的固件模塊會(huì)被安裝在接收到指令的裝置上。此外,此指令也可以概述接收到指令的裝置要如何將此計(jì)算機(jī)固件與新的、被加入的或被替換的固件模塊組合。

      此指令可以概述接收到指令的裝置要如何處理新的固件模塊集合,由此更新或替換在裝置上現(xiàn)存的固件模塊。例如,如果現(xiàn)存的固件模塊與新的固件模塊是屬于相同的類型(例如,如果現(xiàn)存的固件模塊與新的固件模塊有配對(duì)的識(shí)別符、功能或特定),則此指令可指示應(yīng)該執(zhí)行版本的檢查,并且當(dāng)新的固件模塊比現(xiàn)存的固件模塊具有更高或更新的版本,或者當(dāng)新的固件模塊解決了現(xiàn)存固件模塊中的問題時(shí),則此指令可以指示現(xiàn)存的固件模塊應(yīng)替換為新的固件模塊。

      從系統(tǒng)210而來(lái)的指令也可以包括安全資訊,例如為簽章(signature)、加密/解密金鑰、驗(yàn)證規(guī)則和/或安全指令。除此之外,從系統(tǒng)210而來(lái)的指令可包括其他的參數(shù),例如為安裝參數(shù)、檔案種類參數(shù)、檔案名稱參數(shù)、超 數(shù)據(jù)(metadata)、規(guī)則、固件設(shè)定等等。

      如先前所述,系統(tǒng)210可以傳輸固件模塊和/或指令至遠(yuǎn)端裝置204~208以通過網(wǎng)絡(luò)202加入、替換和/或更新一個(gè)或多個(gè)固件模塊。網(wǎng)絡(luò)202可包括一個(gè)或多個(gè)物理和/或邏輯網(wǎng)絡(luò)。而且,網(wǎng)絡(luò)202可包括例如為區(qū)域網(wǎng)絡(luò)(local area network,LAN)或是無(wú)線區(qū)域網(wǎng)絡(luò)(wireless LAN)的私有網(wǎng)絡(luò);例如為互聯(lián)網(wǎng)或是廣域網(wǎng)絡(luò)(wide area network,WAN)的公開網(wǎng)絡(luò);和/或例如為虛擬私有網(wǎng)絡(luò)(virtual private network,VPN)的混和網(wǎng)絡(luò)。更進(jìn)一步來(lái)說(shuō),遠(yuǎn)端裝置204~208可屬于一個(gè)或多個(gè)網(wǎng)絡(luò)和/或數(shù)據(jù)中心。例如,遠(yuǎn)端裝置204~206可屬于某個(gè)特定的虛擬區(qū)域網(wǎng)絡(luò)(virtual LAN,VLAN),并且遠(yuǎn)端裝置208可以屬于相同或是不相同的網(wǎng)絡(luò)段(network segment),例如為不同的VLAN、LAN或者數(shù)據(jù)中心。在一些例子中,系統(tǒng)210可以和遠(yuǎn)端裝置204~208屬于相同的物理或邏輯網(wǎng)絡(luò)或網(wǎng)絡(luò)片段。然而,在其他例子中,系統(tǒng)210可以和遠(yuǎn)端裝置204~208屬于不同的物理或邏輯網(wǎng)絡(luò)或網(wǎng)絡(luò)片段。

      系統(tǒng)210與遠(yuǎn)端裝置204~208可以是任意具有網(wǎng)絡(luò)連線能力的計(jì)算機(jī)裝置,例如為筆記型計(jì)算機(jī)、伺服器、平板計(jì)算機(jī)、智能型手機(jī)等等。例如,系統(tǒng)210與遠(yuǎn)端裝置208可以為分開的伺服器,其中遠(yuǎn)端裝置204~206可以為客戶端裝置。在一些實(shí)施例中,系統(tǒng)210可以是能遠(yuǎn)端修改遠(yuǎn)端裝置204~208上的計(jì)算機(jī)固件的伺服器或是交換器。在其他的實(shí)施例中,系統(tǒng)210可以是客戶端裝置,用戶可以使用此客戶端裝置來(lái)修改遠(yuǎn)端裝置204~208上的計(jì)算機(jī)固件。在一些例子中,系統(tǒng)210可以在遠(yuǎn)端裝置204~208上監(jiān)控計(jì)算機(jī)固件的版本與更新,并且觸發(fā)計(jì)算機(jī)固件的任何修改。

      此外,系統(tǒng)210可以在每一個(gè)遠(yuǎn)端裝置204~208上監(jiān)控不同種類或是版本的計(jì)算機(jī)固件,和/或觸發(fā)每一個(gè)遠(yuǎn)端裝置204~208上計(jì)算機(jī)固件任意的更新、安裝或替換。例如,系統(tǒng)210可以在遠(yuǎn)端裝置208上觸發(fā)一個(gè)伺服器固件模塊的安裝,此遠(yuǎn)端裝置208可以是一個(gè)特定類型的伺服器和/或伺服器硬件,系統(tǒng)210可以在遠(yuǎn)端裝置204上觸發(fā)客戶端固件模塊的安裝,此遠(yuǎn)端裝置204可以是一個(gè)特定類型的客戶端計(jì)算機(jī)和/或計(jì)算機(jī)硬件。在另一個(gè)例子中,系統(tǒng)210可以觸發(fā)遠(yuǎn)端裝置206上的計(jì)算機(jī)固件更新至一個(gè)特定的版本,并且觸發(fā)遠(yuǎn)端裝置208上的計(jì)算機(jī)固件更新至不同的版本。

      圖3繪示了用以整合固件檔案至計(jì)算機(jī)固件容量302的示范性流程圖的示意圖300。計(jì)算機(jī)固件容量(computer firmware volume)302可包括在系 統(tǒng)100上被系統(tǒng)100所使用的檔案系統(tǒng)或儲(chǔ)存手段,用以讓系統(tǒng)100儲(chǔ)存計(jì)算機(jī)固件148。計(jì)算機(jī)固件容量302可包含在系統(tǒng)100中一個(gè)存儲(chǔ)器裝置上的方法、數(shù)據(jù)結(jié)構(gòu)、分割和/或磁盤,此存儲(chǔ)器裝置例如為快閃存儲(chǔ)器148,用以儲(chǔ)存或維護(hù)計(jì)算機(jī)固件148。在一些實(shí)施例中,計(jì)算機(jī)固件容量302可把計(jì)算機(jī)固件148儲(chǔ)存為一個(gè)映像檔和/或?qū)儆谟?jì)算機(jī)固件148的特定模塊、片段、部分、功能、檔案和/或固件。

      系統(tǒng)100可在計(jì)算機(jī)固件容量302中建立用戶固件容量304,用以儲(chǔ)存固件的內(nèi)容,例如為被用戶或系統(tǒng)100加入、更新、替換或安裝的固件檔案或模塊。用戶固件容量304可以是計(jì)算機(jī)固件容量302的一部分、一片段或一部分。并且,用戶固件容量304可以和計(jì)算機(jī)固件容量302儲(chǔ)存在相同的磁盤、分割、或者是存儲(chǔ)器裝置。然而,在一些實(shí)施例中,用戶固件容量304可以和計(jì)算機(jī)固件容量302儲(chǔ)存在不相同的磁盤、分割、或者是存儲(chǔ)器裝置。并且,在一些例子中,用戶固件容量304可以跨越地儲(chǔ)存在多個(gè)分割、磁盤、檔案系統(tǒng)或存儲(chǔ)器裝置。在此,用戶固件容量304可以和計(jì)算機(jī)檔案系統(tǒng)容量?jī)?chǔ)存在相同的分割、磁盤、檔案系統(tǒng)或存儲(chǔ)器裝置,但也可以跨越地儲(chǔ)存在一個(gè)或多個(gè)不同的分割、磁盤、檔案系統(tǒng)或存儲(chǔ)器裝置。

      在步驟306,系統(tǒng)100檢查是否有固件檔案(例如,固件模塊)要被整合至計(jì)算機(jī)固件148。如果有固件檔案要被整合至計(jì)算機(jī)固件148,在步驟308中系統(tǒng)100會(huì)將固件檔案310(即須要被整合至計(jì)算機(jī)固件148的固件檔案)整合至用戶固件容量304。如此一來(lái),固件檔案310可以被整合至計(jì)算機(jī)固件容量302中的用戶固件容量304,其中計(jì)算機(jī)固件容量302會(huì)持續(xù)地更新或修改系統(tǒng)100上的計(jì)算機(jī)固件148。在一些例子中,固件檔案310可以是要被加入至計(jì)算機(jī)固件148的新固件模塊。然而,在其他例子中,固件檔案310可以替換計(jì)算機(jī)固件148中現(xiàn)存的固件模塊。在此,在替換現(xiàn)存的固件模塊之前,系統(tǒng)100可在固件檔案310與現(xiàn)存固件模塊之間執(zhí)行檔案的檢查或比較。例如,系統(tǒng)可比較固件檔案310與現(xiàn)存模塊的總體唯一識(shí)別符(globally unique identifier,GUID)以判斷這兩個(gè)總體唯一識(shí)別符是否是對(duì)應(yīng)于相同的固件模塊,并且判斷哪一個(gè)固件模塊是較新且應(yīng)該被保留成計(jì)算機(jī)固件148的一部分的模塊。

      圖4繪示了用以配置系統(tǒng)100上的計(jì)算機(jī)固件的示范性機(jī)制的流程圖400。在步驟402,產(chǎn)生要被整合至計(jì)算機(jī)固件的固件映像檔。此固件映像 檔可包括固件檔案和/或固件模塊。并且,固件映像檔可以包括例如為用戶固件容量的邏輯容量,用戶固件容量可以被整合至具有現(xiàn)存計(jì)算機(jī)固件的計(jì)算機(jī)固件容量。如此一來(lái),固件影像檔可以包括固件模塊以及要被整合至計(jì)算機(jī)固件和/或計(jì)算機(jī)固件容量的檔案系統(tǒng)或邏輯結(jié)構(gòu)。

      在步驟404,可基于安全的理由來(lái)簽章固件映像檔。在一些例子中,可對(duì)固件映像檔執(zhí)行雜湊函數(shù)(hash function,例如:MD5或SHA)以取得信息摘要。在一些例子中,為了更進(jìn)一步的安全,此信息摘要可通過一加密金鑰來(lái)加密以形成加密后的信息摘要。

      在步驟408,驗(yàn)證簽章后的固件映像檔。在一些例子中,此驗(yàn)證的程序可包括從簽章后的固件映像檔擷取出內(nèi)容,對(duì)此擷取出的部分執(zhí)行相同的雜湊函數(shù),并且比較上述的信息摘要與雜湊函數(shù)的結(jié)果。在此,如果比較結(jié)果顯示兩者是配對(duì),則表示簽章后的固件映像檔被驗(yàn)證成功,否則表示簽章后的固件映像檔沒有被驗(yàn)證成功而會(huì)被視為未授權(quán)。

      如果簽章后的固件映像檔沒有被驗(yàn)證成功,在步驟422可拒絕更新。另一方面,如果簽章后的固件映像檔被驗(yàn)證成功,在步驟410中,固件映像檔會(huì)被整合至計(jì)算機(jī)固件。例如,可從簽章后的固件映像檔中擷取出固件映像檔,并且將此固件映像檔整合至用來(lái)存放計(jì)算機(jī)固件的計(jì)算機(jī)固件容量中所建立的用戶固件容量。在一些例子中,固件映像檔可包括計(jì)算機(jī)固件容量中用戶固件容量的對(duì)應(yīng)版本,因此固件映像檔可以被整合至計(jì)算機(jī)固件中的用戶固件容量。當(dāng)將固件映像檔整合至計(jì)算機(jī)固件時(shí),在計(jì)算機(jī)固件中的用戶固件容量可被擦除,由此將固件檔案和/或模塊整合至計(jì)算機(jī)固件中的固件映像檔。

      在步驟412,固件映像檔可從計(jì)算機(jī)固件中被載入。此固件映像檔可在系統(tǒng)的啟動(dòng)程序期間或被視為啟動(dòng)程序的一部分而被載入。在步驟414,比較此固件映像檔與計(jì)算機(jī)固件中的固件檔案和/或模塊,由此判斷是否固件映像檔具有對(duì)應(yīng)的識(shí)別符,其是配對(duì)到計(jì)算機(jī)固件中任意其他的固件檔案和/或模塊的識(shí)別符。換句話說(shuō),可檢查固件映像檔的識(shí)別符和在計(jì)算機(jī)固件中其他固件檔案或模塊的識(shí)別符,由此判斷此固件映像檔是否為其余固件檔案或模塊中任何一個(gè)的復(fù)本。配對(duì)的識(shí)別符表示固件映像檔是新的固件檔案或模塊,或者是對(duì)應(yīng)于計(jì)算機(jī)固件中的現(xiàn)存固件檔案或模塊。

      這些識(shí)別符可以指向任意的屬性、檔案、特性、金鑰、名稱、超數(shù)據(jù)或 資訊,其可以提供對(duì)應(yīng)固件檔案、模塊和/或映像檔的身分。例如在一些例子中,這些識(shí)別符可以是固件檔案或是模塊的總體唯一識(shí)別符。如此一來(lái),固件映像檔的總體唯一識(shí)別符可以與計(jì)算機(jī)固件中現(xiàn)存的固件內(nèi)容的總體唯一識(shí)別符做比較,由此判斷固件映像檔是否已經(jīng)存在于計(jì)算機(jī)固件中。

      在步驟416,如果固件映像檔的識(shí)別符并沒有配對(duì)于計(jì)算機(jī)固件中任意一個(gè)固件檔案模塊的識(shí)別符,將固件映像檔依照一個(gè)適當(dāng)?shù)膱?zhí)行順序放置在計(jì)算機(jī)固件中。換句話說(shuō),計(jì)算機(jī)固件的元件、檔案、模塊和/或驅(qū)動(dòng)程序會(huì)具有正確的執(zhí)行順序,由此闡釋計(jì)算機(jī)固件中不同元件、檔案、模塊和/或驅(qū)動(dòng)程序的相依性。在一些例子中,這些順序或組織可以由一或多個(gè)模塊或驅(qū)動(dòng)程序配置器,例如為預(yù)可擴(kuò)展固件接口(pre-EFI,PEI)/驅(qū)動(dòng)程序執(zhí)行環(huán)境(driver execution environment,DXE)來(lái)執(zhí)行。

      另一方面,如果固件映像檔的識(shí)別符配對(duì)于計(jì)算機(jī)固件中一個(gè)現(xiàn)存固件檔案或模塊對(duì)應(yīng)的識(shí)別符,在步驟418中會(huì)執(zhí)行版本的檢查,由此判斷固件映像檔是否為現(xiàn)存固件檔案或模塊較新的版本。此版本的檢查可以通過以下手段來(lái)執(zhí)行:比較固件檔案或模塊、比較檔案或模塊的識(shí)別符、比較版本的識(shí)別符、比較超數(shù)據(jù)、比較時(shí)間戳記、比較屬性、比較固件內(nèi)容、比較檔名、或比較關(guān)聯(lián)于固件映像檔與現(xiàn)存固件檔案的或模塊的任意其他相關(guān)資訊。

      在執(zhí)行版本檢查以后,如果判斷固件映像檔是現(xiàn)存固件檔案或模塊的新版本,在步驟420中,固件映像檔可替換計(jì)算機(jī)固件中的現(xiàn)存固件檔案或模塊?;蛘撸诓襟E422可結(jié)束更新。

      在一些例子中,系統(tǒng)100可以在執(zhí)行計(jì)算機(jī)固件期間和/或在啟動(dòng)程序期間執(zhí)行任意數(shù)目的步驟402~422。例如,系統(tǒng)100可以在系統(tǒng)100的啟動(dòng)程序期間執(zhí)行一個(gè)或多個(gè)步驟402~422,并且在流程圖400的機(jī)制完成以后回到啟動(dòng)程序和/或固件的電力開啟自我測(cè)試。如此一來(lái),系統(tǒng)100可以在啟動(dòng)程序期間動(dòng)態(tài)地將新模塊整合至計(jì)算機(jī)固件和/或替換計(jì)算機(jī)固件中現(xiàn)存的模塊。在一些例子中,系統(tǒng)100在開機(jī)時(shí)動(dòng)態(tài)地載入且執(zhí)行從固件映像檔取得的模塊。實(shí)際上,系統(tǒng)100可以在將系統(tǒng)100的控制從計(jì)算機(jī)固件交付至操作系統(tǒng)或啟動(dòng)載入器之前執(zhí)行任意數(shù)目的步驟402~422。

      圖5繪示了在計(jì)算機(jī)固件容量302與系統(tǒng)管理者502之間互動(dòng)的流程的示意圖500。系統(tǒng)管理者502可以是管理模塊或是固件接口。例如,管理模塊可以是用于存取系統(tǒng)管理功能的管理接口或環(huán)境,例如為控制臺(tái)等。然而, 在一些實(shí)施例中,系統(tǒng)管理者502可以是在遠(yuǎn)端裝置(例如為遠(yuǎn)端伺服器)上的管理模塊或應(yīng)用程序。

      系統(tǒng)管理者502可以將模塊加入至用戶固件容量304(步驟504)。固件模塊可以為新的模塊或者是計(jì)算機(jī)固件容量302中現(xiàn)存模塊的替換/更新。如先前解釋的,用戶固件容量304可以包括檔案系統(tǒng)、檔案、容量和/或建立用來(lái)將固件模塊和/或檔案整合至計(jì)算機(jī)固件容量302的印象檔,其中計(jì)算機(jī)固件容量302包含有計(jì)算機(jī)固件。

      計(jì)算機(jī)固件容量302中的計(jì)算機(jī)固件接下來(lái)可以配置在固件模塊304中的模塊(步驟506)。在一些例子中,基本輸入輸出系統(tǒng)(BIOS)或是統(tǒng)一可擴(kuò)展固件接口(UEFI)元件可以配置在用戶固件容量304中的模塊。例如,這些在用戶固件容量304中的模塊可以由預(yù)可擴(kuò)展固件接口(PEI)初始化和/或關(guān)聯(lián)于統(tǒng)一可擴(kuò)展固件接口(UEFI)平臺(tái)初始化(platform initialization,PI)規(guī)格的驅(qū)動(dòng)程序執(zhí)行環(huán)境(DXE)配置器來(lái)配置。

      接下來(lái),系統(tǒng)100可以動(dòng)態(tài)地載入并執(zhí)行模塊(步驟508)。例如,模塊可以在系統(tǒng)100的啟動(dòng)程序期間,或者是被當(dāng)作為啟動(dòng)程序的一部份而被載入并啟動(dòng)。在載入并執(zhí)行模塊以后,系統(tǒng)100可以回到啟動(dòng)程序(步驟510)。在此,控制可以交還給計(jì)算機(jī)固件,已完成啟動(dòng)程序和/或電力開啟自我測(cè)試,或者是將控制交給操作系統(tǒng)或啟動(dòng)載入器。

      圖6繪示了邏輯固件裝置600的范例。邏輯固件裝置600可包括固件容量604~608以儲(chǔ)存關(guān)聯(lián)于某一給定裝置的計(jì)算機(jī)固件的固件內(nèi)容。每個(gè)固件容量604~608可表示為儲(chǔ)存庫(kù),其是根據(jù)統(tǒng)一可擴(kuò)展固件接口(UEFI)平臺(tái)初始化(PI)規(guī)格來(lái)儲(chǔ)存數(shù)據(jù)和/或程序碼。然而,在其他的實(shí)施例中,每個(gè)固件容量604~608可以是根據(jù)其他的固件平臺(tái)或是規(guī)格(包括了未來(lái)的固件平臺(tái)或規(guī)格),例如為基本輸入輸出系統(tǒng)或任意其他的固件平臺(tái)或規(guī)格。

      每個(gè)固件容量604~608可以組織在一個(gè)檔案系統(tǒng)當(dāng)中。如此一來(lái),每一個(gè)固件容量604~608的儲(chǔ)存單位為可以是一個(gè)檔案。

      用戶固件容量604可包括一個(gè)固件容量,其是建立來(lái)讓用戶或裝置可以配置固件檔案和/或模塊、替換或更新現(xiàn)存固件檔案和/或模塊等。因此用戶固件容量604可以讓固件檔案和/或模塊被整合至邏輯固件容量602中的計(jì)算機(jī)固件,而不需要擦除在邏輯固件容量602中全部的計(jì)算機(jī)固件。

      驅(qū)動(dòng)程序執(zhí)行環(huán)境(DXE)固件容量606可包括一固件容量,其是用來(lái)儲(chǔ) 存驅(qū)動(dòng)程序執(zhí)行環(huán)境元件、模塊、檔案和/或統(tǒng)一可擴(kuò)展固件接口(UEFI)的各階段。例如,驅(qū)動(dòng)程序執(zhí)行環(huán)境固件容量606可包括在以統(tǒng)一可擴(kuò)展固件接口為基礎(chǔ)的計(jì)算機(jī)固件中任意的DXE驅(qū)動(dòng)程序、配置器和/或模塊。

      預(yù)可擴(kuò)展固件接口(PEI)固件容量608可包括一固件容量,用來(lái)儲(chǔ)存預(yù)可擴(kuò)展固件接口元件、模塊、檔案和/或統(tǒng)一可擴(kuò)展固件接口(UEFI)的各階段。例如,預(yù)可擴(kuò)展固件接口固件容量608可包括在以統(tǒng)一可擴(kuò)展固件接口為基礎(chǔ)的計(jì)算機(jī)固件中任意的PEI驅(qū)動(dòng)程序、配置器和/或模塊。

      圖7繪示了用來(lái)更新計(jì)算機(jī)固件的示范性程序700的示意圖。在系統(tǒng)上的計(jì)算機(jī)固件模塊702可比較用戶固件容量604與邏輯固件容量606~608。計(jì)算機(jī)固件模塊702指的可以是給定系統(tǒng)上的計(jì)算機(jī)固件,或者是在給定系統(tǒng)中一個(gè)或多個(gè)特定的模塊、功能、檔案或單元。例如,在一些實(shí)施例中,計(jì)算機(jī)固件模塊702可以是在統(tǒng)一可擴(kuò)展固件接口平臺(tái)或環(huán)境中的可擴(kuò)展固件接口和/或驅(qū)動(dòng)程序執(zhí)行環(huán)境配置器。在其他的實(shí)施例中,計(jì)算機(jī)固件模塊702可以是給定系統(tǒng)的基本輸入輸出系統(tǒng)。

      在用戶固件容量604與邏輯固件容量606~608的比較中,計(jì)算機(jī)固件模塊702可比較用戶固件容量604中任意的內(nèi)容(例如為模塊或是檔案)與邏輯固件容量606~608中任意的內(nèi)容。計(jì)算機(jī)固件模塊702可以比較用戶固件容量604與邏輯固件容量606~608,由此判斷用戶固件容量604和/或其中任意的內(nèi)容是否配對(duì)至邏輯固件容量606~608和/或其中任意的內(nèi)容。

      為了判斷用戶固件容量604是否配對(duì)至邏輯固件容量606~608,在步驟704中,計(jì)算機(jī)固件模塊702可檢查用戶固件容量604與邏輯固件容量606~608是否擁有配對(duì)或重復(fù)的識(shí)別符。這些識(shí)別符可以是標(biāo)簽(tag)、標(biāo)記(label)、屬性或資訊,其可以識(shí)別出對(duì)應(yīng)的固件容量604~608和/或在每一個(gè)固件容量604~608任意的模塊或檔案。例如,這些識(shí)別符可以是關(guān)聯(lián)于在固件容量604~608中每一個(gè)模塊或檔案的總體唯一識(shí)別符。在此,計(jì)算機(jī)固件模塊702可以比較用戶固件容量604中任意特定模塊或檔案的總體唯一識(shí)別符,以和邏輯固件容量604~608中模塊或檔案的總體唯一識(shí)別符。通過檢查這些識(shí)別符,計(jì)算機(jī)固件模塊702可判斷用戶固件容量604或其中任意的內(nèi)容是否配對(duì)于(及相同或等同于)邏輯固件容量604~608或其中任意的容量。

      在步驟706,如果用戶固件容量604沒有配對(duì)至邏輯固件容量606~608或其他任意的內(nèi)容,計(jì)算機(jī)固件模塊702可以將用戶固件容量604加入或整 合至邏輯固件容量606~608或是其他關(guān)連于給定系統(tǒng)的計(jì)算機(jī)固件的其他邏輯容量。在一些例子中,在步驟706中,計(jì)算機(jī)固件模塊702可以將用戶固件容量604加入或整合至計(jì)算機(jī)固件(例如,加入或整合至任意的邏輯固件容量606~608)而不擦除關(guān)聯(lián)于邏輯固件容量606~608的計(jì)算機(jī)固件。

      在步驟708,如果用戶固件容量604沒有配對(duì)至任意的邏輯固件容量606~608,計(jì)算機(jī)固件模塊702在步驟708中會(huì)檢查用戶固件容量604是否為任意一個(gè)邏輯固件容量606~608的新版本。例如,計(jì)算機(jī)固件模塊702可以判斷用戶固件容量604是否為邏輯固件容量606~608的新版本或者用戶固件容量604是否包括一個(gè)或多個(gè)模塊,其是邏輯固件容量606~608中一個(gè)或多個(gè)模塊的新版本。

      如果用戶固件容量604并不是任意一個(gè)邏輯固件容量606~608的新版本,在步驟710中,計(jì)算機(jī)固件模塊702可略過將用戶固件容量604整合至邏輯固件容量606~608的步驟,或者結(jié)束程序700。

      另一方面,如果用戶固件容量604是任意一個(gè)邏輯固件容量606~608的新版本,在步驟714中,計(jì)算機(jī)固件模塊702可以將邏輯固件容量606~608中現(xiàn)存版本的用戶固件容量替換為新模塊(即用戶固件容量604)。在一些例子中,在步驟712中計(jì)算機(jī)固件模塊702可以替換現(xiàn)存的版本而不擦除關(guān)聯(lián)于邏輯固件容量606~608的計(jì)算機(jī)固件。

      在以上對(duì)于程序700關(guān)于用戶固件容量604與邏輯固件容量606~608的描述中,本領(lǐng)域具有通常知識(shí)者當(dāng)可理解程序700中任意的步驟或概念可以執(zhí)行于任意特定的固件模塊或檔案而不是容量,或者是執(zhí)行于任意特定的固件模塊或檔案再加上容量。例如,步驟704、708可以被實(shí)施為檢查用戶固件容量604與邏輯固件容量606~608中一個(gè)或多個(gè)模塊是否有重復(fù)的識(shí)別符或比較這些模塊的版本。并且,步驟706、712可以被實(shí)施加入、整合或替換給定系統(tǒng)中計(jì)算機(jī)固件特定的模塊或檔案。換言之,步驟702~712可以執(zhí)行于所有的固件容量604~608或是固件容量604~608中特定的模塊或檔案。

      在教示了基本的系統(tǒng)元件與概念以后,現(xiàn)在開始教示圖8與圖9中示范性的方法實(shí)施例。為了清楚起見,圖8中的方法是以系統(tǒng)100(如圖1所示)來(lái)描述,其中系統(tǒng)100是用來(lái)實(shí)踐此方法。圖9的方法是以系統(tǒng)210與遠(yuǎn)端裝置(以下稱伺服器)208(如圖2所示)來(lái)描述,其中系統(tǒng)210與伺服器208是用來(lái)實(shí)踐此方法。在此概述的步驟是示范性的,并且在實(shí)施這些步驟時(shí)可以 對(duì)某些步驟進(jìn)行排除、增加、修改或其組合等動(dòng)作。

      圖8繪示了用于更新計(jì)算機(jī)固件148的示范性方法800。在此,系統(tǒng)100可更新(例如增加、安裝、替換、移除或整合固件內(nèi)容)計(jì)算機(jī)固件148,而不擦除整個(gè)計(jì)算機(jī)固件148。在一些實(shí)施例中,系統(tǒng)100可以在計(jì)算機(jī)固件容量中產(chǎn)生用戶固件容量,其中計(jì)算機(jī)固件容量包含計(jì)算機(jī)裝置在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件(步驟802)。此用戶固件容量可包括例如檔案系統(tǒng)、邏輯容量、檔案、模塊、映像檔、軟件包(package)或任意其他的內(nèi)容或儲(chǔ)存單元。并且系統(tǒng)100所使用的計(jì)算機(jī)固件可包括在啟動(dòng)程序期間或之前裝置所使用的任意類型的固件。例如,計(jì)算機(jī)固件可包括基本輸入輸出系統(tǒng)、統(tǒng)一可擴(kuò)展固件接口固件、若任意其他類型的固件和/或固件接口。啟動(dòng)程序可包括用來(lái)測(cè)試、偵測(cè)和/或啟動(dòng)硬件元件的程序;載入系統(tǒng)100的設(shè)置設(shè)定,例如為效能和硬件的設(shè)置設(shè)定;載入驅(qū)動(dòng)程序,例如為預(yù)可擴(kuò)展固件接口和/或驅(qū)動(dòng)程序執(zhí)行環(huán)境驅(qū)動(dòng)程序;將系統(tǒng)100的控制交給操作系統(tǒng)或啟動(dòng)載入器;以及其他步驟。

      系統(tǒng)100可以取得固件檔案,此固件檔案是用以更新計(jì)算機(jī)裝置在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件(步驟804)。例如,此固件檔案可包括一個(gè)或多個(gè)模塊、檔案、容量(例如用戶固件、只讀存儲(chǔ)器或邏輯容量)、檔案系統(tǒng)、映像檔、軟件包等。并且,固件檔案可以由系統(tǒng)100來(lái)產(chǎn)生、編譯或建立。然而,在一些例子中,為了檢查固件檔案和/或?qū)⒐碳n案整合至系統(tǒng)100的計(jì)算機(jī)固件中,固件檔案可以由不同的系統(tǒng)(例如為伺服器)來(lái)產(chǎn)生、編譯或建立,并且接下來(lái)被系統(tǒng)100所接收。

      接下來(lái),系統(tǒng)100可以比較固件檔案與計(jì)算機(jī)固件容量的內(nèi)容(步驟806)。例如,系統(tǒng)可以比較上述的固件檔案與計(jì)算機(jī)固件容量中任意固件檔案(包括任意的模塊或容量)的屬性、識(shí)別符(例如總體唯一識(shí)別符)、標(biāo)記、超數(shù)據(jù)或內(nèi)容,由此判斷上述的固件檔案是否已經(jīng)安裝或整合至計(jì)算機(jī)固件。在一些例子中,在上述比較后如果系統(tǒng)100判斷固件檔案已經(jīng)存在或整合至計(jì)算機(jī)固件,則系統(tǒng)100可執(zhí)行版本檢查以判斷上述的固件檔案是否為計(jì)算機(jī)固件中現(xiàn)存對(duì)應(yīng)的固件檔案的新版本。在此,系統(tǒng)100可以識(shí)別固件檔案與計(jì)算機(jī)固件中任何一個(gè)現(xiàn)存固件檔案的版本,由此判斷哪一個(gè)固件檔案的版本較新。如果系統(tǒng)100判斷上述的固件檔案是計(jì)算機(jī)固件中對(duì)應(yīng)的現(xiàn)存固件檔案的新版本,則系統(tǒng)100可執(zhí)行如以下解釋的步驟808。

      另一方面,如果系統(tǒng)100判斷上述的固件檔案是計(jì)算機(jī)固件中對(duì)應(yīng)的現(xiàn)存固件檔案的新版本或舊版本,則系統(tǒng)100可略過步驟808。然而,在一些例子中,在判斷上述的固件檔案是計(jì)算機(jī)固件中對(duì)應(yīng)的現(xiàn)存固件檔案的新版本或舊版本后,系統(tǒng)100仍然可以繼續(xù)執(zhí)行步驟808。例如,系統(tǒng)100可以想要替換計(jì)算機(jī)固件中損壞的固件檔案,因此即使計(jì)算機(jī)固件中一個(gè)或多個(gè)固件檔案是相同于(即相同檔案或相同版本)上述的固件檔案,系統(tǒng)100也可以繼續(xù)執(zhí)行步驟808。在另一個(gè)例子中,系統(tǒng)100可能想要將計(jì)算機(jī)固件中一個(gè)或多個(gè)固件檔案還原成較舊的版本(例如,如果固件檔案的更新與計(jì)算機(jī)固件造成了問題或錯(cuò)誤),因此即使計(jì)算機(jī)固件中一個(gè)或多個(gè)固件檔案具有較新的版本,也可以繼續(xù)步驟808。

      根據(jù)上面的比較結(jié)果,系統(tǒng)100會(huì)將固件檔案儲(chǔ)存在計(jì)算機(jī)固件容量中的用戶固件容量,而不擦除計(jì)算機(jī)裝置在啟動(dòng)程序期間所使用的計(jì)算機(jī)固件的整體部分(步驟808)。系統(tǒng)100將固件檔案加入、安裝或載入以成為計(jì)算機(jī)固件的新模塊、檔案或元件,或者是將計(jì)算機(jī)固件中現(xiàn)存的模塊、檔案或元件替換為固件檔案,并且這些步驟都不會(huì)擦除整個(gè)計(jì)算機(jī)固件。此外,系統(tǒng)100可以在系統(tǒng)100啟動(dòng)時(shí),在啟動(dòng)程序期間,動(dòng)態(tài)地載入、執(zhí)行或儲(chǔ)存固件檔案。更進(jìn)一步來(lái)說(shuō),固件檔案可以永久的被儲(chǔ)存,使得在系統(tǒng)100關(guān)機(jī)和/或重開機(jī)以后固件檔案依然是計(jì)算機(jī)固件的一部分。然而,在一些實(shí)施例中,固件檔案可以暫時(shí)地儲(chǔ)存在計(jì)算機(jī)固件容量中,使得固件檔案在啟動(dòng)程序期間被載入(或固件檔案為啟動(dòng)程序的一部分),但在系統(tǒng)100關(guān)機(jī)和/或重開機(jī)以后固件檔案不會(huì)維持在計(jì)算機(jī)固件中。

      系統(tǒng)100可以用內(nèi)頻帶(in band)或外頻帶(out-of-band)的方式來(lái)儲(chǔ)存固件檔案。當(dāng)以外頻帶的方式來(lái)儲(chǔ)存固件檔案時(shí),系統(tǒng)100可以使用專屬的通道、裝置、控制器或環(huán)境(例如基板管理控制器)來(lái)儲(chǔ)存固件檔案。例如,基板管理控制器可以基于從遠(yuǎn)端伺服器接收的指令來(lái)將固件檔案儲(chǔ)存在系統(tǒng)100中。在一些例子中,即使系統(tǒng)100并沒有開機(jī)或者系統(tǒng)100中的操作系統(tǒng)并沒有被安裝、執(zhí)行或不具有功能,固件檔案依然可以用外頻帶的方式來(lái)儲(chǔ)存。另一方面,當(dāng)以內(nèi)頻帶的方式儲(chǔ)存固件檔案,系統(tǒng)100可以在操作系統(tǒng)被啟動(dòng)以后再儲(chǔ)存固件檔案。例如,在系統(tǒng)100已經(jīng)啟動(dòng)以后,可根據(jù)系統(tǒng)100從遠(yuǎn)端裝置接收到的指令來(lái)將固件檔案儲(chǔ)存在系統(tǒng)100中。

      在一些實(shí)施例中,系統(tǒng)100可以在啟動(dòng)程序期間執(zhí)行上述方法800中的 一個(gè)或多個(gè)步驟。

      當(dāng)在步驟808中將固件檔案儲(chǔ)存在用戶固件容量時(shí),固件檔案也可以儲(chǔ)存在關(guān)聯(lián)于計(jì)算機(jī)固件的其他容量,而不只是將固件檔案儲(chǔ)存在用戶固件容量,或者是用來(lái)代替將固件檔案儲(chǔ)存在用戶固件容量的步驟。例如,在一些實(shí)施例中,固件檔案可以儲(chǔ)存在關(guān)聯(lián)于計(jì)算機(jī)固件的不同固件容量,例如為圖6所示的邏輯容量606~608,其中固件檔案也可以是也可以不是儲(chǔ)存在用戶固件容量中。

      為了安全的目的,系統(tǒng)100可以實(shí)施加密、簽章和/或驗(yàn)證或授權(quán)機(jī)制以保護(hù)固件檔案和/或計(jì)算機(jī)固件。例如,在將固件檔案加入或儲(chǔ)存至計(jì)算機(jī)固件容量之前,或是在將現(xiàn)存固件檔案替換或更新為固件檔案之前,系統(tǒng)100可以簽章和/或加密固件檔案,并且對(duì)此簽章或加密后的固件檔案執(zhí)行驗(yàn)證獲授權(quán)的步驟。在一些例子中,系統(tǒng)100可以先通過對(duì)固件檔案執(zhí)行雜湊函數(shù)(例如MD5或SHA)來(lái)產(chǎn)生信息摘要。此外,系統(tǒng)100可以選擇性地以加密金鑰來(lái)加密此信息摘要,此金鑰例如為非對(duì)稱加密的私鑰或者是對(duì)稱加密的金鑰。接下來(lái),系統(tǒng)100可將簽章后和/或加密后的信息摘要整合至固件檔案中以產(chǎn)生簽章后的固件檔案。

      為了驗(yàn)證或授權(quán)簽章后的固件檔案,系統(tǒng)100可以從簽章后的固件檔案擷取出固件檔案與信息摘要。如果此信息摘要是先前加密的那一個(gè),則系統(tǒng)100可以解密金鑰(例如對(duì)稱式加密所使用的金鑰,或者是非對(duì)稱加密中的公開金鑰)來(lái)解密信息摘要。接下來(lái),用來(lái)簽章固件檔案的雜湊函數(shù),可用來(lái)執(zhí)行在從簽章后的固件檔案中擷取的固件檔案,并且簽章后的結(jié)果可以和信息摘要(從簽章后的固件檔案擷取并選擇性地解密)作比較。如果比較結(jié)果顯示為配對(duì),則表示固件檔案被驗(yàn)證或授權(quán)成功。如此一來(lái),系統(tǒng)100接下來(lái)可以使用固件檔案來(lái)更新或修改計(jì)算機(jī)固件。另一方面,如果比較結(jié)果顯示兩者不配對(duì),則表示固件檔案沒有被驗(yàn)證或授權(quán)成功,因此并不會(huì)系統(tǒng)100用來(lái)更新或修改計(jì)算機(jī)固件。通過判斷出兩個(gè)固件檔案不配對(duì)的比較結(jié)果,系統(tǒng)100可以辨認(rèn)出潛在的妥協(xié)或者是駭客的嘗試,并且可以避免實(shí)施了未被授權(quán)的固件檔案。

      以上描述了被相同系統(tǒng)(即系統(tǒng)100)執(zhí)行的步驟(包括步驟802~808),但在一些實(shí)施例中,一些步驟802~808也可以被不同或遠(yuǎn)端的裝置(例如伺服器)來(lái)執(zhí)行。實(shí)際上,本領(lǐng)域技術(shù)人員當(dāng)可理解,在此描述的一個(gè)或多個(gè)步 驟可以被一或多個(gè)不同的裝置來(lái)執(zhí)行。例如,在一些例子中,固件檔案可以被某一個(gè)裝置(例如伺服器)來(lái)簽章,而被另一個(gè)裝置(例如系統(tǒng)100)來(lái)驗(yàn)證或授權(quán)。事實(shí)上,為了清楚與解釋起見,在此描述的步驟是由相同的系統(tǒng)來(lái)執(zhí)行,其是一個(gè)非限制性的例子。再次申明的是,這里也可以考慮使用步驟與裝置的其他組合。

      圖9繪示了用于保護(hù)固件檔案的示范性方法900。在此,伺服器208可先簽章固件檔案以產(chǎn)生信息摘要(message digest)(步驟902)。伺服器208可以對(duì)固件檔案執(zhí)行一個(gè)函數(shù),例如為雜湊函數(shù)(例如MD5、SHA等)以產(chǎn)生信息摘要。

      伺服器208可以加密信息摘要(步驟904)。伺服器208可以使用任意的加密機(jī)制來(lái)加密信息摘要。例如,伺服器208可以以一金鑰,基于對(duì)稱式或非對(duì)稱式的加密機(jī)制來(lái)加密信息摘要。在一些實(shí)施例中,伺服器208可以以私鑰來(lái)加密信息摘要。接下來(lái),伺服器208可以將加密后的信息摘要整合至包含固件檔案的用戶固件容量(步驟906)。

      接下來(lái),系統(tǒng)210可以從用戶固件容量中擷取加密后的信息摘要以及固件檔案(步驟908)。例如,系統(tǒng)210從伺服器208(或任意其他的裝置)接收用戶固件容量,并且擷取其中的內(nèi)容。在一些例子中,系統(tǒng)210可以通過網(wǎng)絡(luò)202從伺服器208接收用戶固件容量。接下來(lái)系統(tǒng)210可以解密從用戶固件容量中擷取的信息摘要(步驟910),并且簽章從用戶固件容量擷取的固件檔案以產(chǎn)生第二信息摘要(步驟912)。系統(tǒng)210可以使用雜湊函數(shù)來(lái)簽章所擷取的固件檔案,此雜湊函數(shù)是相同于在步驟902用來(lái)簽章固件檔案的雜湊函數(shù)。此步驟會(huì)產(chǎn)生第二信息摘要(即簽章后的固件檔案),其可與步驟902所產(chǎn)生的信息摘要作比較,由此判斷固件檔案的真實(shí)性或者是偵測(cè)固件檔案的操控或修改。

      接下來(lái),系統(tǒng)210可授權(quán)此固件檔案(步驟914)。系統(tǒng)210可以通過比較步驟902所產(chǎn)生的信息摘要和第二信息摘要來(lái)授權(quán)固件檔案。如果步驟902所產(chǎn)生的信息摘要和第二信息摘要配對(duì),則系統(tǒng)210可生效或授權(quán)固件檔案?;蛘?,如果步驟902所產(chǎn)生的信息摘要和第二信息摘要不配對(duì),則系統(tǒng)可使固件檔案失效或?qū)⒅暈闆]有授權(quán)。在此,系統(tǒng)210可以忽略或丟棄沒有生效或授權(quán)的固件檔案。

      在以上配合圖9對(duì)于各個(gè)步驟(包括步驟902~914)的描述中,是由不同 的系統(tǒng)(即伺服器208與系統(tǒng)210)來(lái)執(zhí)行這些步驟,但在一些實(shí)施例中,一些步驟也可以由相同的裝置(例如系統(tǒng)210)來(lái)執(zhí)行。并且,在其他實(shí)施例中,一些步驟也可以被其他額外的裝置來(lái)執(zhí)行,例如為另一個(gè)伺服器或集中式的系統(tǒng)。同樣地,為了清楚與解釋的目的,步驟902~914是與系統(tǒng)210與伺服器208一起解釋。

      為了清楚的解釋,在一些例子中本技術(shù)可以表示為包括個(gè)別的功能方塊,其中一些功能方塊可包括裝置、裝置元件、由軟件實(shí)施的方法中的步驟或程序、或者是硬件與軟件的結(jié)合。

      在一些實(shí)施例中,這些計(jì)算機(jī)可讀取儲(chǔ)存裝置、媒體與存儲(chǔ)器可包括纜線或無(wú)線信號(hào),其中具有位元串。然而,在此提到的非暫態(tài)計(jì)算機(jī)可讀取儲(chǔ)存媒體明確地排除了例如為能量、載波、電磁波以及信號(hào)本身的媒體。

      上述例子的方法可以利用計(jì)算機(jī)可執(zhí)行指令來(lái)實(shí)施,這些指令可以儲(chǔ)存在計(jì)算機(jī)可讀取媒體或者可以從計(jì)算機(jī)可讀取媒體中取得。例如,這些指令可包括指令與數(shù)據(jù),其造成或設(shè)定通用目的的計(jì)算機(jī)、特殊目的的計(jì)算機(jī)或特殊目的的處理裝置來(lái)執(zhí)行特定的功能或功能組。所使用的計(jì)算機(jī)資源的一部分也可以通過網(wǎng)絡(luò)來(lái)存取。例如,這些計(jì)算機(jī)可執(zhí)行指令可以是數(shù)字檔、例如為組合語(yǔ)言的中間(intermediate)格式指令、固件、或原始碼。計(jì)算機(jī)可讀取媒體的例子包括磁盤、光盤、快閃存儲(chǔ)器、與非易失性存儲(chǔ)器一起提供的通用串列總線裝置、連接至網(wǎng)絡(luò)的儲(chǔ)存裝置等,而計(jì)算機(jī)可讀取媒體可用來(lái)儲(chǔ)存指令、使用的資訊和/或在上述例子的方法中所產(chǎn)生的資訊。

      根據(jù)上述發(fā)明用來(lái)實(shí)施方法的裝置可包括硬件、固件和/或軟件,并且可以采用各種形狀因子。這些形狀因子的一般性例子包括筆記型計(jì)算機(jī)、智能型手機(jī)、具有小形狀因子的個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字化助理、機(jī)架式設(shè)備或是獨(dú)立設(shè)備等等。在此所描述的功能可以實(shí)施為周邊裝置或是外接卡。在更進(jìn)一步的例子中,這些功能也可以伴隨著不同的芯片而實(shí)施在電路板上,或者是實(shí)施在單一裝置中的不同處理器上。

      這些指令、用來(lái)傳送指令的媒體、用來(lái)執(zhí)行指令的計(jì)算資源、以及其他用來(lái)支持這些計(jì)算資源的結(jié)構(gòu)都是用來(lái)提供所述功能的手段。

      雖然各種例子與其他資訊已被用來(lái)解釋專利申請(qǐng)范圍中的觀點(diǎn),但本領(lǐng)域技術(shù)人員當(dāng)使用這些例子來(lái)完成各式各樣的實(shí)施,在這些例子中特定的特征或安排都不應(yīng)用來(lái)限制權(quán)利要求。更進(jìn)一步來(lái)說(shuō),雖然一些標(biāo)的已經(jīng)用特 定的語(yǔ)言來(lái)解釋為特定的結(jié)構(gòu)性特征和/或方法步驟,但可理解的是權(quán)利要求中定義的標(biāo)的并不限于所描述的特征或動(dòng)作。例如,這些功能可以分散在不同的元件或由不同的元件來(lái)執(zhí)行,這些元件可以不同于上述的元件。相反的是,這些特征與步驟是被解釋為權(quán)利要求中系統(tǒng)與方法的元件的例子。權(quán)利項(xiàng)語(yǔ)言“一集合中的至少其中之一”指的是此集合中滿足權(quán)利要求的一個(gè)或多個(gè)成員。有形的計(jì)算機(jī)可讀取儲(chǔ)存媒體、計(jì)算機(jī)可讀取儲(chǔ)存裝置,或計(jì)算機(jī)可讀取存儲(chǔ)器裝置明確地排除了例如為暫態(tài)波形、能量、載波、電磁波以及信號(hào)本身的媒體。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1