專利名稱:不停止系統(tǒng)運(yùn)行而使用系統(tǒng)管理程序環(huán)境更新設(shè)備驅(qū)動器或固件的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制對外圍設(shè)備的訪問的系統(tǒng)和方法。更詳細(xì)地,本發(fā)明涉及 共享外圍設(shè)備和計(jì)算機(jī)系統(tǒng)之間的機(jī)密以保護(hù)外圍設(shè)備的使用的系統(tǒng)和方法。
背景技術(shù):
計(jì)算機(jī)虛擬化軟件是在單個(gè)計(jì)算機(jī)系統(tǒng)上運(yùn)行多個(gè)操作系統(tǒng)的日益流行 的方法。虛擬化具有許多優(yōu)點(diǎn)。這些優(yōu)點(diǎn)包括允許機(jī)構(gòu)合并計(jì)算機(jī)系統(tǒng)(例如 服務(wù)器),并且增加服務(wù)器基礎(chǔ)設(shè)施的規(guī)模而不用購買額外的硬件。減少機(jī)構(gòu) 需要的實(shí)體計(jì)算機(jī)系統(tǒng)的機(jī)器數(shù)目導(dǎo)致改善的能量保存,并且可以降低機(jī)構(gòu)的
水電費(fèi)(utility bill )。虛擬化也改善機(jī)器的管理,因?yàn)橥ǔ碚f管理賦存(host) 多個(gè)操作系統(tǒng)的一個(gè)實(shí)體機(jī)器比管理每個(gè)賦存不同的操作系統(tǒng)的多個(gè)操作系 統(tǒng)更容易。在虛擬環(huán)境中還可以減少備^f分和恢復(fù)時(shí)間。虛擬化還有助于測試軟 件結(jié)構(gòu),維護(hù)遺留(legacy)軟件應(yīng)用程序,以及減少需要容納機(jī)構(gòu)的實(shí)體計(jì) 算機(jī)系統(tǒng)的物理空間量。在虛擬化提供需要優(yōu)點(diǎn)的同時(shí),它也向機(jī)構(gòu)提出新的 挑戰(zhàn),特別是關(guān)于固件和設(shè)備驅(qū)動器更新。
計(jì)算機(jī)外圍設(shè)備利用固件來操作。例如,DVD播放器使用存儲在它的只 讀存儲器(ROM)中的固件來讀取CD或DVD。為了在例如微軟的Windows 或Linux 操作系統(tǒng)下訪問設(shè)備,使用被稱為"設(shè)備驅(qū)動器"的軟件來使用(控 制)該設(shè)備。設(shè)備驅(qū)動器被安裝在操作系統(tǒng)中并包括允許操作系統(tǒng)使用和控制 該設(shè)備的指令。使用DVD播放器為例,設(shè)備驅(qū)動器允許操作系統(tǒng)來控制DVD 播放器以播放電影,或?qū)⑽募懭氲皆O(shè)備和從設(shè)備中讀取文件。設(shè)備的固件和 設(shè)備驅(qū)動器有時(shí)可能需要為了不同原因而被更新,例如校正固件或設(shè)備驅(qū)動器 中的錯(cuò)誤、改善有效性或設(shè)備的使用、找到設(shè)備發(fā)現(xiàn)的安全易受攻擊性、或許 多其他原因。
虛擬化中的 一個(gè)挑戰(zhàn)是管理這些設(shè)備驅(qū)動器和固件。這個(gè)挑戰(zhàn)是由于以下事實(shí)當(dāng)使用虛擬化軟件時(shí),操作系統(tǒng)不訪問實(shí)體硬件,并且由此當(dāng)需要更新 設(shè)備驅(qū)動器或固件時(shí)沒有識別出。更新固件和/或設(shè)備驅(qū)動器的傳統(tǒng)方法通常 需要在更新變得有效之前重新啟動或關(guān)閉計(jì)算機(jī)系統(tǒng)。因?yàn)樵谔摂M環(huán)境中普通 的計(jì)算機(jī)系統(tǒng)上運(yùn)行多個(gè)操作系統(tǒng),計(jì)算機(jī)系統(tǒng)的關(guān)閉或重新啟動影響^皮賦存 的每個(gè)操作系統(tǒng)。當(dāng)管理虛擬化的計(jì)算環(huán)境時(shí),這是另一個(gè)遇到的挑戰(zhàn)。
發(fā)明內(nèi)容
已經(jīng)發(fā)現(xiàn)使用 一種系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品解決了上述挑戰(zhàn),該系統(tǒng)、 方法和計(jì)算機(jī)程序產(chǎn)品具有由系統(tǒng)管理程序(hypervisor)提供的虛擬環(huán)境。 在該虛擬環(huán)境中, 一個(gè)或多個(gè)客戶操作系統(tǒng)與特權(quán)操作系統(tǒng)(privileged operating system)同時(shí)運(yùn)行。 一個(gè)客戶操作系統(tǒng)識別設(shè)備軟件更新,例如識別 驅(qū)動器或固件更新,對應(yīng)于連接至計(jì)算機(jī)系統(tǒng)的硬件設(shè)備。系統(tǒng)管理程序用于 將設(shè)備軟件更新通知給特權(quán)操作系統(tǒng)。當(dāng)特權(quán)操作系統(tǒng)被通知了該更新時(shí),特 權(quán)操作系統(tǒng)使用 一個(gè)或多個(gè)技術(shù)來拒絕客戶操作系統(tǒng)對設(shè)備的訪問。然后特權(quán) 操作系統(tǒng)更新設(shè)備軟件更新。在已經(jīng)應(yīng)用了設(shè)備軟件更新之后,特權(quán)操作系統(tǒng) 恢復(fù)客戶操作系統(tǒng)和硬件設(shè)備之間的訪問。
在一個(gè)實(shí)施例中,特權(quán)操作系統(tǒng)驗(yàn)證設(shè)備軟件更新的合法性。在這個(gè)實(shí)施 例中,僅當(dāng)設(shè)備軟件更新被成功驗(yàn)證之后才應(yīng)用該設(shè)備軟件更新。在另一個(gè)實(shí) 施例中,通過比較設(shè)備軟件更新的數(shù)字簽名和預(yù)先建立的數(shù)字簽名來執(zhí)行設(shè)備 軟件更新的-瞼證。
在一個(gè)實(shí)施例中,通過識別對應(yīng)于每個(gè)客戶操作系統(tǒng)的一個(gè)或多個(gè)客戶操 作系統(tǒng)的拒絕方法來執(zhí)行拒絕客戶操作系統(tǒng)對識別的訪問。這些拒絕方法包括 啟動設(shè)備的熱插拔(hot unplug )、強(qiáng)制中止一個(gè)或多個(gè)客戶操作系統(tǒng)、停止(stall) 至少一個(gè)客戶操作系統(tǒng)、以及從至少一個(gè)客戶操作系統(tǒng)對設(shè)備的高速緩存請求。
在另一個(gè)實(shí)施例中,在已經(jīng)拒絕了對設(shè)備的訪問之后,使得該設(shè)備脫機(jī)。 在這個(gè)實(shí)施例中,在恢復(fù)客戶操作系統(tǒng)對設(shè)備的訪問之前重新啟動該設(shè)備。
以上所述是概要,并且由此必要地包含簡化、綜述以及細(xì)節(jié)的省略。由此, 本領(lǐng)域的普通技術(shù)人員應(yīng)該理解到概要僅是說明性的,并不用于任何形式的限 制。如僅由權(quán)利要求定義的那樣,本發(fā)明的其他方面、發(fā)明特征以及優(yōu)點(diǎn)即那個(gè)在下面的無限制的詳細(xì)描述中變得明顯。
通過參考以下附圖使得本發(fā)明可以被更好理解,并且其多個(gè)目的、特征和 優(yōu)點(diǎn)對本領(lǐng)域的普通技術(shù)人員來說變得明顯。
圖1是可以執(zhí)行在此描述的方法的數(shù)據(jù)處理系統(tǒng)的框圖2提供了圖1所示的信息處理系統(tǒng)環(huán)境的擴(kuò)展,以說明在此描述的方法
可以在聯(lián)網(wǎng)環(huán)境中操作的多種多樣的信息處理系統(tǒng)上執(zhí)行;
圖3是表示使用系統(tǒng)管理程序來更新驅(qū)動器或固件中使用的不同元件的
元件圖4是表示客戶操作系統(tǒng)、系統(tǒng)管理程序和特權(quán)(privileged)操作系統(tǒng)之 間執(zhí)行以更新驅(qū)動器的步驟的流程圖5是表示由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)執(zhí)行以更新設(shè)備驅(qū)動器的步 驟的流程圖6是表示由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)執(zhí)行以更新固件的步驟的流 程圖7是表示采取的步驟以驗(yàn)證驅(qū)動器或固件更新的正確性的流程圖8是表示由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以拒絕客戶操作系統(tǒng)訪
問正在被更新的設(shè)備的步驟的流程圖9是表示由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以更新設(shè)備的步驟的流
程圖;以及
圖10是表示由特權(quán)^f喿作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以在設(shè)備被更新之后重 新進(jìn)行客戶操作系統(tǒng)對設(shè)備的訪問的步驟的流程圖。
具體實(shí)施例方式
在下面的描述和附圖中結(jié)合了某些特定細(xì)節(jié)以提供本發(fā)明的不同實(shí)施例 的完全理解。然而,為了避免不必要地使本發(fā)明的不同實(shí)施例不清楚,在下面 的描述中沒有結(jié)合通常與計(jì)算和軟件技術(shù)相關(guān)的某些公知細(xì)節(jié)。此外,相關(guān)領(lǐng) 域的普通技術(shù)人員將理解到他們可以實(shí)踐其他實(shí)施例,而不是在下面描述的一 個(gè)或多個(gè)細(xì)節(jié)。最終,當(dāng)參考下面描述中的步驟和順序來描述的不同方法時(shí), 這樣的描述是用于提供本發(fā)明的實(shí)施例的清楚實(shí)施,并且步驟和步驟的順序不應(yīng)該被認(rèn)為實(shí)踐本發(fā)明所必須的。相反,下面的描述是用于提供本發(fā)明的例子 的詳細(xì)描述,并且不應(yīng)該被認(rèn)為限制本發(fā)明本身。此外,任意數(shù)目的變型例可 以落入本發(fā)明的范圍之內(nèi),本發(fā)明的范圍是由附帶的權(quán)牙'j要求書所限定。
在發(fā)明內(nèi)容之后通常是下面的具體實(shí)施方式
,按照需要進(jìn)一步解釋和擴(kuò)展 本發(fā)明的不同方面和實(shí)施例的定義。
具體實(shí)施方式
首先提出了圖1中的計(jì)算環(huán)
境,其適于與本發(fā)明相關(guān)的軟件和/或硬件技術(shù)。圖2示出了聯(lián)網(wǎng)環(huán)境作為基 本計(jì)算機(jī)環(huán)境的擴(kuò)展,以強(qiáng)調(diào)現(xiàn)代計(jì)算技術(shù)可以在多個(gè)分離設(shè)備上執(zhí)行。
圖1示出信息處理系統(tǒng)100,其是能夠執(zhí)行在此描述的計(jì)算操作的計(jì)算機(jī) 系統(tǒng)的簡化例子。信息處理系統(tǒng)100包括一個(gè)或多個(gè)處理器110,其耦合
(couple)至處理器接口總線112。處理器接口總線112將處理器110連接至 北橋(northbridge ) 115,北橋(northbridge ) 115其也被稱為存儲器控制器集 線器(MCH)。北橋115連接至系統(tǒng)存儲器120,并且提供處理器110訪問系 統(tǒng)存儲器的手段。圖形控制器125也連接至北橋115。在一個(gè)實(shí)施例中,使用 PCI高速總線118來將北橋115連接至圖形控制器125。圖形控制器125連接 至顯示設(shè)備130,例如計(jì)算機(jī)監(jiān)視器。
北橋115和南橋135使用總線119彼此連接。在一個(gè)實(shí)施例中,該總線是 直接媒體接口 (DMI)總線,其在北橋115和南橋135之間的每個(gè)方向上以高 速傳遞數(shù)據(jù)。在另一個(gè)實(shí)施例中,外部組件互聯(lián)(PCI)總線用于連接北橋和 南橋。南橋135,也稱為1/0控制器集線器(ICH),是通常實(shí)現(xiàn)以被北橋提供 的能力更低的速度操作的能力的芯片。南橋135通常提供不同總線,用于連接 不同元件。這些總線可以包括PCI和PCI高速總線、ISA總線、系統(tǒng)管理總線
(SM總線或SMB)、低針腳型(LPC)總線。LPC總線通常用于連接低帶寬 設(shè)備,例如引導(dǎo)ROM196和"遺留"1/0設(shè)備(使用"超級I/0"芯片)。"遺 留"I/O設(shè)備(198)可以包括串行和并行端口、鍵盤、鼠標(biāo)、軟盤控制器。 LPC總線也可以用于將南橋135連接至可信任平臺模塊(TPM) 195。在南橋 135中通常包括的其他元件包括直接存儲器訪問(DMA)控制器、可編程中斷 控制器(PIC)、存儲設(shè)備控制器,該存儲設(shè)備控制器使用總線184將南橋135 連接至非易失性存儲設(shè)備185,例如,硬盤驅(qū)動器。
高速卡(ExpressCard) 155是用于將熱可插拔設(shè)備連接至信息處理系統(tǒng)的
ii插槽。高速卡155支持PCI高速和USB連通性,因?yàn)楦咚倏?55使用通用串 行總線(USB )和PCI高速總線來連接至南橋135。南橋135包括USB控制 器140,其向連接至USB的設(shè)備提供USB連通性。這些設(shè)備包括網(wǎng)絡(luò)攝像機(jī) (攝像機(jī))150、紅外(IR)接收器148、提供無線個(gè)人局域網(wǎng)(PAN)的藍(lán) 牙設(shè)備146、鍵盤和觸摸板144以及其他多種USB連接的設(shè)備142,例如鼠標(biāo)、 可移動的非易失性存儲設(shè)備145、調(diào)制解調(diào)器、網(wǎng)卡、ISDN連接器、傳真機(jī)、 打印機(jī)、USB集線器以及許多其他種類的USB連接的設(shè)備。當(dāng)可移動的非易 失性存儲設(shè)備145被顯示為USB連接的設(shè)備,可移動的非易失性存儲設(shè)備145 可以使用不同的接口連接,例如固件接口等。
無線局域網(wǎng)(LAN)設(shè)備175通過PCI或PCI高速總線172連接至南橋 135。 LAN設(shè)備175通常實(shí)現(xiàn)空中調(diào)制技術(shù)的IEEE 802.11標(biāo)準(zhǔn)的一個(gè),空中 調(diào)制技術(shù)均使用相同的協(xié)議在信息處理系統(tǒng)100和另一個(gè)計(jì)算機(jī)系統(tǒng)或設(shè)備 直接進(jìn)行無線通信。光學(xué)存儲設(shè)備190使用串行ATA ( SATA )總線188連接 至南橋135。串行ATA適配器和設(shè)備通過高速串行鏈接來通信。串行ATA總 線也用于將南橋135連接至其他形式的存儲設(shè)備,例如硬盤驅(qū)動器。例如聲卡 的音頻電路160通過總線158連接至南橋135。音頻電路160用于提供功能性, 例如音頻輸入和光學(xué)數(shù)字音頻輸入端口 162、光學(xué)數(shù)字輸出和耳機(jī)插孔164、 內(nèi)置揚(yáng)聲器166以及內(nèi)置麥克風(fēng)168。以太網(wǎng)控制器170使用例如PCI或PCI 高速總線的總線連接至南橋135。以太網(wǎng)控制器170用于通過將信息處理系統(tǒng) 100連接至計(jì)算機(jī)網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、因特網(wǎng)以及其他/>共和專用計(jì) 算機(jī)網(wǎng)絡(luò)。
盡管圖1示出了一個(gè)信息處理系統(tǒng),信息處理系統(tǒng)可以有多種形式。例如, 信息處理系統(tǒng)可以具有臺式機(jī)、服務(wù)器、便攜機(jī)、膝上電腦、筆記本或其他形 式的要素(factor)計(jì)算機(jī)或數(shù)據(jù)處理系統(tǒng)。此外,信息處理系統(tǒng)可以具有其 他形式的要素,例如個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、ATM機(jī)、便攜式電話 設(shè)備、通信設(shè)備或包括處理器和存儲器的其他設(shè)備。
圖1所示并在此描述以提供安全功能的可信任平臺模塊(TPM 195 )只是 硬件安全模塊(HSM, hardware security module )的一個(gè)例子。因此,在此描 述和主張權(quán)利的TPM包括任意類型的HSM,該HSM包括但是不局限于硬件安全設(shè)備,該硬件安全設(shè)備附合可信任的技術(shù)組(TCG)標(biāo)準(zhǔn),并且被稱為"可 信任的平臺模塊(TPM)規(guī)范版本1.2"。 TPM是可以集成到任意數(shù)目的例如 圖2所示的信息處理系統(tǒng)中的硬件安全子系統(tǒng)。
圖2提供圖1所示的信息處理系統(tǒng)環(huán)境的擴(kuò)展,以說明在此描述的方法可 以在聯(lián)網(wǎng)環(huán)境中運(yùn)行的各種不同的信息處理系統(tǒng)上執(zhí)行。信息處理系統(tǒng)的類型 范圍從例如手持計(jì)算機(jī)/移動電話210的小的手持設(shè)備到例如主機(jī)計(jì)算機(jī)270 的主機(jī)系統(tǒng)。手持計(jì)算機(jī)210的例子包括個(gè)人數(shù)字助理(PDA)、個(gè)人娛樂設(shè) 備,例如MP3播放器、便攜電視和光盤播放器。信息處理系統(tǒng)的其他例子包 括筆式或平板電腦220、膝上電腦或筆記本電腦230、工作站240、個(gè)人計(jì)算 機(jī)系統(tǒng)250和服務(wù)器260。在圖2中沒有單獨(dú)示出的其他類型的信息處理系統(tǒng) 由信息處理系統(tǒng)280代表。如圖所示,各種信息處理系統(tǒng)可以使用計(jì)算機(jī)網(wǎng)絡(luò) 200而聯(lián)網(wǎng)??梢杂糜诨ヂ?lián)各種信息處理系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)的類型包括局域網(wǎng) (LAN)、無線局域網(wǎng)(WLAN)、因特網(wǎng)、公共開關(guān)電話網(wǎng)(PSTN)、其他無 線網(wǎng)絡(luò),以及可以用于互聯(lián)信息處理系統(tǒng)的任何其他網(wǎng)絡(luò)拓樸。許多信息處理 系統(tǒng)包括非易失性數(shù)據(jù)存儲(store ),例如硬盤驅(qū)動器和/或非易失性存儲器。 以分離非易失性的數(shù)據(jù)存儲來描述圖2所示的一些信息處理系統(tǒng)(以非易失性 的數(shù)據(jù)存儲265表示服務(wù)器260,以非易失性的數(shù)據(jù)存儲275表示主機(jī)計(jì)算機(jī) 270,以非易失性的數(shù)據(jù)存儲285表示信息處理系統(tǒng)280)。非易失性數(shù)據(jù)存儲 可以是各種信息處理系統(tǒng)外部的元件,或者是信息處理系統(tǒng)內(nèi)部的元件。此外, 可以使用不同技術(shù)在兩個(gè)或多個(gè)信息處理系統(tǒng)之間共享可移動的非易失性存 儲設(shè)備145,例如,通過將可移動的非易失性存儲設(shè)備145連接至信息處理系 統(tǒng)的USB端口或其他連接器。
圖3是表示在使用系統(tǒng)管理程序來更新驅(qū)動器或固件中使用的各種元件 的元件示意圖。選定的計(jì)算機(jī)系統(tǒng)元件300包括驅(qū)動器存儲器310,其存儲用 于從客戶操作系統(tǒng)更新設(shè)備軟件的客戶操作系統(tǒng)安裝代碼316,以及存儲從特 權(quán)操作系統(tǒng)更新設(shè)備軟件的特權(quán)操作系統(tǒng)安裝代碼318。設(shè)備軟件更新315是 用于更新設(shè)備驅(qū)動器和/或設(shè)備固件的軟件。
在計(jì)算機(jī)系統(tǒng)中運(yùn)行的是一個(gè)或多個(gè)客戶操作系統(tǒng)330,例如,Linux 操作系統(tǒng)、微軟的Window 操作系統(tǒng)等等。計(jì)算機(jī)系統(tǒng)上運(yùn)行的還有特權(quán)操作系統(tǒng)320。如圖所示,系統(tǒng)管理程序軟件應(yīng)用程序305提供虛擬環(huán)境,在虛 擬環(huán)境中,多個(gè)客戶操作系統(tǒng)可以與特權(quán)操作系統(tǒng)同步執(zhí)行。在一個(gè)實(shí)施例中, 特權(quán)操作系統(tǒng)在系統(tǒng)管理程序分區(qū)操作,而在另一個(gè)實(shí)施例中,系統(tǒng)管理程序 提供客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)之間的通信。此外,在一個(gè)實(shí)施例中,客戶 操作系統(tǒng)操作用于與該設(shè)備通信的前端驅(qū)動器335,以及特權(quán)操作系統(tǒng)操作后 端驅(qū)動器325,同時(shí)系統(tǒng)管理程序305提供后端和前端驅(qū)動器之間的通信路徑。
如圖所示,可以從不同源340接收設(shè)備軟件更新。這些源包括石茲盤、 CD-ROM以及其他便攜非易失性媒體,以及從例如因特網(wǎng)的計(jì)算機(jī)網(wǎng)絡(luò)350 下栽的設(shè)備軟件更新。
無論與系統(tǒng)管理程序305分開運(yùn)行還是在系統(tǒng)管理程序中運(yùn)行,特權(quán)操作 系統(tǒng)320控制設(shè)備軟件更新,包括受控的固件更新375和受控的設(shè)備驅(qū)動器更 新385。設(shè)備370以不同方式連接至計(jì)算機(jī)系統(tǒng),或者是直接連接至計(jì)算機(jī)系 統(tǒng)目標(biāo),或者是使用任意數(shù)目的接口連接,例如USB、串行接口、并行接口 等等。設(shè)備包括視頻卡、打印機(jī)、驅(qū)動控制器和本領(lǐng)域普通技術(shù)人員公知的任 意數(shù)目的設(shè)備。通過不同的設(shè)備軟件更新來更新設(shè)備固件380和設(shè)備驅(qū)動器 390,其中設(shè)備固件380通常控制設(shè)備如何操作,以及設(shè)備驅(qū)動器390通???制訪問來自 一個(gè)或多個(gè)客戶操作系統(tǒng)的設(shè)備。
圖4是表示客戶操作系統(tǒng)、系統(tǒng)管理程序和特權(quán)操作系統(tǒng)之間執(zhí)行以更新 設(shè)備軟件的步驟的流程圖,例如更新設(shè)備驅(qū)動器。如圖所示,客戶操作系統(tǒng)操 作在330開始,其上在步驟410,客戶操作系統(tǒng)的用戶下載設(shè)備軟件更新,例 如設(shè)備驅(qū)動器,并且在非易失性存儲中存儲設(shè)備軟件更新,非易失性存儲是計(jì) 算機(jī)系統(tǒng)可訪問的,例如硬盤驅(qū)動器。在步驟420,執(zhí)行客戶操作系統(tǒng)安裝代 碼以安裝設(shè)備軟件更新。在執(zhí)行客戶操作系統(tǒng)安裝代碼的過程中的某個(gè)點(diǎn)上, 該代碼企圖存儲設(shè)備軟件更新。在這個(gè)點(diǎn)上,控制被轉(zhuǎn)移至特權(quán)操作系統(tǒng)。
如圖所示,特權(quán)操作系統(tǒng)處理在320開始,此時(shí)系統(tǒng)管理程序305提供客 戶操作系統(tǒng)處理330和特權(quán)操作系統(tǒng)處理320之間的通信。如上所述,特權(quán)操 作系統(tǒng)可以由系統(tǒng)管理程序直接執(zhí)行,或者作為分離的操作系統(tǒng)在系統(tǒng)管理程 序提供的虛擬環(huán)境中運(yùn)行。在步驟430,客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)之間的 連接被驗(yàn)證。如果該連接被成功驗(yàn)證,控制轉(zhuǎn)移回客戶操作系統(tǒng)處理,否則如果該連接沒有被成功驗(yàn)證,設(shè)備軟件更新處理結(jié)束。
返回客戶操作系統(tǒng)處理,如果該連接被成功更新,那么在步驟440,客戶 操作系統(tǒng)將該更新存儲到前端設(shè)備驅(qū)動器335。普通(generic )前端驅(qū)動器335 被安裝在客戶操作系統(tǒng)中,例如微軟WindowsTM。作為普通前端,前端軟件可 能具有若干更新。然而,前端驅(qū)動器335向客戶操作系統(tǒng)提出標(biāo)識符,該客戶 操作系統(tǒng)支持對應(yīng)于連接到計(jì)算機(jī)系統(tǒng)的選定的硬件的多個(gè)設(shè)備驅(qū)動器。選定 的設(shè)備驅(qū)動器(設(shè)備更新處理)的標(biāo)識符被傳送回特權(quán)操作系統(tǒng),并且控制被 傳送回特權(quán)操作系統(tǒng)用于實(shí)際更新設(shè)備驅(qū)動器。
返回特權(quán)操作系統(tǒng)處理,在步驟450,特權(quán)4喿作系統(tǒng)-險(xiǎn)證對應(yīng)于由客戶操 作系統(tǒng)發(fā)送的驅(qū)動器更新處理的設(shè)備軟件更新(見圖7以及驗(yàn)證設(shè)備軟件更新 的不同技術(shù)的對應(yīng)的文字)。如果設(shè)備軟件更新沒有^皮驗(yàn)證,那么在步驟460, 特權(quán)操作系統(tǒng)禁用該設(shè)備。在步驟470,更新后端設(shè)備驅(qū)動器325。在步驟480, 重新啟動更新后的后端設(shè)備驅(qū)動器325,并且將其重新連接至前端設(shè)備驅(qū)動器 335。在步驟490,該設(shè)備在客戶操作系統(tǒng)中啟用,并且在步驟499,從驅(qū)動器 存儲器310移除設(shè)備軟件更新,因?yàn)樵O(shè)備軟件更新已經(jīng)被應(yīng)用至該設(shè)備和客戶 操作系統(tǒng)。
圖5是表示由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)執(zhí)行以更新設(shè)備驅(qū)動器的步 驟的流程圖。如圖所示,設(shè)備軟件更新的客戶操作系統(tǒng)處理,例如設(shè)備驅(qū)動器 更新,在步驟500開始。在步驟510,在客戶操作系統(tǒng)上安裝普通前端(FE) 驅(qū)動器。正如其名稱所示,在一個(gè)實(shí)施例中,普通前端驅(qū)動器^f皮用于協(xié)調(diào)在步 驟501開始的任意數(shù)目的設(shè)備驅(qū)動器(后端設(shè)備驅(qū)動器)與特權(quán)操作系統(tǒng)處理 的更新。
返回客戶操作系統(tǒng)處理,在步驟515 ,客戶操作系統(tǒng)從設(shè)備軟件更新源340 載入或下載設(shè)備軟件更新。圖3中示出了更新源的各種例子。在步驟520,客 戶操作系統(tǒng)檢測設(shè)備軟件更新,例如設(shè)備驅(qū)動器更新,并且將該更新存儲到設(shè) 備軟件更新數(shù)據(jù)存儲315中(例如,由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)可訪問的 非易失性數(shù)據(jù)存儲,由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)可訪問的RAM存儲位置 等等)。
如圖所示,特權(quán)操作系統(tǒng)處理在步驟501開始。在步驟525,特權(quán)操作系統(tǒng)檢測已經(jīng)被載入到數(shù)據(jù)存儲315中的設(shè)備軟件更新。在預(yù)定處理530,使用 各種技術(shù)驗(yàn)證設(shè)備軟件更新的合法性(見圖7和處理細(xì)節(jié)的相應(yīng)文字)。對于 設(shè)備軟件更新是否被成功驗(yàn)證做出判定(決定540)。如果設(shè)備軟件更新沒有 被成功驗(yàn)證,那么確定540進(jìn)入"否"分支545,在步驟550,特權(quán)操作系統(tǒng) 做出嘗試安裝非法(即,未授權(quán)的等等)設(shè)備軟件更新的記錄,并且在步驟 590從設(shè)備存儲315移除該非法設(shè)備軟件更新。返回決定540,如果設(shè)備軟件 更新的合法性被成功驗(yàn)證,那么決定540進(jìn)入"是"分支,其上在預(yù)定處理 560,客戶操作系統(tǒng)拒絕訪問該設(shè)備,使得該設(shè)備可以凈皮更新而不會引起與試 圖使用該設(shè)備的客戶操作系統(tǒng)的問題(見圖8和處理細(xì)節(jié)的對應(yīng)文字)??蛻?操作系統(tǒng)處理的步驟565表示客戶操作系統(tǒng)在該點(diǎn)上拒絕訪問該設(shè)備。在預(yù)定 處理570,設(shè)備軟件更新被更新(見圖9和處理細(xì)節(jié)的對應(yīng)文字)。在預(yù)定處 理580,特權(quán)操作系統(tǒng)恢復(fù)客戶操作系統(tǒng)和該設(shè)備的連接??蛻舨僮飨到y(tǒng)處理 的步驟585表示客戶操作系統(tǒng)現(xiàn)在可以使用新更新的設(shè)備軟件更新(例如,設(shè) 備驅(qū)動器)來訪問該設(shè)備。最后,設(shè)備軟件更新已經(jīng)被成功安裝,在步驟590 從設(shè)備軟件更新數(shù)據(jù)存儲315移除該設(shè)備軟件更新。
圖6是表示由客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)執(zhí)行以更新例如固件的設(shè)備 軟件更新的步驟的流程圖??蛻舨僮飨到y(tǒng)處理在600開始,隨之在步驟610, 客戶操作系統(tǒng)檢測設(shè)備軟件更新(例如,固件)對設(shè)備是可用的。在步驟615, 客戶操作系統(tǒng)從源340 (例如可移動的非易失性媒體、計(jì)算機(jī)網(wǎng)絡(luò)等)提取設(shè) 備軟件更新,在數(shù)據(jù)存儲620中存儲提取的更新,將該更新通知特權(quán)操作系統(tǒng)。
特權(quán)操作系統(tǒng)處理在601開始,之后在步驟625,特權(quán)操作系統(tǒng)檢測客戶 操作系統(tǒng)是否已經(jīng)將設(shè)備軟件更新載入到非易失性數(shù)據(jù)存儲620中。在預(yù)定處 理630,特權(quán)操作系統(tǒng)驗(yàn)證設(shè)備軟件更新的合法性,例如固件更新(參見圖7 和處理細(xì)節(jié)的對應(yīng)文字)。對于設(shè)備軟件更新是否被成功驗(yàn)證做出判定(決定 640)。如果設(shè)備軟件更新沒有被成功驗(yàn)證,那么決定640進(jìn)入"否"分支645, 在步驟650,進(jìn)行未授權(quán)的試圖更新例如固件的設(shè)備軟件更新的記錄,并且在 步驟690從非易失性設(shè)備存儲620移除該設(shè)備軟件更新。另一方面,如果設(shè)備 軟件更新的合法性被驗(yàn)證,那么決定640進(jìn)入"是"分支655,其上在預(yù)定處 理660,客戶操作系統(tǒng)拒絕訪問該設(shè)備(見圖8和處理細(xì)節(jié)的對應(yīng)文字)。客戶操作系統(tǒng)拒絕訪問該設(shè)備,同時(shí)在步驟665更新設(shè)備軟件更新。在步驟670, 特權(quán)操作系統(tǒng)更新例如固件的設(shè)備軟件更新(見圖9和處理細(xì)節(jié)的對應(yīng)文字)。 在預(yù)定處理680,在設(shè)備軟件更新已經(jīng)被更新之后,特權(quán)操作系統(tǒng)允許客戶操 作系統(tǒng)訪問該設(shè)備,該設(shè)備已經(jīng)被更新了例如固件的軟件。如圖所示,客戶操 作系統(tǒng)具有在步驟685對該設(shè)備的重新開始的訪問,同時(shí)該設(shè)備現(xiàn)在具有已經(jīng) 更新的軟件。最后,在完成設(shè)備軟件更新之后,在步驟690從非易失性數(shù)據(jù)存 儲620移除設(shè)備軟件更新。
圖7是表示驗(yàn)證例如對設(shè)備驅(qū)動器或固件的更新的設(shè)備軟件更新的合法 性而采取的步驟的流程圖。在700開始處理,隨之在步驟705,對計(jì)算機(jī)系統(tǒng) 使用的控制710進(jìn)行檢查。這些控制可以在一個(gè)系統(tǒng)接著一個(gè)系統(tǒng)的基礎(chǔ)上實(shí) 現(xiàn),也可以在使用相同的合法性控制將所有的計(jì)算機(jī)系統(tǒng)置于一個(gè)組織中的組 織的基礎(chǔ)上實(shí)現(xiàn)。對應(yīng)數(shù)字前面檢查是否是部分控制做出判定(決定715)。 如果數(shù)字簽名檢查是正在使用的控制,那么決定715進(jìn)入"是"分支718,隨 之在步驟720,使用例如SHA-256算法,通過處理設(shè)備軟件更新315來計(jì)算數(shù) 字簽名,這得到一個(gè)值。將該值與從數(shù)據(jù)存儲722中提取的期望的數(shù)字簽名相 比較。對應(yīng)數(shù)字簽名是否是正確的(即,計(jì)算得到的值是否正確地匹配或?qū)?yīng) 于從數(shù)據(jù)存儲722中提取的期望簽名)做出判定(決定725 )。如果數(shù)字簽名 不是正確的,決定725進(jìn)入"否"分支726,這導(dǎo)致設(shè)備軟件更新被標(biāo)記為非 法更新(不好的返回780)。另一方面,如果數(shù)字簽名是正確的,那么決定725 進(jìn)入"是"分支717以進(jìn)一步進(jìn)行處理。返回決定715,如果數(shù)字簽名檢查不 是正在被使用的控制之一,那么決定715進(jìn)入"否"分支728以繞過數(shù)字簽名 檢查步驟。
對應(yīng)計(jì)算機(jī)系統(tǒng)的擁有者(例如系統(tǒng)管理員、用戶等)在應(yīng)用更新之前授 權(quán)設(shè)備軟件更新是否是控制之一進(jìn)行判定(決定730)。如果擁有者授權(quán)是控 制之一,那么決定730進(jìn)入"是"分支734,隨之在步驟735,提示擁有者授 權(quán)設(shè)備軟件更新(例如,使用彈出對話消息框等)。然后對應(yīng)擁有者是否授權(quán) 該更新做出判定(決定740)。如果擁有者沒有授權(quán)該更新,那么決定740進(jìn)
另一方面,如果擁有者授權(quán)了設(shè)備軟件更新,那么決定740進(jìn)入"是"分支
17743,以進(jìn)行進(jìn)一步處理。返回決定730,如果擁有者授權(quán)不是正在使用的控 制之一,那么決定730進(jìn)入"否,,分支以繞開擁有者授權(quán)步驟。
對應(yīng)在控制710中是否實(shí)現(xiàn)黑名單控制進(jìn)行判定(決定745 )。黑名單是 計(jì)算機(jī)系統(tǒng)禁止的設(shè)備軟件更新的控制。例如,如果特定設(shè)備軟件更新包括錯(cuò) 誤、缺陷、病毒或其他問題,特定設(shè)備軟件更新的標(biāo)識符(數(shù)字簽名、文件標(biāo) 識符等)可以被寫入到黑名單數(shù)據(jù)存儲760中。如果控制710確定正在使用黑 名單檢查,那么決定745進(jìn)入"是"分支748,隨之在步驟750,將設(shè)備軟件 更新與黑名單中包括的條目相比較。對應(yīng)該設(shè)備軟件更新是否包括在黑名單 760中進(jìn)行判定(決定770 )。如果該設(shè)備軟件更新包括在黑名單760中,那么 決定770進(jìn)入"是"分支775,其導(dǎo)致設(shè)備軟件更新被標(biāo)記為非法更新(不好 的返回780)。另一方面,如果該設(shè)備軟件更新沒有包括在黑名單760中,那 么決定770進(jìn)入"否"分支785,其導(dǎo)致該設(shè)備軟件更新被標(biāo)記為合法的(好 的返回7卯)。同樣地,返回決定745,如果沒有使用黑名單檢查,那么決定 745進(jìn)入"否"分支以繞開黑名單檢查步驟,并且將設(shè)備軟件更新標(biāo)記為合法 的(好的返回790)。
本領(lǐng)域的普通技術(shù)人員應(yīng)該理解到也可以實(shí)現(xiàn)例如白名單、灰名單等的其 他控制以驗(yàn)證設(shè)備軟件更新的合法性。這些額外的合法性檢查也可以在將不好 的返回(返回780)和好的返回(返回790)返回到調(diào)用程序之前執(zhí)行。
圖8是表示由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以禁止客戶操作系統(tǒng)對 正在被更新的設(shè)備的訪問的步驟的流程圖。處理在800開始,隨之在步驟810, 對于與特定客戶操作系統(tǒng)相關(guān)的特性進(jìn)行檢查。將與特定客戶操作系統(tǒng)相關(guān)的 特性(例如操作系統(tǒng)名稱、操作系統(tǒng)版本等)與可用的拒絕(deny)方法的列 表(數(shù)據(jù)存儲815)相比較,以確定一個(gè)或多個(gè)拒絕技術(shù),該一個(gè)或多個(gè)拒絕 技術(shù)被用于使得從客戶操作系統(tǒng)不可訪問該設(shè)備,同時(shí)該設(shè)備軟件更新正在被 應(yīng)用。
對于操作系統(tǒng)和設(shè)備是否支持設(shè)備的熱插拔(hot unplug)做出判定(決 定820)。如果設(shè)備的熱插拔是恰當(dāng)?shù)木芙^技術(shù),那么決定820進(jìn)入"是"分 支822,隨之在步驟825,設(shè)備的熱插拔被啟動,并且在830處理返回。返回 至決定820,如果設(shè)備的熱插拔不是恰當(dāng)?shù)木芙^技術(shù)或者如果原來的熱插拔在原來沒有被成功進(jìn)行,那么決定820進(jìn)入"否,,分支832以進(jìn)一步處理拒絕技 術(shù)。
對于客戶操作系統(tǒng)的強(qiáng)制中止是否是客戶操作系統(tǒng)使用的恰當(dāng)拒絕技術(shù) 做出判定(決定835 )。如果強(qiáng)制中止是恰當(dāng)?shù)木芙^技術(shù),那么決定835進(jìn)入 "是"分支838,隨之在步驟840,客戶操作系統(tǒng)的強(qiáng)制中止被啟動,并且在 845處理返回。返回至決定835,如果客戶操作系統(tǒng)的強(qiáng)制中止不是恰當(dāng)?shù)木?絕技術(shù)或者如果原來的客戶操作系統(tǒng)的強(qiáng)制中止在原來沒有被成功進(jìn)行,那么 決定835進(jìn)入"否"分支848以進(jìn)一步處理拒絕技術(shù)。
對于停止客戶操作系統(tǒng)是否是要使用的恰當(dāng)拒絕技術(shù)做出判定(決定 850)。如果停止客戶操作系統(tǒng)是恰當(dāng)?shù)木芙^技術(shù),那么決定850進(jìn)入"是"分 支852,隨之在步驟855,通過拒絕客戶操作系統(tǒng)CPU時(shí)間來停止客戶搡作系 統(tǒng),并且在860處理返回。返回至決定850,如果停止客戶操作系統(tǒng)不是恰當(dāng) 的拒絕技術(shù),那么決定850進(jìn)入"否"分支862以進(jìn)一步處理拒絕技術(shù)。
對于從客戶操作系統(tǒng)到設(shè)備的高速緩存請求是否是要使用的恰當(dāng)拒絕技 術(shù)做出判定(決定865 )。如果高速緩存請求是要使用的恰當(dāng)?shù)木芙^技術(shù),那 么決定865進(jìn)入"是"分支868,隨之在步驟870,由特權(quán)操作系統(tǒng)或系統(tǒng)管 理程序分配緩沖器(緩沖器875 )。在步驟880,特權(quán)操作系統(tǒng)或系統(tǒng)管理程序 開始解釋從客戶操作系統(tǒng)到設(shè)備的請求,并且將該請求高速緩存在緩沖器875
中。然后處理在885返回。返回至決定865,如果來自停止客戶操作系統(tǒng)的高 速緩存請求不是恰當(dāng)?shù)木芙^技術(shù),那么決定865進(jìn)入"否"分支888,隨之在 步驟890,通過使用被認(rèn)為對于客戶操作系統(tǒng)和設(shè)備是恰當(dāng)?shù)哪承┢渌夹g(shù)來 防止客戶操作系統(tǒng)使用設(shè)備。然后處理在895返回。
圖9是由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以更新設(shè)備的步驟的流程圖。 如圖所示,由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行的處理在900開始。在步驟 910,設(shè)備軟件更新被從客戶操作系統(tǒng)存儲器330復(fù)制到特權(quán)操作系統(tǒng)或系統(tǒng) 管理程序存儲器320。在步驟920,如果可能,設(shè)備(設(shè)備370)是脫機(jī)的。 在步驟930,設(shè)備軟件更新被應(yīng)用至設(shè)備(例如已更新的固件、已更新的設(shè)備 驅(qū)動器等等)。在步驟940,條目被寫入到對設(shè)備軟件更新的結(jié)果記錄950中。 在步驟960,該設(shè)備被重新啟動,以及在步驟970,特權(quán)操作系統(tǒng)或系統(tǒng)管理程序在恢復(fù)設(shè)備的客戶操作系統(tǒng)使用之前等待設(shè)備重新啟動。然后處理在995 返回至調(diào)用程序。
圖10是表示由特權(quán)操作系統(tǒng)或系統(tǒng)管理程序執(zhí)行以在已經(jīng)更新設(shè)備之后 恢復(fù)客戶操作系統(tǒng)對設(shè)備的訪問的步驟的流程圖。由特權(quán)操作系統(tǒng)或系統(tǒng)管理 程序執(zhí)行的處理在1000開始,隨之在步驟1005,對在圖8所示的處理的過程 中用于拒絕對設(shè)備的訪問的拒絕技術(shù)進(jìn)行檢查。在存儲位置1002中存儲被使 用的拒絕方法。對被使用的拒絕方法是否是設(shè)備的熱插拔進(jìn)行判定(決定 1010)。如果使用了設(shè)備的熱插拔,那么決定1010進(jìn)入"是"分支1012,隨 之在步驟1015,現(xiàn)在啟動隨之已經(jīng)應(yīng)用了設(shè)備軟件更新的設(shè)備的熱插件(hot plug-in)(例如,固件更新、設(shè)備驅(qū)動器更新等)。然后處理在1020返回至調(diào) 用程序。另一方面,如果設(shè)備的熱插拔不是用于客戶操作系統(tǒng)拒絕方法,那么 決定1010進(jìn)入"否"分支1022,隨之對客戶操作系統(tǒng)是否被強(qiáng)制中止做出判 定(決定1025 )。如果客戶操作系統(tǒng)被強(qiáng)制中止,那么決定1025進(jìn)入"是" 分支1028,隨之在步驟1030,已停止的客戶操作系統(tǒng)被恢復(fù),并且處理在1035 返回至調(diào)用程序。
另一方面,如果使用的拒絕技術(shù)不是客戶操作系統(tǒng)的強(qiáng)制中止,那么決定 1025進(jìn)入"否"分支1038,隨之對使用的拒絕技術(shù)是否是通過拒絕客戶操作 系統(tǒng)CPU周期來停止客戶操作系統(tǒng)做出判定(決定1040)。如果停止客戶操 作系統(tǒng),那么決定1040進(jìn)入"是"分支1042,隨之在步驟1045,通過允許客 戶操作系統(tǒng)接收CPU周期來重新激活客戶操作系統(tǒng),并且處理在1050返回至 調(diào)用程序。
另 一方面,如果拒絕技術(shù)不是停止客戶操作系統(tǒng),那么決定1040進(jìn)入"否" 分支1052,隨之對使用的拒絕技術(shù)是否是由客戶操作系統(tǒng)向設(shè)備進(jìn)行高速緩 存請求做出判定(決定1055 )。如果由客戶操作系統(tǒng)向設(shè)備進(jìn)行的請求已經(jīng)被 高速緩存,那么決定1055進(jìn)入"是"分支1058,隨之在步驟1060,通過向設(shè) 備(設(shè)備370)發(fā)送高速緩存請求來處理請求,該請求是指向設(shè)備的客戶操作 系統(tǒng)進(jìn)行的并且被高速緩存到緩沖器885中。執(zhí)行高速緩存的請求的處理直到 已經(jīng)向設(shè)備發(fā)送了所有高速緩存的請求。在步驟1065,在所有高速緩存的設(shè) 備被處理之后,緩沖器885被解除分配,并且處理在1070返回至調(diào)用程序。返回到?jīng)Q定1055,如果拒絕技術(shù)不是從客戶操作系統(tǒng)到設(shè)備的高速緩存請求, 那么決定1055進(jìn)入"否"分支1072,隨之在步驟1075,使用對應(yīng)于用于拒絕 客戶操作系統(tǒng)對設(shè)備的訪問的拒絕技術(shù)的若干其他技術(shù)來恢復(fù)設(shè)備的客戶操 作系統(tǒng)的使用。此后處理在1080返回至調(diào)用程序。
本發(fā)明的一個(gè)優(yōu)選實(shí)施例是客戶應(yīng)用程序,即,在例如可以駐留在計(jì)算機(jī) 的隨機(jī)存取存儲器的代碼模塊中的指令集(程序代碼)或其他功能描述材料。 直到計(jì)算機(jī)請求,該指令集可以被存儲在另一個(gè)計(jì)算機(jī)存儲器中,例如,在硬 盤驅(qū)動器,或者在例如光盤(用于CD ROM中的最終使用)或磁盤(用于磁 盤驅(qū)動器中的最終使用)的可移動存儲器中,或者可以通過因特網(wǎng)或其他計(jì)算 機(jī)網(wǎng)絡(luò)下載。由此,本發(fā)明可以被實(shí)現(xiàn)為計(jì)算機(jī)中使用的計(jì)算機(jī)程序產(chǎn)品。此 外,雖然描述的不同方法通常在由軟件選擇地激活或重新配置的通用計(jì)算機(jī)上 實(shí)現(xiàn),但是本領(lǐng)域的普通技術(shù)人員還應(yīng)該認(rèn)識到這樣的方法可以在硬件、固件 或者被構(gòu)造以執(zhí)行需要的方法步驟的更特別的裝置中執(zhí)行。功能描述材料是對 機(jī)器給予功能性的信息。功能描述材料包括、但不局限于計(jì)算機(jī)程序、指令、 規(guī)則、事實(shí)、可計(jì)算的功能的定義、對象和數(shù)據(jù)結(jié)構(gòu)。
盡管已經(jīng)顯示和描述了本發(fā)明的特定實(shí)施例,對本領(lǐng)域的普通技術(shù)人員來 說,基于在此的教義,進(jìn)行修改和變化而不偏離本發(fā)明及其更廣闊的方面是顯
內(nèi),因?yàn)檫@樣的修改和改變被包括在本發(fā)明的真正精神和范圍之內(nèi)。此外,應(yīng) 該理解到本發(fā)明僅由附帶的權(quán)利要求定義。本領(lǐng)域的普通技術(shù)人員應(yīng)該理解到 如果預(yù)期了特點(diǎn)說明的引入的權(quán)利要求要素,這樣的意圖應(yīng)該在權(quán)利要求中被 明確的描述,并且缺乏這樣的描述就沒有這樣的限制。無限的例如,作為輔助 理解,下面附帶的權(quán)利要求包含介紹性語句"至少一個(gè),,和"一個(gè)或多個(gè),,以 介紹權(quán)利要求要素。然而,這樣的語句的使用不應(yīng)該被構(gòu)造成為暗示由不定冠 詞"一"或"一個(gè)"介紹的權(quán)利要求要素將包含這樣的介紹權(quán)利要求要素的任 意特定權(quán)利要求限制為僅包含一個(gè)這樣要素的發(fā)明,即使該權(quán)利要求包括介紹 語句"一個(gè)或多個(gè)"或"至少一個(gè)"以及例如"一"或"一個(gè)"的不定冠詞。 這也同樣適用于定冠詞的權(quán)利要求。
權(quán)利要求
1. 一種機(jī)器實(shí)施的方法,該方法包括通過在計(jì)算機(jī)系統(tǒng)上運(yùn)行的第一客戶操作系統(tǒng)使用系統(tǒng)管理程序來識別對應(yīng)于連接至所述計(jì)算機(jī)系統(tǒng)的設(shè)備的設(shè)備軟件更新,其中在所述計(jì)算機(jī)系統(tǒng)上存在虛擬環(huán)境以支持多個(gè)操作系統(tǒng),該多個(gè)操作系統(tǒng)包括第一客戶操作系統(tǒng)和特權(quán)操作系統(tǒng);通過系統(tǒng)管理程序?qū)⒆R別的設(shè)備軟件更新通知給也在所述計(jì)算機(jī)系統(tǒng)上運(yùn)行的所述特權(quán)操作系統(tǒng);響應(yīng)于上述通知,所述特權(quán)操作系統(tǒng)執(zhí)行以下步驟拒絕一個(gè)或多個(gè)客戶操作系統(tǒng)對上述設(shè)備的訪問,所述一個(gè)或多個(gè)客戶操作系統(tǒng)包括所述第一客戶操作系統(tǒng);在上述拒絕步驟之后使用所述識別的設(shè)備軟件更新來更新用于操作所述設(shè)備的設(shè)備軟件;以及在上述更新步驟之后恢復(fù)所述一個(gè)或多個(gè)客戶操作系統(tǒng)和所述設(shè)備之間的訪問。
2. 如權(quán)利要求l所述的方法,進(jìn)一步包括通過所述特權(quán)搡作系統(tǒng)驗(yàn)證所述識別的設(shè)備軟件更新的合法性,其中僅響 應(yīng)于成功的驗(yàn)證來執(zhí)行上述更新步驟。
3. 如權(quán)利要求2所述的方法,其中上述驗(yàn)證步驟進(jìn)一步包括對所述設(shè)備 軟件更新的數(shù)字簽名與預(yù)先建立的數(shù)字簽名進(jìn)行比較。
4. 如權(quán)利要求l所述的方法,其中上述拒絕步驟進(jìn)一步包括 識別對應(yīng)于每個(gè)所述客戶操作系統(tǒng)的一個(gè)或多個(gè)客戶操作系統(tǒng)拒絕方法; 響應(yīng)于至少一個(gè)識別的拒絕方法來啟動上述設(shè)備的熱插拔; 響應(yīng)于至少一個(gè)拒絕方法來強(qiáng)制中止至少一個(gè)所述客戶操作系統(tǒng);響應(yīng)于至少一個(gè)拒絕方法來停止至少一個(gè)所述客戶操作系統(tǒng);以及 響應(yīng)于至少 一個(gè)拒絕方法來從至少 一個(gè)所述客戶操作系統(tǒng)向上述設(shè)備發(fā) 出高速緩存請求。
5. 如權(quán)利要求l所述的方法,進(jìn)一步包括在所述拒絕步驟之后使得上述設(shè)備脫機(jī);以及 在所述恢復(fù)步驟之前重新啟動上述設(shè)備。
6. 如權(quán)利要求1所述的方法,其中所述特權(quán)操作系統(tǒng)是在所述計(jì)算機(jī)系統(tǒng)上運(yùn)行的系統(tǒng)管理程序,并且,從由設(shè)備固件和設(shè)備驅(qū)動器組成的組中選擇 設(shè)備軟件。
7. 如權(quán)利要求l所述的方法,進(jìn)一步包括使用所述第一客戶操作系統(tǒng)從第二計(jì)算機(jī)系統(tǒng)下載所述設(shè)備軟件更新,所 述第二計(jì)算機(jī)系統(tǒng)使用計(jì)算機(jī)網(wǎng)絡(luò)連接至上述計(jì)算機(jī)系統(tǒng),下載的設(shè)備軟件更 新存儲在所述第 一客戶操作系統(tǒng)可訪問的設(shè)備軟件存儲區(qū)域;通過所述第 一客戶操作系統(tǒng)執(zhí)行所述設(shè)備軟件更新;當(dāng)正在執(zhí)行的設(shè)備軟件更新嘗試更新設(shè)備軟件時(shí)將控制轉(zhuǎn)移至所述特權(quán) 操作系統(tǒng),其中所述特權(quán)操作系統(tǒng)通過驗(yàn)證連接來做出響應(yīng);響應(yīng)于被成功驗(yàn)證的連接,控制被轉(zhuǎn)移回所述第一客戶操作系統(tǒng),由此所 述第一客戶操作系統(tǒng)通過存儲前端驅(qū)動器來做出響應(yīng),然后將控制與驅(qū)動器更 新處理一起轉(zhuǎn)移回所述特權(quán)操作系統(tǒng);響應(yīng)于接收到所述驅(qū)動器更新處理,所述特權(quán)操作系統(tǒng)執(zhí)行以下步驟 驗(yàn)證所述驅(qū)動器軟件更新; 使上述設(shè)備不工作;以及執(zhí)行所述更新步驟,得到對應(yīng)于已更新的前端驅(qū)動器的已更新的后端驅(qū)動器。
8. —種信息處理系統(tǒng),包括 一個(gè)或多個(gè)處理器;由至少 一個(gè)所述處理器可訪問的存儲器;由至少 一個(gè)所述處理器可訪問的非易失性存儲區(qū)域;由至少一個(gè)所述處理器可訪問的硬件設(shè)備,其中該硬件設(shè)備包括控制該硬 件設(shè)備的操作的設(shè)備軟件;提供虛擬環(huán)境的系統(tǒng)管理程序,該虛擬環(huán)境支持一個(gè)或多個(gè)客戶操作系統(tǒng) 和特權(quán)操作系統(tǒng),所述系統(tǒng)管理程序、客戶操作系統(tǒng)和特權(quán)操作系統(tǒng)每個(gè)都存 儲在所述存儲器和非易失性存儲區(qū)域中并且由所述處理器執(zhí)行;一組或多組指令集,由一個(gè)或多個(gè)所述處理器執(zhí)行以實(shí)現(xiàn)以下動作 識別動作,通過第一客戶操作系統(tǒng)識別對應(yīng)于所述硬件設(shè)備的設(shè)備軟件更新;通知動作,通過所述系統(tǒng)管理程序?qū)⒆R別的設(shè)備軟件更新通知給所述特 權(quán)操作系統(tǒng);響應(yīng)于該通知動作,運(yùn)行特權(quán)搡作系統(tǒng)的所述指令執(zhí)行以下額外動作: 拒絕動作,拒絕一個(gè)或多個(gè)客戶操作系統(tǒng)對所述硬件設(shè)備的訪問,該一個(gè)或多個(gè)客戶操作系統(tǒng)包括所述第 一客戶操作系統(tǒng);更新動作,在所述拒絕動作之后使用識別的設(shè)備軟件更新來更新用于操作硬件設(shè)備的所述設(shè)備軟件;以及恢復(fù)動作,在所述更新動作之后恢復(fù)所述一個(gè)或多個(gè)客戶操作系統(tǒng)和所述硬件設(shè)備之間的訪問。
9. 如權(quán)利要求8所述的信息處理系統(tǒng),其中至少一組所述指令集使得所 述處理器進(jìn)一步執(zhí)行以下動作通過所述特權(quán)操作系統(tǒng)驗(yàn)證所述識別的設(shè)備軟件更新的合法性,其中僅響 應(yīng)于成功的^S正4丸行上述更新動作。
10. 如權(quán)利要求9所述的信息處理系統(tǒng),其中所述驗(yàn)證的動作進(jìn)一步包括 比較所述設(shè)備軟件更新的數(shù)字簽名和預(yù)先建立的數(shù)字簽名的動作。
11. 如權(quán)利要求8所述的信息處理系統(tǒng),其中所述拒絕動作進(jìn)一步包括以 下動作識別對應(yīng)于每個(gè)所述客戶操作系統(tǒng)的一個(gè)或多個(gè)客戶操作系統(tǒng)拒絕方法; 響應(yīng)于至少一個(gè)識別的拒絕方法來啟動上述i殳備的熱插拔; 響應(yīng)于至少一個(gè)拒絕方法來強(qiáng)制中止至少一個(gè)所述客戶操作系統(tǒng); 響應(yīng)于至少一個(gè)拒絕方法來停止至少一個(gè)所述客戶操作系統(tǒng);以及 響應(yīng)于至少一個(gè)拒絕方法來從至少 一個(gè)所述客戶操作系統(tǒng)向上述設(shè)備發(fā) 出高速緩存請求。
12. 如權(quán)利要求8所述的信息處理系統(tǒng),其中至少一組所述指令集使得所 述處理器進(jìn)一 步執(zhí)行以下動作在所述拒絕動作之后使得上述設(shè)備脫機(jī);以及在所述恢復(fù)動作之前重新啟動上述設(shè)備。
13. 如權(quán)利要求8所述的信息處理系統(tǒng),其中所述特權(quán)操作系統(tǒng)是在所述 計(jì)算機(jī)系統(tǒng)上運(yùn)行的系統(tǒng)管理程序,并且,從由設(shè)備固件和設(shè)備驅(qū)動器組成的組中選褲4殳備軟件。
14. 如權(quán)利要求8所述的信息處理系統(tǒng),進(jìn)一步包括網(wǎng)絡(luò)適配器,將所述信息處理系統(tǒng)連接至計(jì)算機(jī)網(wǎng)絡(luò),其中至少一組所述 指令集使得處理器進(jìn)一步執(zhí)行以下動作.'使用所述第一客戶操作系統(tǒng)從第二計(jì)算機(jī)系統(tǒng)下載所述設(shè)備軟件更新,所 述第二計(jì)算機(jī)系統(tǒng)通過計(jì)算機(jī)網(wǎng)絡(luò)連接至所述信息處理系統(tǒng),下載的設(shè)備軟件 更新存儲在所述第 一客戶操作系統(tǒng)可訪問的設(shè)備軟件存儲區(qū)域;通過所述第 一客戶操作系統(tǒng)執(zhí)行所述設(shè)備軟件更新;當(dāng)正在執(zhí)行的設(shè)備軟件更新嘗試更新設(shè)備軟件時(shí)將控制轉(zhuǎn)移至所述特權(quán) 操作系統(tǒng),其中所述特權(quán)操作系統(tǒng)通過驗(yàn)證連接來做出響應(yīng);響應(yīng)于被成功驗(yàn)證的連接,控制被轉(zhuǎn)移回所述第一客戶操作系統(tǒng),由此所 述第一客戶操作系統(tǒng)通過存儲前端驅(qū)動器來做出響應(yīng),然后將控制與驅(qū)動器更 新處理一起轉(zhuǎn)移回所述特權(quán)操作系統(tǒng);響應(yīng)于接收到所述驅(qū)動器更新處理,所述特權(quán)操作系統(tǒng)執(zhí)行以下步驟 驗(yàn)證所述驅(qū)動器軟件更新; 使上述硬件設(shè)備不工作;以及執(zhí)行上述更新動作,得到對應(yīng)于已更新的前端驅(qū)動器的已更新的后端驅(qū)動器。
15. —種計(jì)算機(jī)程序產(chǎn)品,存儲在計(jì)算機(jī)可讀介質(zhì)內(nèi),包括功能描述材料, 當(dāng)信息處理系統(tǒng)執(zhí)行該功能描述材料時(shí),使得信息處理系統(tǒng)執(zhí)行動作,所述動 作包括通過在計(jì)算機(jī)系統(tǒng)上運(yùn)行的第一客戶操作系統(tǒng)使用系統(tǒng)管理程序來識別 對應(yīng)于連接至計(jì)算機(jī)系統(tǒng)的設(shè)備的設(shè)備軟件更新,其中在計(jì)算機(jī)系統(tǒng)上存在虛 擬環(huán)境以支持多個(gè)操作系統(tǒng),包括第 一客戶操作系統(tǒng)和特權(quán)操作系統(tǒng);通過系統(tǒng)管理程序?qū)⒆R別的設(shè)備軟件更新通知給也在計(jì)算機(jī)系統(tǒng)上運(yùn)行 的特權(quán)操作系統(tǒng);響應(yīng)于該通知,特權(quán)操作系統(tǒng)執(zhí)行以下步驟拒絕一個(gè)或多個(gè)客戶操作系統(tǒng)對設(shè)備的訪問,所述一個(gè)或多個(gè)客戶操作系統(tǒng)包括第 一客戶操作系統(tǒng);在拒絕之后使用識別的設(shè)備軟件更新來更新用于操作設(shè)備的設(shè)備軟件;以及在更新之后恢復(fù)所述一個(gè)或多個(gè)客戶操作系統(tǒng)和設(shè)備之間的訪問。
16. 如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,包括功能描述材料,該功能 描述材料使得數(shù)據(jù)處理系統(tǒng)執(zhí)行額外的動作,包括特權(quán)操作系統(tǒng)驗(yàn)證識別的設(shè)備軟件更新的合法性,其中僅響應(yīng)于成功的驗(yàn) 證來執(zhí)行該更新,其中驗(yàn)證進(jìn)一步包括比較設(shè)備軟件更新的數(shù)字簽名和預(yù)先建 立的數(shù)字簽名。
17. 如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,其中拒絕進(jìn)一步包括功能描 述材料,該功能描述材料使得數(shù)據(jù)處理系統(tǒng)執(zhí)行額外的動作,包括識別對應(yīng)于每個(gè)客戶操作系統(tǒng)的一個(gè)或多個(gè)客戶操作系統(tǒng)拒絕方法; 響應(yīng)于至少一個(gè)識別的拒絕方法來啟動識別的熱插拔; 響應(yīng)于至少一個(gè)拒絕方法來強(qiáng)制中止至少 一個(gè)客戶操作系統(tǒng); 響應(yīng)于至少一個(gè)拒絕方法來停止至少一個(gè)客戶才喿作系統(tǒng);以及 響應(yīng)于至少一個(gè)拒絕方法來從至少一個(gè)客戶操作系統(tǒng)向設(shè)備發(fā)出高速緩 存請求》
18. 如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括功能描述材料, 該功能描述材料使得數(shù)據(jù)處理系統(tǒng)執(zhí)行額外的動作,包括在拒絕步驟之后使得設(shè)備脫機(jī);以及. 在恢復(fù)步驟之前重新啟動設(shè)備。
19. 如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,其中特權(quán)操作系統(tǒng)是在計(jì)算 機(jī)系統(tǒng)上運(yùn)行的系統(tǒng)管理程序,并且其中從由設(shè)備固件和設(shè)備驅(qū)動器組成的組 中選擇設(shè)備軟件。
20. 如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括功能描述材料, 該功能描述材料使得數(shù)據(jù)處理系統(tǒng)執(zhí)行額外的動作,包括使用第 一客戶操作系統(tǒng)從第二計(jì)算機(jī)系統(tǒng)下載設(shè)備軟件更新,所述第二計(jì)算機(jī)系統(tǒng)使用計(jì)算機(jī)網(wǎng)絡(luò)連接至計(jì)算機(jī)系統(tǒng),下載的設(shè)備軟件更新存儲在第一 客戶操作系統(tǒng)可訪問的設(shè)備軟件存儲區(qū)域;第 一客戶操作系統(tǒng)執(zhí)行設(shè)備軟件更新;當(dāng)正在執(zhí)行的設(shè)備軟件更新嘗試更新設(shè)備軟件時(shí)將控制轉(zhuǎn)移至特權(quán)操作 系統(tǒng),其中特權(quán)操作系統(tǒng)通過驗(yàn)證連接來做出響應(yīng);響應(yīng)于被成功驗(yàn)證的連接,控制被轉(zhuǎn)移回第一客戶操作系統(tǒng),其上第一客 戶操作系統(tǒng)通過存儲前端驅(qū)動器來做出響應(yīng),然后控制與驅(qū)動器更新處理一起 被轉(zhuǎn)移回特權(quán)操作系統(tǒng);響應(yīng)于接收驅(qū)動器更新處理,特權(quán)操作系統(tǒng)執(zhí)行以下步驟 驗(yàn)證驅(qū)動器軟件更新; 使設(shè)備不工作;以及執(zhí)行更新步驟,其導(dǎo)致對應(yīng)于已更新的前端驅(qū)動器的已更新的后端驅(qū)動器。
全文摘要
提供具有系統(tǒng)管理程序提供的虛擬環(huán)境的系統(tǒng)、方法和程序產(chǎn)品。在該虛擬環(huán)境中,一個(gè)或多個(gè)客戶操作系統(tǒng)與特權(quán)操作系統(tǒng)同時(shí)運(yùn)行。一個(gè)客戶操作系統(tǒng)識別設(shè)備軟件更新,例如設(shè)備驅(qū)動器或固件更新,對應(yīng)于連接至計(jì)算機(jī)系統(tǒng)的硬件設(shè)備。系統(tǒng)管理程序用于將設(shè)備軟件更新通知給特權(quán)操作系統(tǒng)。當(dāng)特權(quán)操作系統(tǒng)被通知該更新時(shí),特權(quán)操作系統(tǒng)使用一個(gè)或多個(gè)技術(shù)來拒絕客戶操作系統(tǒng)對設(shè)備的訪問。然后特權(quán)操作系統(tǒng)更新該設(shè)備軟件更新。在已經(jīng)應(yīng)用了設(shè)備軟件更新之后,特權(quán)操作系統(tǒng)恢復(fù)客戶操作系統(tǒng)和硬件設(shè)備之間的訪問。
文檔編號G06F9/445GK101488092SQ20091000234
公開日2009年7月22日 申請日期2009年1月7日 優(yōu)先權(quán)日2008年1月7日
發(fā)明者蘭德爾·斯科特·斯普林菲爾德, 戴維·卡羅列·查利納, 羅德·戴維·沃特曼, 馬克·查爾斯·戴維斯 申請人:聯(lián)想(新加坡)私人有限公司