專利名稱::用于為計(jì)算機(jī)程序打補(bǔ)丁的系統(tǒng)和方法用于為計(jì)算機(jī)程序打補(bǔ)丁的系統(tǒng)和方法交叉引用信息這是于2004年12月30日提交的美國專利申請(qǐng)No.ll/026520的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益,并且是2003年6月11日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益。這是于2004年12月30日提交的美國專利申請(qǐng)No.ll/027489的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益。這是于2005年3月16日提交的美國專利申請(qǐng)No.ll/081856和11/082194的部分繼續(xù)申請(qǐng),它們均是2003年6月11日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益。這是于2006年1月3日提交的美國專利申請(qǐng)No.11/324565、11/324571、11/324375、11/324607、11/324545、11/324572、11/324573和ll/324496的部分繼續(xù)申請(qǐng),它們均是2003年6月11日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)、10/459768(現(xiàn)在為公布于2007年1月9日的美國專利No.7162724)和10/459870(現(xiàn)在為公布于2007年1月16日的美國專利No.7165260)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/026520的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益并且是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/027489的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益;以及是于2005年3月16日提交的美國專利申請(qǐng)No.ll/081856和ll/082194的部分繼續(xù)申請(qǐng),其是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3曰的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益。這是于2006年9月28日提交的美國專利申請(qǐng)No.ll/528858的部分繼續(xù)申請(qǐng),其是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)、10/459768(現(xiàn)在為公布于2007年l月9日的美國專利No.7162724)和10/459870(現(xiàn)在為公布于2007年l月16日的美國專利No.7165260)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/026520的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益,并且是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/027489的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益;是于2005年3月16日提交的美國專利申請(qǐng)No.ll/081856和11/082194的部分繼續(xù)申請(qǐng),它們均是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;于2006年1月3日提交的美國專利申請(qǐng)No.11/324565、11/324571、11/324375、11/324607、11/324545、11/324572、11/324573和ll/324496的部分繼續(xù)申請(qǐng),它們均是2003年6月11日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)、10/459768(現(xiàn)在為公布于2007年1月9日的美國專利No.7162724)和10/459870(現(xiàn)在為公布于2007年1月16日的美國專利No.7165260)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/026520的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益,并且是2003年6月11日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利No.7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益;是于2004年12月30日提交的美國專利申請(qǐng)No.ll/027489的部分繼續(xù)申請(qǐng),其要求于2003年12月30日提交的美國臨時(shí)專利申請(qǐng)No.60/533388的權(quán)益;以及是于2005年3月16日提交的美國專利申請(qǐng)No.ll/081856和ll/082194的部分繼續(xù)申請(qǐng),它們均是2003年6月ll日提交的美國專利申請(qǐng)No.10/459936(現(xiàn)在為公布于2006年10月3日的美國專利Na7117495)的部分繼續(xù)申請(qǐng),其要求于2002年6月12日提交的美國臨時(shí)專利申請(qǐng)No.60/387969的權(quán)益。以上專利和專利申請(qǐng)的公開內(nèi)容整體通過引用的方式合并在此。
背景技術(shù):
:在計(jì)算技術(shù)中,術(shù)語"補(bǔ)丁"通常用來指設(shè)計(jì)成改變計(jì)算機(jī)程序的先前版本的更新。補(bǔ)丁通常用來對(duì)軟件的安全漏洞和缺陷(bug)進(jìn)行修復(fù)。計(jì)算機(jī)程序的典型制造商定期發(fā)布補(bǔ)丁,并且諸如計(jì)算系統(tǒng)的用戶或管理員的負(fù)責(zé)維護(hù)計(jì)算系統(tǒng)的人員接收并在其各自的計(jì)算系統(tǒng)中安裝所述補(bǔ)丁。然而,計(jì)算機(jī)程序補(bǔ)丁的安裝是重要的并且存在潛在的問題。例如,可能會(huì)發(fā)現(xiàn)所安裝的補(bǔ)丁是有缺陷的,或者其可能干擾在計(jì)算機(jī)上運(yùn)行的其它計(jì)算機(jī)程序或與其相沖突,導(dǎo)致一個(gè)或多個(gè)計(jì)算機(jī)程序?qū)τ谔囟ǖ挠?jì)算體系出現(xiàn)故障或者出現(xiàn)功能異常。此外,在安裝補(bǔ)丁之后進(jìn)行補(bǔ)救可以是非常困難和耗時(shí)的,例如當(dāng)安裝補(bǔ)丁已經(jīng)帶來計(jì)算機(jī)統(tǒng)問題之后所需要的,在特定情況下,可能不得不卸載計(jì)算機(jī)程序的基本版本并然后再次安裝以便消除由錯(cuò)誤補(bǔ)丁帶來的影響。對(duì)于維護(hù)具有大量計(jì)算機(jī)的計(jì)算系統(tǒng)的管理員和組織來說,與軟件打補(bǔ)丁相關(guān)聯(lián)的問題是嚴(yán)重的。在這樣的環(huán)境中,卸載補(bǔ)丁可以是非常困難的。在所安裝的補(bǔ)丁已經(jīng)導(dǎo)致問題的特定情況下,管理員及其團(tuán)隊(duì)可能被迫投入非常大量的時(shí)間來檢查系統(tǒng)中單個(gè)計(jì)算機(jī)的注冊(cè)表及文件和/或重新將計(jì)算機(jī)程序安裝計(jì)算機(jī)以便嘗試識(shí)別和修復(fù)由所述補(bǔ)丁導(dǎo)致的問題。由于與軟件補(bǔ)丁的傳統(tǒng)安裝相關(guān)聯(lián)的潛在問題以及這些問題的重要性,管理員及其團(tuán)隊(duì)通常的習(xí)慣是在專門的"測(cè)試計(jì)算機(jī)"一已經(jīng)配置成對(duì)實(shí)際網(wǎng)絡(luò)上的計(jì)算機(jī)進(jìn)行模擬或表示的計(jì)算機(jī)一上進(jìn)行補(bǔ)丁安裝的"試運(yùn)行",并且在將所述補(bǔ)丁安裝到實(shí)際網(wǎng)絡(luò)上的計(jì)算機(jī)上之前首先在所述測(cè)試計(jì)算機(jī)上驗(yàn)證成功的安裝和運(yùn)行。這種方法需要大量的時(shí)間和資源,包括專用的計(jì)算設(shè)備、軟件許可和人工勞動(dòng)力。然而,由于傳統(tǒng)的軟件打補(bǔ)丁技術(shù)的局限以及與使用標(biāo)準(zhǔn)技術(shù)的不成功補(bǔ)丁安裝相關(guān)聯(lián)的潛在成本,所以組織繼續(xù)使用這種方法。
發(fā)明內(nèi)容本發(fā)明涉及用于為計(jì)算機(jī)程序打補(bǔ)丁的系統(tǒng)和方法。應(yīng)當(dāng)理解,在此公開的實(shí)例能夠以多種方式來實(shí)現(xiàn),包括作為一個(gè)或多個(gè)過程、裝置、系統(tǒng)、設(shè)備、方法、計(jì)算機(jī)可讀介質(zhì)或包含在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品。在一個(gè)實(shí)例中,將計(jì)算機(jī)程序補(bǔ)丁虛擬安裝到具有基本文件系統(tǒng)和配置、計(jì)算機(jī)程序以及補(bǔ)丁分層子系統(tǒng)的計(jì)算設(shè)備中。在特定實(shí)施例中,所述虛擬安裝可包括將補(bǔ)丁內(nèi)容存儲(chǔ)到補(bǔ)丁層,以及生成并存儲(chǔ)映射數(shù)據(jù),所述映射數(shù)據(jù)定義所述補(bǔ)丁層中的補(bǔ)丁內(nèi)容和所述基本文件系統(tǒng)和配置的內(nèi)容之間的至少一個(gè)關(guān)系。所虛擬安裝的補(bǔ)丁可以在計(jì)算設(shè)備上被使能(enable)。在特定實(shí)施例中,通過將映射數(shù)據(jù)應(yīng)用到所述補(bǔ)丁分層子系統(tǒng)以使得所述補(bǔ)丁映射子系統(tǒng)配置成基于所述映射數(shù)據(jù)有選擇地將訪問請(qǐng)求(例如,對(duì)于文件或配置設(shè)置的請(qǐng)求)從所述基本文件系統(tǒng)和配置重定向到所述補(bǔ)丁層來對(duì)所述補(bǔ)丁進(jìn)行使能??蓪?duì)所使能的補(bǔ)丁進(jìn)行測(cè)試??墒顾鼓艿难a(bǔ)丁無效(disable)。在特定實(shí)施例中,通過反轉(zhuǎn)(reversing)映射數(shù)據(jù)到補(bǔ)丁分層子系統(tǒng)的應(yīng)用而使補(bǔ)丁無效。可以將虛擬安裝的補(bǔ)丁"提交(commit)",即實(shí)際安裝,到計(jì)算設(shè)備的基本文件系統(tǒng)和配置中。在特定實(shí)施例中,補(bǔ)丁層和/或與所述補(bǔ)丁層相關(guān)聯(lián)的映射數(shù)據(jù)用來提交補(bǔ)丁。可以在本地或遠(yuǎn)程對(duì)補(bǔ)丁的虛擬安裝、使能、測(cè)試、使無效和提交進(jìn)行控制。在特定實(shí)施例中,配置所述補(bǔ)丁分層子系統(tǒng)以對(duì)補(bǔ)丁執(zhí)行虛擬安裝、使能、使無效和提交步驟。以下公開了其它細(xì)節(jié)和示例性實(shí)施例。參考附圖描述了各個(gè)實(shí)施例,其中相同的附圖標(biāo)記表示相同的元件,其中-圖l示出了用于為計(jì)算機(jī)程序打補(bǔ)丁的示例性系統(tǒng)。圖2A示出了在計(jì)算設(shè)備環(huán)境中具有補(bǔ)丁分層子系統(tǒng)的示例性補(bǔ)丁系統(tǒng)。圖2B示出了虛擬安裝了補(bǔ)丁層的圖2A的計(jì)算設(shè)備環(huán)境。圖2C示出了虛擬安裝的補(bǔ)丁層被使能的圖2B的計(jì)算設(shè)備環(huán)境。圖2D示出了虛擬安裝了另一個(gè)補(bǔ)丁層的圖2C的計(jì)算設(shè)備環(huán)境。圖2E示出了虛擬安裝的其它補(bǔ)丁層被使能的圖2D的計(jì)算設(shè)備環(huán)境o圖2F示出了補(bǔ)丁層結(jié)合到復(fù)合補(bǔ)丁層中的圖2E的計(jì)算設(shè)備環(huán)境。圖2G示出了補(bǔ)丁實(shí)際安裝("提交")到基本文件系統(tǒng)和配置的圖2B的計(jì)算設(shè)備環(huán)境。圖3示出了圖2A的計(jì)算設(shè)備環(huán)境并且進(jìn)一步包括補(bǔ)丁層管理應(yīng)用。圖4示出了為計(jì)算機(jī)程序打補(bǔ)丁的示例性方法。圖5示出了控制計(jì)算機(jī)程序打補(bǔ)丁的示例性方法。具體實(shí)施例方式參考附圖將最好地理解在此描述的實(shí)施例。將容易理解的是,在此一般性描述并在附圖中示出的部件可以用多種不同的配置進(jìn)行布置和設(shè)計(jì)。因此,如圖中所表示的詳細(xì)描述并非意在限制本公開的范圍,而只是表示特定的實(shí)施例。一般概念在此描述用于為計(jì)算機(jī)程序打補(bǔ)丁的示例性系統(tǒng)和方法。如在此所使用的,術(shù)語"計(jì)算機(jī)程序"可寬泛地指包含在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可讀指令的任意集合,所述指令能夠由計(jì)算設(shè)備執(zhí)行。計(jì)算機(jī)程序可包括但不限于應(yīng)用程序和操作系統(tǒng)。在特定實(shí)施例中,計(jì)算機(jī)程序補(bǔ)丁可虛擬安裝到具有基本文件系統(tǒng)和配置、計(jì)算機(jī)程序和補(bǔ)丁分層子系統(tǒng)的計(jì)算設(shè)備中。補(bǔ)丁的虛擬安裝可允許對(duì)所述補(bǔ)丁進(jìn)行使能、測(cè)試、使無效和/或"提交"(即實(shí)際安裝)。例如,在特定實(shí)施例中,可通過激活映射數(shù)據(jù)對(duì)虛擬安裝的補(bǔ)丁進(jìn)行使能,所述映射數(shù)據(jù)產(chǎn)生于所述補(bǔ)丁的虛擬安裝期間并且配置成用于有選擇地將對(duì)文件和配置設(shè)置的訪問請(qǐng)求從所述基本文件系統(tǒng)和配置重定向到所述虛擬安裝的補(bǔ)丁。對(duì)于在所述計(jì)算設(shè)備上運(yùn)行的計(jì)算機(jī)程序(例如,應(yīng)用程序或操作系統(tǒng))來說,虛擬安裝并使能的補(bǔ)丁配置成看上去及其功能就好像所述補(bǔ)丁實(shí)際安裝到所述計(jì)算設(shè)備的基本文件系統(tǒng)和配置中一樣。然而,由于所述補(bǔ)丁是虛擬安裝并使能的而不是實(shí)際安裝的,所以能夠以比傳統(tǒng)的卸載或其它補(bǔ)救技術(shù)明顯更干凈并且更方便和穩(wěn)定的方式使所述補(bǔ)丁無效。當(dāng)測(cè)試并發(fā)現(xiàn)所述虛擬安裝并使能的補(bǔ)丁不能正常運(yùn)行或者給其它計(jì)算機(jī)程序帶來問題(例如,沖突)時(shí),該"使補(bǔ)丁無效"的特征會(huì)特別有好處。另外,可以方便地將虛擬安裝的補(bǔ)丁"提交"到所述計(jì)算設(shè)備的基本文件系統(tǒng)和配置。例如,與所述虛擬安裝的補(bǔ)丁相關(guān)聯(lián)的映射數(shù)據(jù)可以用來將虛擬安裝的補(bǔ)丁轉(zhuǎn)換為實(shí)際安裝的補(bǔ)丁。因此,如果測(cè)試并驗(yàn)證了虛擬安裝并使能的補(bǔ)丁能夠正常工作,則能夠方便地將所述虛擬安裝的補(bǔ)丁"提交"給計(jì)算設(shè)備。所述"提交補(bǔ)丁"的特征是對(duì)已經(jīng)虛擬安裝、使能和測(cè)試的補(bǔ)丁進(jìn)行實(shí)際安裝的方便的方式。提交虛擬補(bǔ)丁能夠用來將虛擬安裝并使能的補(bǔ)丁數(shù)目保持在可接受的水平。如果允許所使能的補(bǔ)丁數(shù)目增長(zhǎng)過大,則與將訪問請(qǐng)求重定向到適當(dāng)補(bǔ)丁相關(guān)聯(lián)的操作會(huì)變得明顯消耗計(jì)算資源。可以從遠(yuǎn)程位置對(duì)補(bǔ)丁的虛擬安裝、使能、使無效、測(cè)試和提交進(jìn)行控制,并且可因此便于在計(jì)算網(wǎng)絡(luò)上進(jìn)行一個(gè)或多個(gè)補(bǔ)丁的部署。例如,對(duì)于具有服務(wù)器以及一個(gè)或多個(gè)可通信地連接到所述服務(wù)器的計(jì)算設(shè)備的網(wǎng)絡(luò)來說,所述服務(wù)器可配置成用于將補(bǔ)丁傳遞到一個(gè)或多個(gè)計(jì)算設(shè)備,并且對(duì)所述補(bǔ)丁的虛擬安裝、使能、測(cè)試、使無效和/或提交進(jìn)行遠(yuǎn)程控制。明顯地,由于對(duì)虛擬安裝并使能的補(bǔ)丁進(jìn)行補(bǔ)救是容易的,所以補(bǔ)丁可以部署在網(wǎng)絡(luò)上而無需首先在單獨(dú)的測(cè)試環(huán)境中經(jīng)受測(cè)試。因此,計(jì)算系統(tǒng)或網(wǎng)絡(luò)的管理員能夠節(jié)省時(shí)間和其它資源,包括可能已經(jīng)花費(fèi)在將補(bǔ)丁安裝到系統(tǒng)或?qū)嶋H網(wǎng)絡(luò)上的計(jì)算設(shè)備之前所有的維護(hù)單獨(dú)的測(cè)試環(huán)境以及對(duì)所述單獨(dú)的測(cè)試環(huán)境中的補(bǔ)丁進(jìn)行安裝、測(cè)試、故障定位和補(bǔ)救上的資源。示例性系統(tǒng)現(xiàn)在轉(zhuǎn)向附圖,圖i示出了示例性計(jì)算系統(tǒng)ioo(或簡(jiǎn)稱"系統(tǒng)100"),其配置成支持如在此描述的對(duì)計(jì)算機(jī)程序打補(bǔ)丁。如所示的,計(jì)算系統(tǒng)100可包括可通信地耦合到計(jì)算設(shè)備120-1至120-N(統(tǒng)稱"計(jì)算設(shè)備120")的補(bǔ)丁控制子系統(tǒng)IIO。該補(bǔ)丁控制子系統(tǒng)110和計(jì)算設(shè)備120可使用任何適當(dāng)?shù)耐ㄐ偶夹g(shù)在網(wǎng)絡(luò)130上彼此通信,所述通信技術(shù)包括能夠支持在此描述的過程的眾所周知的網(wǎng)絡(luò)通信技術(shù)、設(shè)備、信號(hào)和協(xié)議。網(wǎng)絡(luò)130可包括能夠承載連接到網(wǎng)絡(luò)130的設(shè)備之間的通信信號(hào)的任何類型和數(shù)目的網(wǎng)絡(luò),包括但不限于局域網(wǎng)、廣域網(wǎng)、內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng)。補(bǔ)丁控制子系統(tǒng)110可包括一個(gè)或多個(gè)設(shè)備,所述設(shè)備配置成在網(wǎng)絡(luò)130上與計(jì)算設(shè)備120進(jìn)行通信。例如,在特定實(shí)施例中,補(bǔ)丁控制子系統(tǒng)110可包括一個(gè)或多個(gè)服務(wù)器或包含在其上,例如由Symantec公司的子公司Altiris有限公司提供的軟件Altiris⑧NotificationServerTM軟件。補(bǔ)丁控制子系統(tǒng)110可包括并且可配置成執(zhí)行包含在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令配置成用于控制補(bǔ)丁操作,包括生成代表補(bǔ)丁、補(bǔ)丁層、補(bǔ)丁命令和/或測(cè)試命令的數(shù)據(jù)并將其傳輸?shù)接?jì)算設(shè)備120。因此,補(bǔ)丁控制子系統(tǒng)110的用戶,例如系統(tǒng)100的管理員,可利用補(bǔ)丁控制子系統(tǒng)110來控制用于在網(wǎng)絡(luò)130上對(duì)計(jì)算設(shè)備120上的計(jì)算機(jī)程序進(jìn)行打補(bǔ)丁的操作。例如,補(bǔ)丁控制子系統(tǒng)110可接收或訪問由諸如計(jì)算機(jī)程序的制造商或銷售商的實(shí)體所發(fā)布的計(jì)算機(jī)程序補(bǔ)丁。例如,可使所述補(bǔ)丁可訪問來在互聯(lián)網(wǎng)上下載。在用戶的指示下,補(bǔ)丁控制子系統(tǒng)110可以在網(wǎng)絡(luò)130上將所述補(bǔ)丁傳遞到計(jì)算設(shè)備120的一個(gè)或多個(gè)??梢允褂萌魏芜m合的技術(shù)并且以任何可接受的形式來傳遞代表所述補(bǔ)丁的數(shù)據(jù)。在特定實(shí)施例中,補(bǔ)丁控制子系統(tǒng)110可將用于所述補(bǔ)丁的原始安裝可執(zhí)行文件(executable)傳遞到計(jì)算設(shè)備120,在這種情況下,計(jì)算設(shè)備120可配置成使用所述可執(zhí)行文件來虛擬安裝所述補(bǔ)丁。在其它實(shí)施例中,補(bǔ)丁控制子系統(tǒng)110可虛擬安裝所述補(bǔ)丁并且將代表所述虛擬安裝的補(bǔ)丁的數(shù)據(jù)輸出到計(jì)算設(shè)備120,所述計(jì)算設(shè)備120可將所輸出的數(shù)據(jù)存儲(chǔ)到一個(gè)或多個(gè)存儲(chǔ)器位置,以便將所述補(bǔ)丁虛擬安裝到計(jì)算設(shè)備110。下面進(jìn)一步描述計(jì)算設(shè)備120和/或補(bǔ)丁控制子系統(tǒng)110如何虛擬安裝補(bǔ)丁的實(shí)例。補(bǔ)丁控制子系統(tǒng)110可向計(jì)算設(shè)備120提供其它控制信號(hào),包括但并不限于補(bǔ)丁使能、使無效、測(cè)試和提交命令。如上所述,計(jì)算設(shè)備120可配置成響應(yīng)于這些命令來執(zhí)行特定的操作。計(jì)算設(shè)備120可包括能夠運(yùn)行計(jì)算機(jī)程序并且支持如在此描述的為計(jì)算機(jī)程序打補(bǔ)丁的任何硬件和計(jì)算指令(例如,軟件)。例如,所述計(jì)算設(shè)備可包括但并不限于個(gè)人計(jì)算機(jī)、工作站、個(gè)人數(shù)字助理或具有CPU、存儲(chǔ)器、輸出和輸出設(shè)備、至少一個(gè)固定磁盤以及至少一個(gè)能夠由設(shè)備執(zhí)行的計(jì)算機(jī)程序的任何設(shè)備。所預(yù)期的是,在此描述的原理可應(yīng)用于使用在此公開的方法和原理的現(xiàn)有及待開發(fā)的這些和其它計(jì)算系統(tǒng)和設(shè)備。同樣,雖然下面的許多實(shí)例涉及具有單個(gè)基本文件系統(tǒng)和配置的計(jì)算設(shè)備,但是下面公開的概念、原理和實(shí)例可擴(kuò)展到跨越若干種或許多可訪問的文件系統(tǒng)和/或配置來提供打補(bǔ)丁功能。在特定實(shí)施例中,計(jì)算系統(tǒng)100可包括配置成執(zhí)行在此描述的過程的任何計(jì)算機(jī)硬件和/或指令(例如,軟件程序)或者軟件和硬件的組合。特別地,應(yīng)當(dāng)理解的是,系統(tǒng)100可包括任意數(shù)量的眾所周知的計(jì)算設(shè)備,并且可采用任意數(shù)量的眾所周知的計(jì)算機(jī)操作系統(tǒng),包括但決不限于MicrosoftWindows、UNIX、Macintosh⑧和Linux⑧操作系統(tǒng)的已知版本和/或品種。因此,在此描述的過程可至少部分地實(shí)現(xiàn)為包含在計(jì)算機(jī)可讀介質(zhì)上并且能由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的指令(例如,一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品)。通常,處理器(例如,微處理器)從例如存儲(chǔ)器、計(jì)算機(jī)可讀介質(zhì)等接收指令并執(zhí)行那些指令,由此執(zhí)行一個(gè)或多個(gè)過程,所述過程包括在此描述的一個(gè)或多個(gè)過程??梢允褂酶鞣N已知的計(jì)算可讀介質(zhì)來存儲(chǔ)和傳輸這種指令。計(jì)算機(jī)可讀介質(zhì)(也稱為處理器可讀介質(zhì))包括參與提供可由計(jì)算機(jī)(例如,由計(jì)算機(jī)的處理器)讀取的數(shù)據(jù)(例如,指令)的任何介質(zhì)。這種介質(zhì)可采用多種形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。例如,非易失性介質(zhì)可包括例如光或磁盤及其他永久性存儲(chǔ)器,易失性介質(zhì)可包括例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器("DRAM"),其典型地構(gòu)成主存儲(chǔ)器。傳輸介質(zhì)可包括例如同軸電纜、銅線和光纖,包括線路,所述線路包括耦合到計(jì)算機(jī)處理器的系統(tǒng)總線。傳輸介質(zhì)可包括或傳輸諸如在射頻("RF")和紅外("IR")數(shù)據(jù)通信期間生成的聲波、光波和電磁發(fā)射。例如,計(jì)算機(jī)可讀介質(zhì)的普通形式包括軟盤、硬盤、磁卡、任何其它磁介質(zhì)、CD-ROM、DVD、任何其它光學(xué)介質(zhì)、穿孔卡片、紙帶、具有穿孔圖案的任何其它物理介質(zhì)、RAM、PROM、EPROM、FLASH-EEPROM,任何其它存儲(chǔ)器芯片或卡帶或者計(jì)算機(jī)能夠從其讀取的任何其它介質(zhì)。雖然圖1示出了示例性的計(jì)算系統(tǒng)100,但是圖l所示的示例性部件并非意在進(jìn)行限制。其實(shí),另外的或替選的部件、實(shí)施方式或計(jì)算系統(tǒng)可用來實(shí)施在此描述的原理和過程。在圖1所示的系統(tǒng)100中,補(bǔ)丁控制子系統(tǒng)110的用戶可提供有對(duì)于打補(bǔ)丁操作的實(shí)質(zhì)性控制,包括能夠遠(yuǎn)程控制諸如在計(jì)算設(shè)備120的一個(gè)或多個(gè)上虛擬安裝、使能、測(cè)試、使無效和/或提交補(bǔ)丁的打補(bǔ)丁操作。當(dāng)與傳統(tǒng)的打補(bǔ)丁技術(shù)比較時(shí),系統(tǒng)100能夠?yàn)檠a(bǔ)丁控制子系統(tǒng)110的用戶提供用于對(duì)計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)程序打補(bǔ)丁的明顯改進(jìn)的能力。例如,如下面進(jìn)一步描述的,補(bǔ)丁控制子系統(tǒng)110的用戶可進(jìn)行遠(yuǎn)程指示并使計(jì)算設(shè)備120將已經(jīng)虛擬安裝并使能的補(bǔ)丁無效,或者提交虛擬安裝的補(bǔ)丁。圖2A-G示出了示例性補(bǔ)丁系統(tǒng)200,其可在諸如計(jì)算設(shè)備120之一的環(huán)境的計(jì)算設(shè)備環(huán)境中實(shí)施。圖2A-G示出了處于示例性打補(bǔ)丁過程的各個(gè)階段的補(bǔ)丁系統(tǒng)200。如圖2A所示,示例性計(jì)算設(shè)備環(huán)境可包括基本操作系統(tǒng)("基本OS")210,其形成了應(yīng)用程序220(例如,軟件應(yīng)用程序)能夠利用其運(yùn)行并且文件能夠在文件系統(tǒng)中訪問的平臺(tái)。在特定實(shí)施例中,基本OS210包括MicrosoftWindows⑧操作系統(tǒng)軟件?;綩S210可包括基本配置設(shè)置(例如,注冊(cè)表設(shè)置)和文件,所述文件對(duì)于應(yīng)用220全局可用,用于讀取和寫入操作。基本OS210的基本配置設(shè)置和文件可包括在基本文件系統(tǒng)和配置庫230中,也稱作基本文件系統(tǒng)和配置230,以用于執(zhí)行基本OS210的功能,包括運(yùn)行文件系統(tǒng)、諸如注冊(cè)表的配置設(shè)置以及其它操作系統(tǒng)功能??蓪ɑ綩S210的基本文件和配置設(shè)置的基本文件系統(tǒng)和配置庫230存儲(chǔ)到計(jì)算設(shè)備120的存儲(chǔ)器中的特定位置。如果使用傳統(tǒng)的打補(bǔ)丁技術(shù)將計(jì)算機(jī)程序補(bǔ)丁安裝在圖2A的計(jì)算環(huán)境中,則存儲(chǔ)在存儲(chǔ)器中的基本OS210的文件和/或配置設(shè)置會(huì)被補(bǔ)丁內(nèi)容代替。這會(huì)使所述補(bǔ)丁的卸載異常困難,尤其是計(jì)算系統(tǒng)中的文件或配置設(shè)置被重寫時(shí)或最近沒有在安裝補(bǔ)丁之前記錄基本文件和配置設(shè)置的快照時(shí)。補(bǔ)丁系統(tǒng)200可包括補(bǔ)丁分層子系統(tǒng)240,其可安裝并配置為在計(jì)算設(shè)備120上運(yùn)行。當(dāng)與傳統(tǒng)的打補(bǔ)丁技術(shù)比較時(shí),補(bǔ)丁分層子系統(tǒng)240提供了改進(jìn)的打補(bǔ)丁操作。補(bǔ)丁分層子系統(tǒng)240可配置成執(zhí)行在此描述的打補(bǔ)丁操作,包括用于接收、虛擬安裝、使能、使無效、測(cè)試和/或提交補(bǔ)丁的操作。因此,利用所安裝的補(bǔ)丁分層子系統(tǒng)240,計(jì)算設(shè)備120配置成對(duì)存儲(chǔ)在計(jì)算設(shè)備120上的包括應(yīng)用程序220和/或基本OS210的計(jì)算機(jī)程序打補(bǔ)丁。補(bǔ)丁分層子系統(tǒng)240可以任何適合的方式安裝到計(jì)算設(shè)備120,包括通過執(zhí)行從補(bǔ)丁控制子系統(tǒng)接收的安裝可執(zhí)行文件。在其它實(shí)施例中,補(bǔ)丁分層子系統(tǒng)240的子集可配置成在計(jì)算設(shè)備120外部運(yùn)行,例如在補(bǔ)丁控制子系統(tǒng)110或計(jì)算設(shè)備120可訪問的另一計(jì)算設(shè)備(例如,服務(wù)器)上運(yùn)行。因此,補(bǔ)丁分層子系統(tǒng)240的特定操作可作為服務(wù)(例如,網(wǎng)絡(luò)服務(wù))提供給計(jì)算設(shè)備i20。這種配置對(duì)于計(jì)算設(shè)備120的計(jì)算資源有限的實(shí)施方式中是有用的。然而,典型地,配置用于截取訪問請(qǐng)求的補(bǔ)丁分層子系統(tǒng)240的至少一部分將在計(jì)算設(shè)備120上實(shí)施。補(bǔ)丁分層子系統(tǒng)240可配置成截取來自應(yīng)用程序220或其它計(jì)算機(jī)程序的訪問請(qǐng)求(例如,文件系統(tǒng)和注冊(cè)表訪問請(qǐng)求),并基于預(yù)定的映射數(shù)據(jù)來確定要將所述訪問請(qǐng)求指向何處。因此,補(bǔ)丁分層子系統(tǒng)240可有選擇地將對(duì)基本OS210的訪問請(qǐng)求重定向到已經(jīng)存儲(chǔ)在存儲(chǔ)器中諸如下面進(jìn)一步描述的補(bǔ)丁層的單獨(dú)和隔離位置的虛擬安裝并使能的補(bǔ)丁的內(nèi)容。補(bǔ)丁的虛擬安裝允許執(zhí)行重定向,使得計(jì)算設(shè)備210的應(yīng)用220和操作系統(tǒng)意識(shí)不到所述重定向。補(bǔ)丁分層子系統(tǒng)240可以用允許其截取指向基本文件系統(tǒng)和配置庫230(例如,基本OS210的文件和配置設(shè)置)中的內(nèi)容的訪問請(qǐng)求并且有選擇地將所述訪問請(qǐng)求重定向到存儲(chǔ)在另一個(gè)存儲(chǔ)器位置的補(bǔ)丁內(nèi)容的任何方式來實(shí)施。在特定實(shí)施例中,補(bǔ)丁分層子系統(tǒng)240與基本文件系統(tǒng)和配置230和/或基本OS210相關(guān)聯(lián)。作為實(shí)例,補(bǔ)丁分層子系統(tǒng)240的至少一部分可以作為操作系統(tǒng)內(nèi)核級(jí)別的一個(gè)或多個(gè)驅(qū)動(dòng)程序(例如,過濾器驅(qū)動(dòng)程序)來實(shí)施并配置成監(jiān)視對(duì)存儲(chǔ)在基本文件系統(tǒng)和配置庫230中的文件和配置設(shè)置的輸入和輸出請(qǐng)求。這可以通過監(jiān)視通過OS內(nèi)核I/0子系統(tǒng)的呼叫來實(shí)現(xiàn)。在特定實(shí)施例中,用于截取和重定向訪問請(qǐng)求的功能可至少部分地基于已通過引用的方式并入的一個(gè)或多個(gè)參考文獻(xiàn)的教導(dǎo)來實(shí)施,例如,包括前述美國專利No.7117495。圖2A示出了具有補(bǔ)丁分層子系統(tǒng)240的補(bǔ)丁系統(tǒng)200,所述補(bǔ)丁分層子系統(tǒng)240以沒有計(jì)算機(jī)程序補(bǔ)丁被虛擬安裝或使能的狀態(tài)安裝和運(yùn)行。因此,補(bǔ)丁分層子系統(tǒng)240通常配置成允許訪問請(qǐng)求繼續(xù)行進(jìn)到基本文件系統(tǒng)和配置庫230中的內(nèi)容。圖2B示出了已在計(jì)算設(shè)備120上接收并虛擬安裝了補(bǔ)丁("補(bǔ)丁A")的階段的補(bǔ)丁系統(tǒng)200??梢詮娜魏芜m合的源和以任何可接受的方式接收所述補(bǔ)丁,包括通過從補(bǔ)丁控制系統(tǒng)110在網(wǎng)絡(luò)130上傳輸。在特定實(shí)施例中,補(bǔ)丁分層子系統(tǒng)240可接收并執(zhí)行補(bǔ)丁可執(zhí)行文件以虛擬安裝所述補(bǔ)丁。補(bǔ)丁的這種虛擬安裝可包括創(chuàng)建補(bǔ)丁層250(用于補(bǔ)丁A的"補(bǔ)丁層A250")、將所述補(bǔ)丁的內(nèi)容(例如,包括在所述補(bǔ)丁中的一個(gè)或多個(gè)補(bǔ)丁對(duì)象)存儲(chǔ)到補(bǔ)丁層250,以及生成和存儲(chǔ)映射數(shù)據(jù)260(用于補(bǔ)丁層A250的"映射數(shù)據(jù)A260")的步驟。如圖2B所示,在一些實(shí)施例中,映射數(shù)據(jù)260可存儲(chǔ)在補(bǔ)丁層250中。作為選擇,映射數(shù)據(jù)260可存儲(chǔ)在補(bǔ)丁層250之外的另一位置。在其它實(shí)施例中,補(bǔ)丁分層子系統(tǒng)240可從補(bǔ)丁控制子系統(tǒng)110接收代表補(bǔ)丁層的輸出數(shù)據(jù),在這種情況下,補(bǔ)丁分層子系統(tǒng)240可使用所接收的數(shù)據(jù)來將內(nèi)容虛擬安裝在補(bǔ)丁層中。例如,補(bǔ)丁控制子系統(tǒng)IIO可使用補(bǔ)丁可執(zhí)行文件來創(chuàng)建補(bǔ)丁層,所述補(bǔ)丁層能夠輸出到一個(gè)或多個(gè)計(jì)算設(shè)備120。從補(bǔ)丁控制子系統(tǒng)110所接收的數(shù)據(jù)可包括映射數(shù)據(jù)260或者可包括能夠被補(bǔ)丁分層子系統(tǒng)240用來生成并存儲(chǔ)映射數(shù)據(jù)260的信息。補(bǔ)丁分層子系統(tǒng)240可將所接收和/或生成的內(nèi)容存儲(chǔ)到成為補(bǔ)丁層250的存儲(chǔ)器中的位置??苫诨蚶靡淹ㄟ^引用的方式并入的一個(gè)或多個(gè)參考文獻(xiàn)的教導(dǎo)來執(zhí)行包括上述示例性操作的用于虛擬安裝補(bǔ)丁的操作,例如,包括如在上述美國專利No.7117495中所公開的關(guān)于"捕獲"操作和創(chuàng)建"層"的教導(dǎo)。補(bǔ)丁層250可包括與補(bǔ)丁相關(guān)聯(lián)的任何內(nèi)容,例如包括一個(gè)或多個(gè)補(bǔ)丁對(duì)象(例如,文件和配置設(shè)置)的組、補(bǔ)丁標(biāo)識(shí)信息、補(bǔ)丁版本信息(例如,版本號(hào))、補(bǔ)丁發(fā)布日期信息、時(shí)間戳信息以及識(shí)別要被所述補(bǔ)丁替代的一個(gè)或多個(gè)其它補(bǔ)丁的補(bǔ)丁替代(supersedure)信息。補(bǔ)丁層250可包括其它信息,包括但不限于能夠用來識(shí)別該補(bǔ)丁層250相對(duì)于其它補(bǔ)丁層250的優(yōu)先級(jí)的優(yōu)先級(jí)信息,以及指示包括在補(bǔ)丁層250中的內(nèi)容類型的層類型信息。例如,如2006年9月28日提交的上述美國專利申請(qǐng)No.ll/528858中所公開的,層類型信息可將補(bǔ)丁層250識(shí)別為與補(bǔ)丁內(nèi)容相關(guān)聯(lián),由此允許將補(bǔ)丁層250與其它類型的層區(qū)別對(duì)待(例如,優(yōu)先級(jí)更高)。在特定實(shí)施例中,層類型信息可用來區(qū)別不同類型的補(bǔ)丁。例如,可以通過為它們指定不同的層類型來將操作系統(tǒng)補(bǔ)丁與應(yīng)用補(bǔ)丁區(qū)別開來。因此,能夠以自定義方式來識(shí)別和處理OS補(bǔ)丁,包括使OS補(bǔ)丁層250在引導(dǎo)周期(bootcycle)之初就可用。如另一個(gè)實(shí)例,可采用為OS補(bǔ)丁自定義的補(bǔ)丁優(yōu)先級(jí)(例如,版本檢査)操作來處理一組虛擬安裝并使能的OS補(bǔ)丁層250中潛在的復(fù)雜優(yōu)先級(jí)關(guān)系??稍谂c基本文件和配置230的存儲(chǔ)器位置相隔離的一個(gè)或多個(gè)存儲(chǔ)器位置創(chuàng)建補(bǔ)丁層250。不同于在補(bǔ)丁實(shí)際安裝中所發(fā)生的重寫基本文件和配置230的存儲(chǔ)器位置,在虛擬安裝中,將補(bǔ)丁的內(nèi)容存儲(chǔ)到作為補(bǔ)丁層250的另一個(gè)存儲(chǔ)器位置,以便保留基本文件系統(tǒng)和配置230的內(nèi)容。如所提到的,補(bǔ)丁分層子系統(tǒng)240和/或補(bǔ)丁控制子系統(tǒng)110可配置成生成并存儲(chǔ)與補(bǔ)丁層250相關(guān)聯(lián)的映射數(shù)據(jù)260。該映射數(shù)據(jù)260可包括補(bǔ)丁層250的內(nèi)容和包括基本OS210的文件和配置設(shè)置的基本文件系統(tǒng)和配置230的內(nèi)容之間的一個(gè)或多個(gè)關(guān)系的定義。映射數(shù)據(jù)260可存儲(chǔ)在能夠由補(bǔ)丁分層子系統(tǒng)240訪問的任何適當(dāng)?shù)奈恢茫?,包括在補(bǔ)丁層250內(nèi)。作為生成映射數(shù)據(jù)260的實(shí)例,假設(shè)補(bǔ)丁A包括設(shè)計(jì)用來代替作為基本文件系統(tǒng)和配置230—部分的文件對(duì)象的特定補(bǔ)丁對(duì)象(例如,DLL文件)。在補(bǔ)丁A的虛擬安裝期間,補(bǔ)丁分層子系統(tǒng)240能夠識(shí)別所述文件對(duì)象和/或其位置(例如,路徑名)、補(bǔ)丁對(duì)象和/或其在補(bǔ)丁層250中的位置以及所述文件對(duì)象和所述補(bǔ)丁對(duì)象和/或它們各自的位置之間的關(guān)系。對(duì)所識(shí)別信息的引用可被記錄和包括為映射數(shù)據(jù)260的一部分。以這種或另一種適當(dāng)?shù)姆绞?,可以說映射數(shù)據(jù)260定義了補(bǔ)丁層250的內(nèi)容和基本文件系統(tǒng)和配置230的內(nèi)容之間的關(guān)系。映射數(shù)據(jù)260可包括其它信息,包括對(duì)于識(shí)別應(yīng)當(dāng)將訪問請(qǐng)求指向其的存儲(chǔ)器中的位置有潛在幫助的任何信息。例如,映射數(shù)據(jù)260可包括代表多個(gè)補(bǔ)丁層250之間或補(bǔ)丁層250中特定內(nèi)容實(shí)例之間的優(yōu)先級(jí)關(guān)系的優(yōu)先級(jí)信息。在特定實(shí)施例中,所述優(yōu)先級(jí)信息可包括或基于與補(bǔ)丁相關(guān)聯(lián)的版本信息??苫谄涓髯缘膬?yōu)先級(jí)信息對(duì)映射數(shù)據(jù)260的實(shí)例進(jìn)行存儲(chǔ)或組織??梢杂眠m合所述信息被用于打補(bǔ)丁操作的任何方式對(duì)映射數(shù)據(jù)260中的信息進(jìn)行格式化和組織,所述打補(bǔ)丁操作包括重定向訪問請(qǐng)求、使補(bǔ)丁無效以及提交補(bǔ)丁。在特定實(shí)施例中,映射數(shù)據(jù)260包括一個(gè)或多個(gè)信息表格,組織所述信息表格使得能夠通過索引、關(guān)鍵詞或其它標(biāo)準(zhǔn)來搜索所述信息。在圖2B中,補(bǔ)丁(補(bǔ)丁A)虛擬安裝為補(bǔ)丁層A250,但未使能。因此,補(bǔ)丁分層子系統(tǒng)240將允許訪問請(qǐng)求通過到基本文件系統(tǒng)和配置230,而不考慮重定向到補(bǔ)丁層250。換句話說,補(bǔ)丁分層子系統(tǒng)240配置成不將訪問請(qǐng)求重定向到補(bǔ)丁層A250。圖2C示出了處于補(bǔ)丁A已經(jīng)虛擬安裝并且相應(yīng)的補(bǔ)丁層250被使能的階段的補(bǔ)丁系統(tǒng)200。補(bǔ)丁分層子系統(tǒng)240可配置成使能補(bǔ)丁層250,包括響應(yīng)于從補(bǔ)丁控制子系統(tǒng)110收到"使能命令"來對(duì)補(bǔ)丁層250進(jìn)行使能。在特定實(shí)施例中,補(bǔ)丁層250的使能包括通過將映射數(shù)據(jù)260應(yīng)用到補(bǔ)丁分層子系統(tǒng)240來激活與補(bǔ)丁層250相關(guān)聯(lián)的所述映射數(shù)據(jù)260。在圖2C中,通過將映射數(shù)據(jù)A260移動(dòng)到補(bǔ)丁分層子系統(tǒng)240中或者將映射數(shù)據(jù)A260的拷貝插入(inject)補(bǔ)丁分層子系統(tǒng)240中來代表映射數(shù)據(jù)260的激活。在特定實(shí)施例中,這包括將映射數(shù)據(jù)260插入到補(bǔ)丁分層子系統(tǒng)240的OS內(nèi)核過濾器驅(qū)動(dòng)程序中。隨著映射數(shù)據(jù)260被激活,補(bǔ)丁分層子系統(tǒng)240配置成有選擇地將來自基本文件系統(tǒng)和配置230的訪問請(qǐng)求重定向到補(bǔ)丁層250。例如,補(bǔ)丁分層子系統(tǒng)240可截取來自應(yīng)用220的訪問請(qǐng)求,所述請(qǐng)求包括對(duì)基本文件系統(tǒng)和配置230的特定文件對(duì)象或存儲(chǔ)器位置的引用。補(bǔ)丁分層子系統(tǒng)240可使用所激活的映射數(shù)據(jù)260來確定所述引用是否與被使能的補(bǔ)丁層250相關(guān)聯(lián)??梢杂萌魏芜m當(dāng)?shù)姆绞絹韴?zhí)行該確定,包括在映射數(shù)據(jù)260內(nèi)搜索所述引用。如果發(fā)現(xiàn)了匹配,則補(bǔ)丁分層子系統(tǒng)240可將所述訪問請(qǐng)求重定向到補(bǔ)丁層250中的相應(yīng)補(bǔ)丁對(duì)象。所述相應(yīng)補(bǔ)丁對(duì)象可然后被訪問并返回到應(yīng)用220。應(yīng)用220不會(huì)覺察到已經(jīng)發(fā)生了重定向。因此,從應(yīng)用220的角度來看,就好像虛擬安裝并使能的補(bǔ)丁已經(jīng)實(shí)際安裝到基本文件系統(tǒng)和配置230。為計(jì)算機(jī)程序,尤其是為操作系統(tǒng),提供多個(gè)補(bǔ)丁是不尋常的。因此,補(bǔ)丁分層子系統(tǒng)240可配置成虛擬安裝并使能多個(gè)補(bǔ)丁,并且以解決補(bǔ)丁之間的優(yōu)先級(jí)的方式計(jì)算訪問請(qǐng)求的重定向??梢杂萌魏畏绞讲⑹褂萌魏涡畔?例如,補(bǔ)丁版本信息)設(shè)定補(bǔ)丁層250的優(yōu)先級(jí),這允許一組多個(gè)虛擬安裝并使能的補(bǔ)丁精確地起作用,或者至少看上去起作用,就好像所述補(bǔ)丁已經(jīng)實(shí)際安裝到基本文件系統(tǒng)和配置230中了。圖2D示出了處于補(bǔ)丁A已經(jīng)虛擬安裝并且相應(yīng)的補(bǔ)丁層A250被使能,而且另一個(gè)補(bǔ)丁("補(bǔ)丁B")己虛擬安裝但是其相應(yīng)的補(bǔ)丁層250("補(bǔ)丁層B250")沒有被使能的階段的補(bǔ)丁系統(tǒng)200。補(bǔ)丁分層子系統(tǒng)240可配置成在確定將訪問請(qǐng)求重定向到哪里之時(shí)考慮被使能的補(bǔ)丁層250的優(yōu)先級(jí)信息。在圖2D所示的階段中,由于補(bǔ)丁層A250是僅有的被使能的補(bǔ)丁層250,所以僅考慮用于補(bǔ)丁層A250的映射數(shù)據(jù)260。圖2E示出了處于如補(bǔ)丁分層子系統(tǒng)240中映射數(shù)據(jù)A260和映射數(shù)據(jù)B260的激活所代表的補(bǔ)丁A和補(bǔ)丁B均被虛擬安裝并使能的階段的補(bǔ)丁系統(tǒng)200。在圖2E所示的階段中,補(bǔ)丁分層子系統(tǒng)240在確定將訪問請(qǐng)求指向哪里之時(shí)會(huì)考慮兩個(gè)補(bǔ)丁層250或者用于兩個(gè)補(bǔ)丁層250的至少映射數(shù)據(jù)260。特別地,可考慮用于補(bǔ)丁層250的優(yōu)先級(jí)或補(bǔ)丁版本信息來確定所述補(bǔ)丁層250之間的適當(dāng)優(yōu)先級(jí)。所述優(yōu)先級(jí)可以以包括在用于補(bǔ)丁層250的映射數(shù)據(jù)260中的信息為基礎(chǔ),所述信息包括上述任何優(yōu)先級(jí)信息。在圖2D所示的特定實(shí)例中,補(bǔ)丁層B250具有高于補(bǔ)丁層A250的優(yōu)先級(jí)??梢杂砂ㄔ谟糜谘a(bǔ)丁層250的映射數(shù)據(jù)260中的優(yōu)先級(jí)信息來指示該優(yōu)先級(jí)。可以用允許補(bǔ)丁分層子系統(tǒng)240識(shí)別補(bǔ)丁層250之間的優(yōu)先級(jí)關(guān)系的任何可接受的方式來組織映射數(shù)據(jù)260。在特定實(shí)施例中,可配置補(bǔ)丁分層子系統(tǒng)240,使得當(dāng)其截取包括對(duì)文件或設(shè)置的特定引用的訪問請(qǐng)求時(shí),補(bǔ)丁分層子系統(tǒng)240將首先在具有最高優(yōu)先級(jí)的補(bǔ)丁層250的有效映射數(shù)據(jù)260中搜索所述引用。在圖2E的實(shí)例中,這將是映射數(shù)據(jù)B260。如果在映射數(shù)據(jù)B260中找到了引用,則執(zhí)行到補(bǔ)丁層B250的重定向。如果沒有在映射數(shù)據(jù)B260中找到所述引用,則補(bǔ)丁分層子系統(tǒng)240將接著在映射數(shù)據(jù)A260中搜索所述引用,映射數(shù)據(jù)A260是對(duì)應(yīng)于下一個(gè)最高優(yōu)先級(jí)的補(bǔ)丁層250—補(bǔ)丁層A250的映射數(shù)據(jù)260。如果找到了引用,則執(zhí)行到補(bǔ)丁層A250的重定向。如果沒有在映射數(shù)據(jù)A260中找到所述引用,則允許所述訪問請(qǐng)求通過到基本文件系統(tǒng)和配置230。補(bǔ)丁層250的優(yōu)先級(jí)使補(bǔ)丁系統(tǒng)200能夠利用多個(gè)虛擬安裝并使能的補(bǔ)丁并且以模擬在實(shí)際安裝補(bǔ)丁時(shí)想要實(shí)施的優(yōu)先級(jí)的方式進(jìn)行操作??稍O(shè)計(jì)特定的補(bǔ)丁來替代之前的補(bǔ)丁。補(bǔ)丁分層子系統(tǒng)240可配置成在虛擬安裝環(huán)境中識(shí)別并實(shí)施這種替代。例如,補(bǔ)丁可包括標(biāo)識(shí)要被替代的一個(gè)或多個(gè)其它補(bǔ)丁的替代信息。可以捕獲這樣的信息并將其包括在與補(bǔ)丁層250相關(guān)聯(lián)的映射數(shù)據(jù)260中。補(bǔ)丁分層子系統(tǒng)240可配置成識(shí)別包括在映射數(shù)據(jù)260中的這種信息。例如,當(dāng)諸如補(bǔ)丁層B250的補(bǔ)丁層250被使能時(shí),補(bǔ)丁分層子系統(tǒng)240可在相應(yīng)的映射數(shù)據(jù)B260內(nèi)搜索替代信息。如果找到,所述替代信息可用來實(shí)施想要的替代。例如,在特定實(shí)施例中,補(bǔ)丁分層子系統(tǒng)240可配置成使與要被補(bǔ)丁B替代的補(bǔ)丁相關(guān)聯(lián)的任何被使能的補(bǔ)丁層250無效。例如,映射數(shù)據(jù)B260可包括指示補(bǔ)丁B要替代補(bǔ)丁A的補(bǔ)丁信息。補(bǔ)丁分層子系統(tǒng)240可確定任一被使能的補(bǔ)丁層250是否與補(bǔ)丁A相對(duì)應(yīng)。在這種情況下,補(bǔ)丁層A250可識(shí)別為與補(bǔ)丁A相對(duì)應(yīng)。因此,當(dāng)補(bǔ)丁層B250被使能時(shí),補(bǔ)丁分層子系統(tǒng)240可基于映射數(shù)據(jù)B260中的替代信息自動(dòng)使補(bǔ)丁層A250無效。雖然以上按照被使能的虛擬補(bǔ)丁描述了所述替代,但是補(bǔ)丁分層子系統(tǒng)240可替代地或另外配置成當(dāng)將虛擬補(bǔ)丁提交到基本文件和配置230時(shí)執(zhí)行替代操作。因此,在上述情況下,當(dāng)提交補(bǔ)丁層B250時(shí),補(bǔ)丁分層子系統(tǒng)240可基于映射數(shù)據(jù)B260中的替代信息自動(dòng)使補(bǔ)丁層A250無效。下面進(jìn)一步描述將虛擬安裝的補(bǔ)丁提交到基本文件和配置230。當(dāng)然,補(bǔ)丁分層子系統(tǒng)240可配置成基于替代信息執(zhí)行其它動(dòng)作。在以上實(shí)例中,例如補(bǔ)丁分層子系統(tǒng)240可配置成提供通知消息來告知補(bǔ)丁控制子系統(tǒng)110或計(jì)算設(shè)備120的用戶已經(jīng)檢測(cè)到替代,并且為所述用戶提供機(jī)會(huì)來基于替代信息同意或不同意執(zhí)行動(dòng)作。例如,可要求用戶同意所提出的對(duì)補(bǔ)丁層A250進(jìn)行無效。以上述方式,能夠在虛擬補(bǔ)丁環(huán)境中實(shí)施想要的補(bǔ)丁替代。這至少能夠通過使得在給定時(shí)刻所虛擬安裝并使能的補(bǔ)丁層數(shù)量最小化和避免執(zhí)行多余或不必要的操作而有助于保存處理資源。補(bǔ)丁分層子系統(tǒng)240能夠保存處理資源的另一種方式是將多個(gè)補(bǔ)丁層250結(jié)合成復(fù)合補(bǔ)丁層。當(dāng)越來越多的補(bǔ)丁層250在計(jì)算機(jī)設(shè)備120上虛擬安裝并使能時(shí),追蹤層250之間的優(yōu)先級(jí)以及重定向大量的訪問請(qǐng)求會(huì)變得很復(fù)雜并且會(huì)顯著消耗處理資源。將多個(gè)補(bǔ)丁層250結(jié)合成復(fù)合補(bǔ)丁層會(huì)有助于緩解該問題。在對(duì)多個(gè)補(bǔ)丁層250設(shè)置了優(yōu)先級(jí)的實(shí)施例中,這種結(jié)合可稱作"扁平化(flattening)"。圖2F示出了處于已結(jié)合補(bǔ)丁層A和B250來形成復(fù)合補(bǔ)丁層270的階段的補(bǔ)丁系統(tǒng)200。映射數(shù)據(jù)A260和映射數(shù)據(jù)B260也已經(jīng)結(jié)合來形成與復(fù)合補(bǔ)丁層270相關(guān)聯(lián)的復(fù)合映射數(shù)據(jù)275。復(fù)合映射數(shù)據(jù)275可以在創(chuàng)建復(fù)合補(bǔ)丁層270時(shí)和/或基于用于單個(gè)補(bǔ)丁層250的映射數(shù)據(jù)260的內(nèi)容生成。在圖2F中,已經(jīng)通過創(chuàng)建復(fù)合映射數(shù)據(jù)275并將其應(yīng)用到補(bǔ)丁分層子系統(tǒng)240而對(duì)復(fù)合補(bǔ)丁層270進(jìn)行了使能。單個(gè)補(bǔ)丁層A和B250已經(jīng)被使無效并從計(jì)算設(shè)備120移除。然而,可以使補(bǔ)丁層A和B250無效并在計(jì)算設(shè)備120上保持虛擬安裝。這樣做的一個(gè)原因是如果復(fù)合補(bǔ)丁層270或復(fù)合映射數(shù)據(jù)275未能正常工作這將維持方便地反轉(zhuǎn)到使用補(bǔ)丁層A和B250的能力。在特定實(shí)施例中,合并補(bǔ)丁層250的操作可包括當(dāng)生成復(fù)合補(bǔ)丁層時(shí)識(shí)別并忽略冗余和/或過時(shí)的補(bǔ)丁內(nèi)容??苫谟糜趩蝹€(gè)補(bǔ)丁層250的映射數(shù)據(jù)260來識(shí)別這種補(bǔ)丁內(nèi)容。例如,可在用于單個(gè)補(bǔ)丁層250的映射數(shù)據(jù)260內(nèi)搜索對(duì)基本文件系統(tǒng)和配置230的特定引用。如果僅找到單個(gè)匹配,則相應(yīng)補(bǔ)丁層250中的關(guān)聯(lián)內(nèi)容可包括在復(fù)合補(bǔ)丁層270中。如果在映射數(shù)據(jù)260中找到了多于一個(gè)的引用實(shí)例,則可檢查映射數(shù)據(jù)260中的優(yōu)先級(jí)信息來確定具有最高優(yōu)先級(jí)的補(bǔ)丁內(nèi)容并且其將因此包括在復(fù)合補(bǔ)丁層270中。隨著補(bǔ)丁虛擬安裝并使能作為計(jì)算設(shè)備120上的補(bǔ)丁層250,可對(duì)所述虛擬補(bǔ)丁進(jìn)行測(cè)試以便正常操作。測(cè)試可包括能夠產(chǎn)生有助于識(shí)別虛擬安裝并使能的補(bǔ)丁是否給計(jì)算設(shè)備120或配置成在計(jì)算設(shè)備120上運(yùn)行的計(jì)算機(jī)程序帶來問題的數(shù)據(jù)或另一結(jié)果的任何操作。測(cè)試可采取多種形式。在特定實(shí)施例中,可允許計(jì)算設(shè)備120在一段時(shí)間內(nèi)執(zhí)行標(biāo)準(zhǔn)或普通操作,或者執(zhí)行預(yù)定的操作列表。在測(cè)試操作的執(zhí)行期間,可追蹤并報(bào)告與所述操作和/或錯(cuò)誤相關(guān)聯(lián)的數(shù)據(jù)。所追蹤的數(shù)據(jù)可用來幫助確定所使能的虛擬補(bǔ)丁是否正常工作。在特定實(shí)施例中,補(bǔ)丁控制子系統(tǒng)110可配置成在計(jì)算設(shè)備120上發(fā)起和控制測(cè)試操作并且從計(jì)算設(shè)備120接收測(cè)試數(shù)據(jù)。因此,可以從遠(yuǎn)程位置對(duì)虛擬安裝并使能的補(bǔ)丁進(jìn)行測(cè)試,并且可允許管理員在網(wǎng)絡(luò)130上執(zhí)行補(bǔ)丁測(cè)試。補(bǔ)丁分層子系統(tǒng)240可配置成使所使能的補(bǔ)丁層250無效。方便地使所使能的補(bǔ)丁無效的能力提供了對(duì)傳統(tǒng)打補(bǔ)丁技術(shù)的顯著優(yōu)勢(shì)。例如,如果所使能補(bǔ)丁的測(cè)試指明所述補(bǔ)丁未能正常工作或者已帶來問題,則能夠便捷地使所述補(bǔ)丁無效,而不是不得不花費(fèi)寶貴的資源進(jìn)行故障定位并試圖在發(fā)現(xiàn)問題之后卸載已實(shí)際安裝的補(bǔ)丁。作為實(shí)例,可通過反轉(zhuǎn)映射數(shù)據(jù)A260到補(bǔ)丁分層子系統(tǒng)240的應(yīng)用來使圖2C所示的虛擬安裝并使能的補(bǔ)丁層A250無效??梢杂萌魏芜m當(dāng)?shù)姆绞綀?zhí)行所述反轉(zhuǎn)。在特定實(shí)施例中,這包括從補(bǔ)丁分層子系統(tǒng)240中移除映射數(shù)據(jù)A260,使得補(bǔ)丁分層子系統(tǒng)240返回到應(yīng)用映射數(shù)據(jù)A260之前所處的狀態(tài)。圖2B示出了處于補(bǔ)丁層A250被使無效階段的補(bǔ)丁系統(tǒng)200。映射數(shù)據(jù)A260可包括有助于將映射數(shù)據(jù)A260識(shí)別為與補(bǔ)丁層A250相關(guān)聯(lián)并且從補(bǔ)丁分層子系統(tǒng)240中移除映射數(shù)據(jù)260的一個(gè)或多個(gè)標(biāo)識(shí)符。方便地使補(bǔ)丁層250無效的能力提供了多種好處,包括但不限于容易對(duì)虛擬補(bǔ)丁安裝進(jìn)行補(bǔ)救、控制哪些虛擬補(bǔ)丁被使能、方便且可選地自動(dòng)替代虛擬補(bǔ)丁、與傳統(tǒng)技術(shù)相比補(bǔ)丁的測(cè)試成本更低以及降低了實(shí)施補(bǔ)丁的風(fēng)險(xiǎn)。補(bǔ)丁分層子系統(tǒng)240可配置成將虛擬補(bǔ)丁提交,即實(shí)際安裝,到基本文件系統(tǒng)和配置230。在特定實(shí)施例中,可使用補(bǔ)丁層250和/或?qū)?yīng)于所述補(bǔ)丁的補(bǔ)丁層250的映射數(shù)據(jù)260來執(zhí)行虛擬補(bǔ)丁的提交。例如,補(bǔ)丁分層子系統(tǒng)240可使用與補(bǔ)丁層250相關(guān)聯(lián)的映射數(shù)據(jù)260來識(shí)別和定位補(bǔ)丁內(nèi)容以及所述補(bǔ)丁內(nèi)容應(yīng)當(dāng)寫入的基本文件系統(tǒng)和配置230的適當(dāng)位置來實(shí)際安裝所述補(bǔ)丁。當(dāng)所述實(shí)際安裝完成時(shí),稱所述補(bǔ)丁已經(jīng)"提交",并且可使用于虛擬安裝的補(bǔ)丁的補(bǔ)丁層250無效??蛇x地,可從計(jì)算設(shè)備120中刪除被使無效的補(bǔ)丁層250??蓮难a(bǔ)丁控制子系統(tǒng)110對(duì)用于提交虛擬補(bǔ)丁的操作進(jìn)行控制(例如,發(fā)起)。因此,如果通過測(cè)試和/或正常操作確定了虛擬安裝的補(bǔ)丁正常工作或者至少處于可接受的水平,則能夠方便地提交所述虛擬補(bǔ)丁,即實(shí)際安裝到基本文件系統(tǒng)和配置230。圖2G示出了處于已將與補(bǔ)丁層A250相關(guān)聯(lián)的補(bǔ)丁提交到基本文件系統(tǒng)和配置230的階段的補(bǔ)丁系統(tǒng)200,其中所述基本文件系統(tǒng)和配置230已轉(zhuǎn)換為打補(bǔ)丁的基本文件系統(tǒng)和配置280。圖2G進(jìn)一步示出了補(bǔ)丁層A250已經(jīng)被使無效并從計(jì)算設(shè)備120中刪除。虛擬補(bǔ)丁可單獨(dú)提交或批量提交。批處理可用來提交一組虛擬補(bǔ)丁,例如計(jì)算設(shè)備120上的所有當(dāng)前使能的虛擬補(bǔ)丁。虛擬補(bǔ)丁在批量提交中的順序可基于其映射數(shù)據(jù)240中的優(yōu)先級(jí)信息來確定。作為選擇,用戶可以定義用于提交多個(gè)補(bǔ)丁的順序。方便地提交補(bǔ)丁層250的能力提供了多種好處,包括但不限于至少由于虛擬補(bǔ)丁如測(cè)試地能夠用于實(shí)際安裝而降低了實(shí)際安裝補(bǔ)丁的風(fēng)險(xiǎn),通過提交已經(jīng)得到驗(yàn)證的虛擬補(bǔ)丁而將虛擬安裝并使能的補(bǔ)丁數(shù)量保持在可接受的水平的能力,在虛擬打補(bǔ)丁環(huán)境中為新補(bǔ)丁讓出空間的能力以及在使用虛擬打補(bǔ)丁技術(shù)首先對(duì)補(bǔ)丁進(jìn)行測(cè)試之后再對(duì)基本文件系統(tǒng)和配置230進(jìn)行如補(bǔ)丁制造商想要的打補(bǔ)丁能力。系統(tǒng)100可為用戶提供一種或多種工具,用于管理或控制計(jì)算機(jī)程序的打補(bǔ)丁。例如,圖3示出了示例性補(bǔ)丁系統(tǒng)300,除了補(bǔ)丁系統(tǒng)200的元件之外,其還包括補(bǔ)丁管理器310和管理器API320。所述管理器API320允許補(bǔ)丁管理器310與補(bǔ)丁分層子系統(tǒng)240進(jìn)行通信。因此,補(bǔ)丁管理器310能夠用來管理補(bǔ)丁分層子系統(tǒng)240的設(shè)置和操作。例如,用戶可通過補(bǔ)丁管理器310指示補(bǔ)丁分層子系統(tǒng)240執(zhí)行特定操作或修改設(shè)置,包括修改補(bǔ)丁分層子系統(tǒng)240中的映射數(shù)據(jù)260。可以在諸如相應(yīng)補(bǔ)丁層250(多個(gè))內(nèi)的另一位置維持映射數(shù)據(jù)260的備份未改變的拷貝??梢栽谟?jì)算設(shè)備120、補(bǔ)丁控制子系統(tǒng)110或能夠與補(bǔ)丁分層子系統(tǒng)240通信的任何外部設(shè)備中實(shí)現(xiàn)補(bǔ)丁管理器310。示例性方法圖4示出了為計(jì)算機(jī)程序打補(bǔ)丁的示例性方法。雖然圖4示出了根據(jù)一個(gè)實(shí)施例的示例性步驟,但是其它實(shí)施例可省略、添加、重排序和/或修改圖4所示的任一步驟。在步驟410中,虛擬安裝了補(bǔ)丁??梢杂蒙鲜鋈我环绞綀?zhí)行步驟410,包括補(bǔ)丁分層子系統(tǒng)240創(chuàng)建補(bǔ)丁層250,將補(bǔ)丁內(nèi)容存儲(chǔ)到補(bǔ)丁層250以及生成并存儲(chǔ)代表補(bǔ)丁層250的內(nèi)容和諸如可存儲(chǔ)在計(jì)算設(shè)備120的基本文件系統(tǒng)和配置庫中的基本文件和配置設(shè)置的內(nèi)容之間的關(guān)系的映射數(shù)據(jù)260在步驟420中,對(duì)虛擬安裝的補(bǔ)丁進(jìn)行使能??梢砸陨鲜龅娜我夥绞綀?zhí)行步驟420,例如,包括將與補(bǔ)丁層250相關(guān)聯(lián)的映射數(shù)據(jù)260應(yīng)用到補(bǔ)丁分層子系統(tǒng)240。在步驟430中,測(cè)試被使能的補(bǔ)丁??梢杂蒙鲜鋈我环绞綀?zhí)行步驟430,包括引導(dǎo)計(jì)算設(shè)備120的正常運(yùn)行和域指示計(jì)算設(shè)備120執(zhí)行設(shè)計(jì)用來測(cè)試所使能補(bǔ)丁的功能的預(yù)定操作。如圖4所示,處理可以從步驟430進(jìn)行到步驟440或450。可基于步驟430的結(jié)果或系統(tǒng)100的用戶的指示來確定是否進(jìn)行到步驟430或440。從步驟430到步驟440或450的流程僅是說明性的。在其它實(shí)施例中,可以在任何時(shí)間或以任何順序執(zhí)行步驟440來使所使能的補(bǔ)丁無效,并且可以在任何時(shí)間或以任何順序執(zhí)行步驟450來提交虛擬安裝的補(bǔ)丁。在步驟440中,使所使能的補(bǔ)丁無效??梢杂蒙鲜鋈我环绞綀?zhí)行步驟440,包括反轉(zhuǎn)映射數(shù)據(jù)260到補(bǔ)丁分層子系統(tǒng)240的應(yīng)用。在步驟450中,提交虛擬安裝的補(bǔ)丁??梢杂蒙鲜鋈我环绞綀?zhí)行步驟450,包括利用映射數(shù)據(jù)260將虛擬安裝的補(bǔ)丁轉(zhuǎn)換為實(shí)際安裝的補(bǔ)丁。圖5示出了從遠(yuǎn)程設(shè)備或位置對(duì)計(jì)算機(jī)程序的打補(bǔ)丁進(jìn)行遠(yuǎn)程控制的示例性方法。雖然圖4示出了根據(jù)一個(gè)實(shí)施例的示例性步驟,但是其它實(shí)施例可省略、添加、重排序和/或修改圖5所示的任一步驟。在步驟510,將補(bǔ)丁傳遞到計(jì)算設(shè)備120??梢杂蒙鲜鋈我环绞綀?zhí)行步驟510,包括補(bǔ)丁控制子系統(tǒng)110將代表補(bǔ)丁的數(shù)據(jù)(例如,補(bǔ)丁可執(zhí)行文件或補(bǔ)丁層)在網(wǎng)絡(luò)130上傳遞到計(jì)算設(shè)備120。在步驟520中,傳送使能命令??梢杂蒙鲜鋈我环绞綀?zhí)行步驟520,包括補(bǔ)丁控制子系統(tǒng)110在網(wǎng)絡(luò)130上向計(jì)算設(shè)備傳送使能命令。計(jì)算設(shè)備120的補(bǔ)丁分層子系統(tǒng)240可配置成識(shí)別所述使能命令,并且通過使能對(duì)應(yīng)于步驟510中所傳送的補(bǔ)丁的補(bǔ)丁層250來對(duì)其進(jìn)行響應(yīng)。在步驟530中,傳送一個(gè)或多個(gè)測(cè)試命令并收集測(cè)試數(shù)據(jù)??梢杂蒙鲜鋈我环绞綀?zhí)行步驟530,包括補(bǔ)丁控制子系統(tǒng)110在網(wǎng)絡(luò)130上將測(cè)試命令傳送到計(jì)算設(shè)備120并且從計(jì)算設(shè)備120接收測(cè)試數(shù)據(jù)。計(jì)算設(shè)備120可配置成識(shí)別和響應(yīng)測(cè)試命令以測(cè)試對(duì)所使能補(bǔ)丁的操作。如圖5所示,處理可以從步驟530進(jìn)行到步驟540或550。可基于步驟530的結(jié)果或系統(tǒng)100的用戶的指示來確定是否進(jìn)行到步驟530或540。從步驟530到步驟540或550的流程僅是說明性的。在其它實(shí)施例中,可以在任何時(shí)間或以任何順序執(zhí)行步驟540來傳送使無效命令,并且可以在任何時(shí)間或以任何順序執(zhí)行步驟550來傳送提交命令。在步驟540中,傳送了使無效命令??梢杂蒙鲜鋈我环绞綀?zhí)行步驟540,包括補(bǔ)丁控制子系統(tǒng)110在網(wǎng)絡(luò)130上向計(jì)算設(shè)備120傳送使無效命令。計(jì)算設(shè)備120的補(bǔ)丁分層子系統(tǒng)240可配置成識(shí)別所述使無效命令,并且通過使對(duì)應(yīng)于所使能補(bǔ)丁的補(bǔ)丁層250無效來對(duì)其進(jìn)行響應(yīng)。在步驟550中,傳送了提交命令??梢杂蒙鲜鋈我环绞綀?zhí)行步驟550,包括補(bǔ)丁控制子系統(tǒng)110在網(wǎng)絡(luò)130上向計(jì)算設(shè)備120傳送提交命令。計(jì)算設(shè)備120的補(bǔ)丁分層子系統(tǒng)240可配置成識(shí)別所述提交命令,并且通過提交虛擬安裝的層250來對(duì)其進(jìn)行響應(yīng)。以上只是若干實(shí)施例的詳細(xì)描述。雖然已經(jīng)示出并描述了特定的實(shí)施例和應(yīng)用,但是應(yīng)當(dāng)理解,在此公開的準(zhǔn)確配置和部件僅是說明性的而絕不是限制性的。受益于本公開,各種修改、變化和改變對(duì)于本領(lǐng)域技術(shù)人員都將是顯而易見的,并沒有偏離所公開的原理的精神和范圍。例如,本領(lǐng)域技術(shù)人員將意識(shí)到,特定實(shí)施例可以通過使用計(jì)算機(jī)編程的軟件來實(shí)現(xiàn)或者實(shí)現(xiàn)為電路,并且可能對(duì)通用計(jì)算機(jī)或?qū)S迷O(shè)備進(jìn)行編程來實(shí)現(xiàn)這種實(shí)施例。因此,處于法律所允許的最大限度,本發(fā)明的范圍由以下權(quán)利要求及其等同物的可允許的最寬泛解釋來確定,而不應(yīng)當(dāng)由前述詳細(xì)描述來限制或限定。權(quán)利要求1.一種方法,包括將計(jì)算機(jī)程序補(bǔ)丁虛擬安裝到具有基本文件系統(tǒng)和配置、計(jì)算機(jī)程序和補(bǔ)丁分層子系統(tǒng)的計(jì)算設(shè)備,虛擬安裝所述計(jì)算機(jī)程序補(bǔ)丁的所述步驟包括將所述補(bǔ)丁的內(nèi)容存儲(chǔ)到補(bǔ)丁層,以及生成并存儲(chǔ)定義所述補(bǔ)丁層中的所述內(nèi)容和所述基本文件系統(tǒng)和配置的內(nèi)容之間的至少一個(gè)關(guān)系的映射數(shù)據(jù);以及使能所述補(bǔ)丁層,包括將所述映射數(shù)據(jù)應(yīng)用到所述補(bǔ)丁分層子系統(tǒng),使得所述補(bǔ)丁分層子系統(tǒng)被配置來有選擇地將來自所述基本文件系統(tǒng)和配置的訪問請(qǐng)求重定向到所述補(bǔ)丁層。2.如權(quán)利要求l所述的方法,進(jìn)一步包括使所述補(bǔ)丁層無效,包括反轉(zhuǎn)將所述映射數(shù)據(jù)應(yīng)用到所述補(bǔ)丁分層子系統(tǒng)的所述步驟,使得所述補(bǔ)丁分層子系統(tǒng)被配置成不將所述訪問請(qǐng)求重定向到所述補(bǔ)丁層。3.如權(quán)利要求1所述的方法,進(jìn)一步包括將所述虛擬安裝的補(bǔ)丁提交到所述基本文件系統(tǒng)和配置,包括基于所述映射數(shù)據(jù)執(zhí)行將所述補(bǔ)丁層中的所述內(nèi)容的至少一個(gè)子集實(shí)際安裝到所述基本文件系統(tǒng)和配置。4.如權(quán)利要求l所述的方法,進(jìn)一步包括將另一計(jì)算機(jī)程序補(bǔ)丁虛擬安裝到所述計(jì)算設(shè)備,虛擬安裝所述另一計(jì)算機(jī)程序補(bǔ)丁的所述步驟包括將所述另一個(gè)計(jì)算機(jī)程序補(bǔ)丁的內(nèi)容存儲(chǔ)到另一補(bǔ)丁層,生成并存儲(chǔ)定義所述另一補(bǔ)丁層中的所述內(nèi)容和所述基本文件系統(tǒng)和配置的所述內(nèi)容之間的至少一個(gè)關(guān)系的其它映射數(shù)據(jù),以及相對(duì)于彼此設(shè)置所述補(bǔ)丁層和所述另一補(bǔ)丁層的優(yōu)先級(jí);以及使能所述另一補(bǔ)丁層,包括將所述其它映射數(shù)據(jù)應(yīng)用到所述補(bǔ)丁分層子系統(tǒng),使得所述補(bǔ)丁分層子系統(tǒng)被配置來有選擇地將來自所述基本文件系統(tǒng)和配置的訪問請(qǐng)求重定向到所述另一補(bǔ)丁層。5.如權(quán)利要求4所述的方法,進(jìn)一步包括將所述補(bǔ)丁層和所述另一補(bǔ)丁層結(jié)合成復(fù)合補(bǔ)丁層,并且結(jié)合所述映射數(shù)據(jù)和所述其它映射數(shù)據(jù)以形成與所述復(fù)合補(bǔ)丁層相對(duì)應(yīng)的復(fù)合映射數(shù)據(jù)。6.—種系統(tǒng),包括具有計(jì)算機(jī)程序及基本文件系統(tǒng)和配置的計(jì)算設(shè)備;以及安裝到所述計(jì)算設(shè)備的補(bǔ)丁分層子系統(tǒng),所述補(bǔ)丁分層子系統(tǒng)被配置成將用于所述計(jì)算機(jī)程序的補(bǔ)丁虛擬安裝到補(bǔ)丁層,使能所述補(bǔ)丁層,使得所述補(bǔ)丁分層子系統(tǒng)被配置來有選擇地將來自所述基本文件系統(tǒng)和配置的訪問請(qǐng)求重定向到所述補(bǔ)丁層,以及使所述補(bǔ)丁層無效,使得所述補(bǔ)丁分層被配置成不將所述訪問請(qǐng)求重定向到所述補(bǔ)丁層。7.如權(quán)利要求6所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)被配置成通過以下步驟虛擬安裝所述補(bǔ)丁將所述補(bǔ)丁的內(nèi)容存儲(chǔ)到所述補(bǔ)丁層,所述補(bǔ)丁層與所述基本文件系統(tǒng)和配置分開,以及生成并存儲(chǔ)定義所述補(bǔ)丁層中的所述內(nèi)容和所述基本文件系統(tǒng)和配置的內(nèi)容之間的至少一個(gè)關(guān)系的映射數(shù)據(jù)。8.如權(quán)利要求7所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)被配置成通過激活所述映射數(shù)據(jù)以用于截取所述訪問請(qǐng)求來使能所述補(bǔ)丁層,以及通過反轉(zhuǎn)所述映射數(shù)據(jù)的所述激活來使所述補(bǔ)丁層無效。9.如權(quán)利要求7所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)被配置成使用所述映射數(shù)據(jù)和所述補(bǔ)丁層的所述內(nèi)容將所述補(bǔ)丁提交到所述基本文件系統(tǒng)和配置。10.如權(quán)利要求6所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)進(jìn)一步被配置成將用于所述計(jì)算機(jī)程序的另一補(bǔ)丁虛擬安裝到另一補(bǔ)丁層,相對(duì)于彼此設(shè)置所述補(bǔ)丁層和所述另一補(bǔ)丁層的優(yōu)先級(jí),使能所述另一補(bǔ)丁層,使得所述補(bǔ)丁分層子系統(tǒng)被配置來有選擇地將來自所述基本文件系統(tǒng)和配置的訪問請(qǐng)求重定向到所述另一補(bǔ)丁層,以及使所述另一補(bǔ)丁層無效,使得所述補(bǔ)丁分層子系統(tǒng)被配置成不將所述訪問請(qǐng)求重定向到所述另一補(bǔ)丁層。11.如權(quán)利要求io所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)被配置成基于補(bǔ)丁版本信息、補(bǔ)丁發(fā)布日期信息和補(bǔ)丁時(shí)間戳信息中的至少一個(gè)來設(shè)置所述補(bǔ)丁層和所述另一補(bǔ)丁層的優(yōu)先級(jí)。12.如權(quán)利要求IO所述的系統(tǒng),其中所述補(bǔ)丁分層子系統(tǒng)進(jìn)一步被配置成將所述補(bǔ)丁層和所述另一補(bǔ)丁層結(jié)合成復(fù)合補(bǔ)丁層。13.如權(quán)利要求10所述的系統(tǒng),其中所述另一補(bǔ)丁旨在替代所述補(bǔ)丁,所述補(bǔ)丁分層子系統(tǒng)被配置成識(shí)別與所述另一補(bǔ)丁相關(guān)聯(lián)的替代信息并且當(dāng)所述另一補(bǔ)丁被使能時(shí)自動(dòng)使所述補(bǔ)丁層無效。14.如權(quán)利要求6所述的系統(tǒng),進(jìn)一步包括通過網(wǎng)絡(luò)可通信地耦合到所述計(jì)算設(shè)備的補(bǔ)丁控制子系統(tǒng),所述補(bǔ)丁控制子系統(tǒng)被配置成將所述補(bǔ)丁傳遞到所述計(jì)算設(shè)備,向所述計(jì)算設(shè)備傳送使能命令,所述使能命令被配置成指示所述補(bǔ)丁分層子系統(tǒng)使能所述補(bǔ)丁層,以及向所述計(jì)算設(shè)備傳送使無效命令,所述使無效命令被配置成指示所述補(bǔ)丁分層子系統(tǒng)使所述補(bǔ)丁層無效。15.如權(quán)利要求14所述的系統(tǒng),其中所述補(bǔ)丁控制子系統(tǒng)進(jìn)一步被配置成向所述計(jì)算設(shè)備傳送測(cè)試命令,所述測(cè)試命令被配置成指示所述計(jì)算設(shè)備執(zhí)行用于測(cè)試所述被使能的補(bǔ)丁層的至少一個(gè)測(cè)試操作。16.如權(quán)利要求14所述的系統(tǒng),其中所述補(bǔ)丁控制子系統(tǒng)進(jìn)一步被配置成向所述計(jì)算設(shè)備傳送提交命令,所述提交命令被配置成指示所述補(bǔ)丁分層子系統(tǒng)將所述補(bǔ)丁層提交到所述基本文件系統(tǒng)和配置。17.—種包含在計(jì)算機(jī)可讀介質(zhì)中并包括計(jì)算機(jī)指令的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)指令可由計(jì)算設(shè)備執(zhí)行以執(zhí)行以下功能將計(jì)算機(jī)程序補(bǔ)丁虛擬安裝到計(jì)算設(shè)備,包括將與所述補(bǔ)丁相關(guān)聯(lián)的補(bǔ)丁內(nèi)容存儲(chǔ)到補(bǔ)丁層,以及生成并存儲(chǔ)定義所述補(bǔ)丁層中的所述補(bǔ)丁內(nèi)容和所述基本文件系統(tǒng)和配置的內(nèi)容之間的至少一個(gè)關(guān)系的映射數(shù)據(jù);以及使能所述補(bǔ)丁層,包括激活所述映射數(shù)據(jù)以用于有選擇地將來自所述基本文件系統(tǒng)和配置的訪問請(qǐng)求重定向到所述補(bǔ)丁層。18.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括可由計(jì)算設(shè)備執(zhí)行以執(zhí)行以下功能的計(jì)算機(jī)指令截取訪問請(qǐng)求;從所述映射數(shù)據(jù)確定所請(qǐng)求的內(nèi)容是否位于所述補(bǔ)丁層中;當(dāng)確定所述請(qǐng)求內(nèi)容在所述補(bǔ)丁層中時(shí),基于所述映射數(shù)據(jù)將所述訪問請(qǐng)求重定向到所述補(bǔ)丁層;以及當(dāng)確定所述請(qǐng)求內(nèi)容不在所述補(bǔ)丁層中時(shí),允許所述訪問請(qǐng)求繼續(xù)行進(jìn)到所述基本文件系統(tǒng)和配置。19.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括可由計(jì)算設(shè)備執(zhí)行以執(zhí)行使所述補(bǔ)丁層無效的功能的計(jì)算機(jī)指令,包括反轉(zhuǎn)激活所述映射數(shù)據(jù)的所述步驟。20.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括可由計(jì)算設(shè)備執(zhí)行以執(zhí)行基于所述映射數(shù)據(jù)將所述虛擬安裝的計(jì)算機(jī)程序補(bǔ)丁提交到所述基本文件系統(tǒng)和配置的功能的計(jì)算機(jī)指令。全文摘要本公開涉及用于為計(jì)算機(jī)程序打補(bǔ)丁的方法和系統(tǒng)。在一個(gè)實(shí)例中,將補(bǔ)丁虛擬安裝到具有基本文件系統(tǒng)和配置、計(jì)算機(jī)程序和補(bǔ)丁分層子系統(tǒng)的計(jì)算設(shè)備。所述虛擬安裝可包括將所述補(bǔ)丁的內(nèi)容存儲(chǔ)到補(bǔ)丁層,并且生成和存儲(chǔ)定義了所述補(bǔ)丁層中的內(nèi)容和所述基本文件系統(tǒng)和配置中的內(nèi)容之間的至少一個(gè)關(guān)系的映射數(shù)據(jù)。可使能所述虛擬安裝的補(bǔ)丁,包括將所述映射數(shù)據(jù)應(yīng)用到所述補(bǔ)丁分層子系統(tǒng),使得所述補(bǔ)丁分層子系統(tǒng)配置用于有選擇地將訪問請(qǐng)求從基本文件系統(tǒng)和配置重定向到所述補(bǔ)丁層。在特定實(shí)施例中,可通過反轉(zhuǎn)映射數(shù)據(jù)到補(bǔ)丁分層子系統(tǒng)的應(yīng)用來使所使能的補(bǔ)丁無效。文檔編號(hào)G06F11/36GK101393525SQ20081014922公開日2009年3月25日申請(qǐng)日期2008年9月17日優(yōu)先權(quán)日2007年9月17日發(fā)明者蘭德爾·R·庫克,斯科特·G·霍普伍德,羅伯特·P·帕萊索佩,馬克·A·格林伍德申請(qǐng)人:賽門鐵克公司