亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

虛擬軟件子層的動(dòng)態(tài)插入和去除的制作方法

文檔序號(hào):6577677閱讀:204來源:國知局
專利名稱:虛擬軟件子層的動(dòng)態(tài)插入和去除的制作方法
虛擬軟件子層的動(dòng)態(tài)插入和去除
背景技術(shù)
在計(jì)算中,當(dāng)將軟件更新(例如軟件補(bǔ)丁)應(yīng)用到被安裝到計(jì)算機(jī)并 且在計(jì)算機(jī)上運(yùn)行的軟件應(yīng)用時(shí),通常必須關(guān)閉軟件應(yīng)用和從所述軟 件應(yīng)用運(yùn)行的所有的過程,以使得更新被應(yīng)用和/或變得有效。這種關(guān) 閉和所導(dǎo)致的停機(jī)時(shí)間對(duì)于軟件應(yīng)用和過程的正常使用和操作會(huì)產(chǎn)生 較大的中斷。
對(duì)于維護(hù)具有大量計(jì)算機(jī)和/或用戶的計(jì)算機(jī)系統(tǒng)的管理員或者 組織而言,這樣的與向軟件應(yīng)用來應(yīng)用更新相關(guān)聯(lián)的問題更為嚴(yán)重。 在這樣的計(jì)算機(jī)系統(tǒng)中,在計(jì)算機(jī)系統(tǒng)上的軟件應(yīng)用和相關(guān)聯(lián)的過程
的協(xié)同關(guān)閉會(huì)過度地增加負(fù)擔(dān)和干擾。


附圖示出了各種實(shí)施例,并且是說明書的一部分。所示出的實(shí)施 例僅僅是示例,而不限定本發(fā)明的范圍。在全部附圖中,相同或者類 似的附圖標(biāo)號(hào)表示相同或者類似的元件。
圖l示出了被配置用于虛擬軟件子層的動(dòng)態(tài)插入和去除的示例性 計(jì)算系統(tǒng)。
圖2A示出了在計(jì)算裝置環(huán)境中的示例性虛擬系統(tǒng)。 圖2B示出了在其中虛擬地安裝了虛擬層的圖2A的計(jì)算裝置環(huán)境。 圖2C示出了其中激活了虛擬層的圖2B的計(jì)算裝置環(huán)境。 圖2D示出了其中在虛擬層中插入了虛擬子層的圖2C的計(jì)算裝置 環(huán)境。
圖2E示出了圖2D的計(jì)算裝置環(huán)境,其中,虛擬子層被配置來用于 對(duì)于從虛擬層執(zhí)行的過程而言的選擇性的可見性和不可見性。
圖3示出了與在虛擬層中的虛擬子層的動(dòng)態(tài)插入相關(guān)的示例性事件的時(shí)間線。
圖4A-C示出了與在圖3中的事件相關(guān)聯(lián)的各種插入階段。 圖5A-C示出了在虛擬層中插入的虛擬子層的選擇性的可見性和不 可見性。
圖6示出了與向虛擬層動(dòng)態(tài)插入虛擬子層/從虛擬層動(dòng)態(tài)去除虛擬 子層相關(guān)的示例性事件的時(shí)間線。
圖7A-B示出了被標(biāo)注為要從虛擬層去除的虛擬子層的選擇性的可 見性和不可見性。
圖8示出了一種虛擬軟件子層的動(dòng)態(tài)插入的示例性方法。
圖9示出了一種虛擬軟件子層的動(dòng)態(tài)去除的示例性方法。
具體實(shí)施例方式
本公開涉及虛擬軟件子層的動(dòng)態(tài)插入和去除??梢砸远喾N方式來 實(shí)現(xiàn)在此公開的示例,包括作為一個(gè)或多個(gè)過程、設(shè)備、系統(tǒng)、裝置、 方法、計(jì)算機(jī)可讀介質(zhì)或者在計(jì)算機(jī)可讀介質(zhì)上包含的計(jì)算機(jī)程序產(chǎn) 品。在此描述在計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)的示例性系統(tǒng)、裝置、計(jì)算機(jī) 程序產(chǎn)品,以及用于動(dòng)態(tài)插入和/或去除軟件子層的方法。
在此使用的術(shù)語"軟件"和"軟件應(yīng)用"廣義地表示在一個(gè)或多 個(gè)計(jì)算機(jī)可讀介質(zhì)上包含的任何計(jì)算機(jī)可讀指令的集合,所述指令可 被計(jì)算裝置執(zhí)行。如所公知,所述計(jì)算裝置可以從軟件應(yīng)用執(zhí)行一個(gè) 或多個(gè)過程。軟件應(yīng)用可以包括一個(gè)或多個(gè)計(jì)算機(jī)程序和所述計(jì)算機(jī) 程序的任何部件和/或從所述計(jì)算機(jī)程序運(yùn)行的任何過程。軟件應(yīng)用的 "部件"可以包括與軟件應(yīng)用相關(guān)聯(lián)的或者可以被應(yīng)用到軟件應(yīng)用的 特征、數(shù)據(jù)或者功能的任何子集。在特定的實(shí)施例中,軟件應(yīng)用的部 件可以包括可以被應(yīng)用到軟件應(yīng)用的一個(gè)或多個(gè)更新(例如軟件補(bǔ)丁)。
軟件的"虛擬化"表示執(zhí)行一個(gè)或多個(gè)操作以向計(jì)算裝置虛擬地 安裝軟件,從而可以方便地激活(即"啟動(dòng)"或者"接通")或者去激活 (艮卩"禁止"或者"關(guān)斷")所述軟件和/或所述軟件的一個(gè)或多個(gè)部件。
7當(dāng)激活虛擬安裝的軟件時(shí), 一般從基本文件系統(tǒng)和配置向已經(jīng)被虛擬 地安裝了所述軟件的一個(gè)或多個(gè)存儲(chǔ)器位置重新定向與虛擬安裝的軟 件相關(guān)聯(lián)的訪問請(qǐng)求。當(dāng)無效所述虛擬安裝的軟件時(shí),不重新定向訪 問請(qǐng)求,而是允許其穿過而到達(dá)基本文件系統(tǒng)和配置。
如下更詳細(xì)所述,軟件應(yīng)用可以被虛擬化為虛擬層,可以激活所 述虛擬層,從而與從所述軟件應(yīng)用執(zhí)行的過程相關(guān)聯(lián)的訪問請(qǐng)求可以 從基本文件系統(tǒng)和配置被重新定向到所述虛擬層。與軟件應(yīng)用的部件 (例如諸如軟件補(bǔ)丁的更新)相關(guān)聯(lián)的虛擬子層可以被動(dòng)態(tài)地插入虛擬 層中,并且在逐個(gè)過程的基礎(chǔ)上有選擇性地應(yīng)用,而不關(guān)閉所述軟件 應(yīng)用或者從所述軟件應(yīng)用執(zhí)行的過程。在特定的實(shí)施例中,虛擬子層 的選擇性應(yīng)用可以包括確定是否在虛擬子層的動(dòng)態(tài)插入之前或者之 后啟動(dòng)了從軟件應(yīng)用執(zhí)行的過程,并且根據(jù)所述確定來選擇性地使得 所插入的虛擬子層對(duì)于所述過程可見或者不可見。在特定的示例中, 可以使得虛擬子層對(duì)于在插入之前啟動(dòng)的過程不可見,而對(duì)在插入之 后啟動(dòng)的過程可見。
在上述或者類似的方式中,可以在與虛擬化的和被激活的軟件應(yīng) 用相關(guān)聯(lián)的活動(dòng)的虛擬子層中動(dòng)態(tài)地插入與軟件應(yīng)用的部件相關(guān)聯(lián)的 虛擬子層,而不必終止從軟件應(yīng)用執(zhí)行的過程或者去激活虛擬層。艮卩, 虛擬層可以在插入期間保持活動(dòng)的。因此,可以在通常避免與更新軟 件應(yīng)用的傳統(tǒng)方式相關(guān)聯(lián)的不便、中斷和困難的同時(shí),在運(yùn)行中應(yīng)用 軟件應(yīng)用的部件(例如更新)。
以類似的方式,可以從與虛擬化的和被激活的軟件應(yīng)用相關(guān)聯(lián)的 活動(dòng)的虛擬層動(dòng)態(tài)地去除與軟件應(yīng)用的部件相關(guān)聯(lián)的虛擬子層,而不 必去激活虛擬層。g卩,虛擬層可以在去除期間保持活動(dòng)的。因此,可 以在通常避免與卸載軟件應(yīng)用或者軟件應(yīng)用的分量的傳統(tǒng)方式相關(guān)聯(lián) 的不便、中斷和困難的同時(shí),軟件應(yīng)用的部件(例如更新)可以在運(yùn)行中 解除應(yīng)用。
8現(xiàn)在轉(zhuǎn)向附圖,圖1示出了被配置用于在此所述的虛擬軟件子層 的動(dòng)態(tài)插入和去除的示例性計(jì)算系統(tǒng)100(或者簡稱為"系統(tǒng)100")。
如圖所示,計(jì)算系統(tǒng)100可以包括軟件管理子系統(tǒng)110,其可通信地耦 接到計(jì)算裝置120-1到120-N(統(tǒng)稱為"計(jì)算裝置120")。軟件管理子 系統(tǒng)110和計(jì)算裝置120可以使用任何適當(dāng)?shù)耐ㄐ偶夹g(shù)來彼此通信。 例如,軟件管理子系統(tǒng)110和計(jì)算裝置120可以使用任何適當(dāng)?shù)耐ㄐ?技術(shù)通過網(wǎng)絡(luò)130進(jìn)行通信,所述通信技術(shù)包括能夠支持在此所述的 過程和通信的適當(dāng)?shù)木W(wǎng)絡(luò)通信技術(shù)、裝置、信號(hào)和協(xié)議。網(wǎng)絡(luò)130可 以包括能夠在連接到網(wǎng)絡(luò)130的裝置之間承載通信信號(hào)的任何類型、 數(shù)量和配置的網(wǎng)絡(luò),包括但是不限于局域網(wǎng)、廣域網(wǎng)、對(duì)等網(wǎng)絡(luò)、無 線網(wǎng)絡(luò)、數(shù)據(jù)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)、因特網(wǎng)及其組合或者子組合。 在其他實(shí)施例中,軟件管理子系統(tǒng)110和計(jì)算裝置120可以諸如通過 通信總線或者其他通信鏈路而直接地通信。
在特定的實(shí)施例中,計(jì)算系統(tǒng)100可以包括任何計(jì)算機(jī)硬件和/或 指令(例如軟件程序)或者軟件和硬件的組合,其被配置為執(zhí)行在此所述 的過程。具體地,應(yīng)當(dāng)理解系統(tǒng)100可以包括多個(gè)計(jì)算裝置中的任何 一個(gè),并且可以使用多個(gè)計(jì)算操作系統(tǒng)中的任何一個(gè),所述計(jì)算機(jī)操 作系統(tǒng)包括但是決不限于Microsoft Windows、 UNIX、 Macintosh禾口 Linux操作系統(tǒng)的已知版本和/或變化形式。
因此,在此所述的過程和/或操作可以至少部分地被實(shí)現(xiàn)為在計(jì)算 機(jī)可讀介質(zhì)上包含并且可由一個(gè)或多個(gè)計(jì)算裝置執(zhí)行的指令,例如一 個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品。 一般地,處理器(例如微處理器)例如從存儲(chǔ) 器、計(jì)算機(jī)可讀介質(zhì)等接收指令,并且執(zhí)行那些指令,由此執(zhí)行一個(gè) 或多個(gè)過程或者操作,包括在此所述的一個(gè)或多個(gè)過程和/或操作???以使用多種已知的計(jì)算機(jī)可讀介質(zhì)來存儲(chǔ)和發(fā)送這樣的指令。
一種計(jì)算機(jī)可讀介質(zhì)(也稱為處理器可讀介質(zhì))包括參與提供可以被計(jì)算機(jī)(例如被計(jì)算機(jī)的處理器)讀取的數(shù)據(jù)(例如指令)的任何介質(zhì)。 這樣的介質(zhì)可以采取多種形式,包括但是不限于非易失性介質(zhì)、易失 性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)可以包括例如光學(xué)或者磁盤和其他 永久性存儲(chǔ)器。易失性介質(zhì)可以包括例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器
("DRAM"),其通常構(gòu)成主存儲(chǔ)器。傳輸介質(zhì)可以包括例如同軸電纜、 銅線和光纖,其中包括包含耦合到計(jì)算機(jī)的處理器的系統(tǒng)總線的導(dǎo)線。 傳輸介質(zhì)可以包括或者傳送聲波、光波和電磁發(fā)射,諸如在射頻("RF") 和紅外("IR")數(shù)據(jù)通信期間產(chǎn)生的那些。計(jì)算機(jī)可讀介質(zhì)的通常形式 包括例如軟盤、軟磁盤、硬盤、磁帶、任何其他磁介質(zhì)、CD-ROM、 DVD、任何其他光學(xué)介質(zhì),打孔卡、紙帶、具有孔圖案的任何其他物 理介質(zhì)、RAM、 PROM、 EPROM、閃存EEPROM、任何其他的存儲(chǔ)器 芯片或者盒式存儲(chǔ)器或者從其可以讀取計(jì)算機(jī)的任何其他介質(zhì)。
雖然在圖1中示出了示例計(jì)算系統(tǒng)100,但是在圖1中示出的示 例部件不意欲是限定性的。事實(shí)上,可以使用附加或者替代的部件、 實(shí)現(xiàn)方式或者計(jì)算系統(tǒng)來實(shí)現(xiàn)在此所述的原理和過程。
軟件管理子系統(tǒng)110可以包括一個(gè)或多個(gè)裝置或者被實(shí)現(xiàn)在一個(gè) 或多個(gè)裝置中,所述一個(gè)或多個(gè)裝置包括被配置通過網(wǎng)絡(luò)130與計(jì)算 裝置120通信的一個(gè)或多個(gè)裝置。在特定的實(shí)施例中,例如,軟件管 理子系統(tǒng)110可以包括一個(gè)或多個(gè)服務(wù)器裝置或者被包含在一個(gè)或多 個(gè)服務(wù)器裝置上,所述一個(gè)或多個(gè)服務(wù)器裝置可以被配置來操作服務(wù) 器軟件,諸如由Symantec公司的分公司Altiris公司提供的Altiris Notification Server 軟件。軟件管理子系統(tǒng)110可以包括在一個(gè)或多個(gè) 計(jì)算機(jī)可讀介質(zhì)上包含的計(jì)算機(jī)可讀指令(例如一個(gè)或多個(gè)計(jì)算機(jī)程序 產(chǎn)品),并且可以被配置來執(zhí)行在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上包含的 計(jì)算機(jī)可讀指令(例如一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品)。計(jì)算機(jī)可讀指令可
以被配置來將與軟件和/或軟件的部件的虛擬化和/或部署相關(guān)聯(lián)的一 個(gè)或多個(gè)操作的執(zhí)行引導(dǎo)到計(jì)算裝置120,其中,所述軟件和/或軟件 的部件的虛擬化和/或部署包括在計(jì)算裝置120中安裝和激活的虛擬層中部署表示用于動(dòng)態(tài)插入的虛擬子層的數(shù)據(jù)。因此,諸如系統(tǒng)100的 管理員的軟件管理子系統(tǒng)110的用戶可以使用軟件管理子系統(tǒng)110來
控制用于虛擬化和/或通過網(wǎng)絡(luò)130向計(jì)算裝置120部署軟件應(yīng)用和/或
軟件應(yīng)用的部件的操作。
例如,軟件管理子系統(tǒng)110可以接收或者訪問由諸如軟件應(yīng)用的
制造商或者分發(fā)商的實(shí)體分發(fā)的軟件應(yīng)用。例如,可以通過因特網(wǎng)下
載來訪問軟件應(yīng)用。在用戶的指導(dǎo)下,軟件管理子系統(tǒng)110可以通過 網(wǎng)絡(luò)130向計(jì)算裝置120中的一個(gè)或多個(gè)發(fā)送軟件應(yīng)用。可以使用任 何適當(dāng)?shù)募夹g(shù)以任何可接受的形式來發(fā)送用于表示軟件應(yīng)用的數(shù)據(jù)。
在特定實(shí)施例中,軟件管理子系統(tǒng)110可以被配置來向計(jì)算裝置 120發(fā)送用于安裝軟件應(yīng)用的可執(zhí)行安裝文件。在這樣的實(shí)施例中,計(jì) 算裝置120可以被配置來虛擬化軟件應(yīng)用。在其他實(shí)施例中,軟件管 理子系統(tǒng)110可以被配置來虛擬化軟件應(yīng)用,并且向計(jì)算裝置120輸 出用于表示被虛擬化的軟件應(yīng)用的數(shù)據(jù)。計(jì)算裝置120可以將被虛擬 化的軟件應(yīng)用存儲(chǔ)到一個(gè)或多個(gè)存儲(chǔ)器位置,以虛擬地向計(jì)算裝置120 安裝所述被虛擬化的軟件應(yīng)用。在其他實(shí)施例中,軟件管理子系統(tǒng)110 和計(jì)算裝置120可以劃分虛擬化操作。因此,軟件管理子系統(tǒng)110和/ 或計(jì)算裝置120可以執(zhí)行與虛擬化軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)軟件 虛擬化操作。
軟件應(yīng)用的虛擬化可以包括捕獲軟件應(yīng)用,所述軟件應(yīng)用在特定 的實(shí)施例中可以包括捕獲用于軟件應(yīng)用的可執(zhí)行安裝文件,并且產(chǎn) 生軟件應(yīng)用的一個(gè)或多個(gè)虛擬層。這可以以在2003年6月11日提交 并在2006年IO月3日授權(quán)的美國專利第7,117,495號(hào)中所描述的任何 方式來執(zhí)行,其公開通過引用而整體被包含在此。虛擬層可以包括軟 件應(yīng)用的一個(gè)或多個(gè)部件(例如程序文件、可執(zhí)行文件、配置文件、配 置信息、設(shè)置等)可以被存儲(chǔ)到其中的一個(gè)或多個(gè)文件夾、子層或者目 錄。虛擬層可以被存儲(chǔ)到一個(gè)或多個(gè)存儲(chǔ)器位置,以虛擬地安裝虛擬層。如下進(jìn)一步所述,所述存儲(chǔ)器位置與和計(jì)算裝置120的基本文件 系統(tǒng)和配置庫相關(guān)的存儲(chǔ)器位置相分離。
捕獲軟件應(yīng)用的過程可以包括產(chǎn)生映射數(shù)據(jù),所述映射數(shù)據(jù)可 以用于將通過虛擬化的軟件應(yīng)用產(chǎn)生的訪問請(qǐng)求從基本文件系統(tǒng)和配 置庫重新定向到與一個(gè)或多個(gè)虛擬層相關(guān)聯(lián)的其他存儲(chǔ)器位置。因此, 從虛擬化的軟件應(yīng)用執(zhí)行的過程可以使用在虛擬層中包括的內(nèi)容,而 不改變或者使用基本文件系統(tǒng)和配置庫。虛擬安裝也可以包括基于 虛擬層所存儲(chǔ)的存儲(chǔ)器位置來產(chǎn)生、更新和/或存儲(chǔ)映射數(shù)據(jù)。所述映 射數(shù)據(jù)可以被配置用于將訪問請(qǐng)求重新定向到與虛擬層相關(guān)聯(lián)的存儲(chǔ) 器位置??梢栽谟?jì)算裝置120上方便地激活和去激活虛擬安裝的虛擬 層,如下更詳細(xì)所述。
按照在此所述的原理,可以通過下述方式來更新虛擬安裝的以及 被激活的與軟件應(yīng)用相關(guān)聯(lián)的虛擬層通過在虛擬層中動(dòng)態(tài)地插入一 個(gè)或多個(gè)虛擬子層和/或通過從虛擬層動(dòng)態(tài)地去除一個(gè)或多個(gè)虛擬子 層。作為示例,軟件管理子系統(tǒng)110可以接收和部署軟件更新部件(例 如軟件補(bǔ)丁)到計(jì)算裝置120。如上所述,軟件管理子系統(tǒng)110可以捕 獲軟件更新部件,建立與所述更新部件相關(guān)聯(lián)的虛擬子層,并且向計(jì)
算裝置輸出表示虛擬子層的數(shù)據(jù)??蛇x地,可以向計(jì)算裝置120部署 軟件更新部件可執(zhí)行安裝文件,計(jì)算裝置120可以捕獲所述可執(zhí)行文
件,并且產(chǎn)生與更新部件相關(guān)聯(lián)的虛擬子層。可選地,軟件管理子系
統(tǒng)110和計(jì)算裝置120劃分用于捕獲軟件更新部件并且產(chǎn)生虛擬子層 的操作。
可以在與軟件應(yīng)用相關(guān)聯(lián)的活動(dòng)的虛擬層中動(dòng)態(tài)地插入與軟件更 新部件相關(guān)聯(lián)的虛擬子層,而不去激活虛擬層和/或而不終止從軟件應(yīng) 用執(zhí)行的過程。即,虛擬層可以在虛擬子層的動(dòng)態(tài)插入期間保持活動(dòng)。 可以在逐個(gè)過程的基礎(chǔ)上選擇性地應(yīng)用或者不應(yīng)用虛擬子層,如下更 更詳細(xì)的描述。以類似的方式,可以從活動(dòng)的虛擬層動(dòng)態(tài)地去除所插入的虛擬層,而不去激活虛擬層,如下更更詳細(xì)的描述。
為了更詳細(xì)地說明在活動(dòng)的虛擬層中動(dòng)態(tài)插入虛擬子層/從活動(dòng) 的虛擬層動(dòng)態(tài)地去除虛擬子層,現(xiàn)在參考圖2A-E來說明示例性軟件虛
擬化系統(tǒng)200和虛擬化的軟件的示例性配置??梢栽诎ㄈ魏斡?jì)算裝 置120的一個(gè)或多個(gè)適當(dāng)?shù)挠?jì)算裝置的計(jì)算裝置環(huán)境中實(shí)現(xiàn)在圖2A-E 所示的軟件虛擬化系統(tǒng)200和示例性配置。計(jì)算裝置120可以包括能 夠執(zhí)行在此所述的過程和/或操作的任何硬件和計(jì)算指令(例如一個(gè)或 多個(gè)計(jì)算機(jī)程序產(chǎn)品),所述一個(gè)或多個(gè)過程和/或操作包括與軟件管理 子系統(tǒng)110通信,并且虛擬化和/或操作一個(gè)或多個(gè)虛擬化的軟件應(yīng)用 禾口/或其部件,其中包括如在此所述的從軟件應(yīng)用執(zhí)行一個(gè)或多個(gè)過程。 計(jì)算裝置120可以包括但是決不限于個(gè)人計(jì)算機(jī)、工作站、個(gè)人數(shù)字 助理或者具有處理器、存儲(chǔ)器、輸入和輸出裝置以及至少一個(gè)硬盤的 任何裝置??梢钥紤],將在此所述的原理應(yīng)用到使用在此公開的方法 和原理的這些和其他計(jì)算系統(tǒng)和裝置,其中包括已有的和將要開發(fā)的 這些和其他計(jì)算系統(tǒng)和裝置。同樣,雖然下面許多示例指的是具有單 個(gè)基本文件系統(tǒng)和配置的計(jì)算裝置,但是下面公開的概念、原理和示 例可以被擴(kuò)展以在幾個(gè)或者許多文件系統(tǒng)和/或配置(例如注冊(cè)表)上提 供軟件虛擬化,包括虛擬軟件子層的動(dòng)態(tài)插入和/或去除。
如圖2A中所示,虛擬化系統(tǒng)200可以在具有形成平臺(tái)的基本操作 系統(tǒng)("基本OS")210的示例計(jì)算裝置環(huán)境中實(shí)現(xiàn),利用所述平臺(tái)可以 運(yùn)行一個(gè)或多個(gè)應(yīng)用程序220(例如軟件應(yīng)用),并且可以在文件系統(tǒng)中 訪問文件。在特定的實(shí)施例中,基本OS 210包括Microsoft Windows 操作系統(tǒng)軟件。
基本OS210可以包括對(duì)于用于讀取和寫入操作的應(yīng)用220全局地 可獲得的基本配置設(shè)置(例如注冊(cè)表設(shè)置)和文件?;綩S 210的所述 配置設(shè)置和文件可以被包括在基本文件系統(tǒng)和配置庫230中,基本文 件系統(tǒng)和配置庫230也被稱為基本文件系統(tǒng)和配置230,用于執(zhí)行基本
13OS 210的功能,并且基本OS 210的所述配置設(shè)置和文件可以包括文件 系統(tǒng)、諸如注冊(cè)表的配置設(shè)置和其他操作系統(tǒng)功能。包括基本OS210 的基本文件和配置設(shè)置的基本文件系統(tǒng)和配置庫230可以被存儲(chǔ)到在 計(jì)算裝置120的存儲(chǔ)器中的特定位置。
如圖2A中所示,虛擬化系統(tǒng)200可以包括虛擬化引擎240,其可 以包括任何硬件(例如處理器)、在計(jì)算機(jī)可讀介質(zhì)上包括的計(jì)算機(jī)可讀 指令(例如計(jì)算機(jī)程序產(chǎn)品)或者其組合,其被配置為執(zhí)行在此公開的一 個(gè)或多個(gè)操作。在特定的實(shí)施例中,虛擬化引擎240可以被實(shí)現(xiàn)為安 裝到計(jì)算裝置120的軟件代理。
虛擬化引擎240可以被配置為執(zhí)行一個(gè)或多個(gè)軟件虛擬化操作或 者指導(dǎo)其執(zhí)行,所述一個(gè)或多個(gè)軟件虛擬化操作包括在此公開的那些 的任何一個(gè)。作為示例,在特定實(shí)施例中,虛擬化引擎240可以被配 置為虛擬化軟件應(yīng)用,其中包括執(zhí)行下面的操作中的的任何一個(gè)和/或 指導(dǎo)下面操作的任何一個(gè)的執(zhí)行捕獲軟件應(yīng)用和/或其部件,產(chǎn)生一 個(gè)或多個(gè)虛擬層和/或虛擬子層,虛擬地安裝虛擬層和/或子層(例如通過 將它們存儲(chǔ)到存儲(chǔ)器位置),并且產(chǎn)生映射數(shù)據(jù),所述映射數(shù)據(jù)用于將 訪問請(qǐng)求從基本文件系統(tǒng)和配置230重新定向到虛擬層和/或子層。在 特定示例中,虛擬化引擎240可以接收軟件應(yīng)用的非虛擬化的軟件可 執(zhí)行安裝文件,并且執(zhí)行上述步驟以虛擬化所述軟件應(yīng)用。在其他示 例中,虛擬化引擎240可以從軟件管理子系統(tǒng)110接收用于表示一個(gè) 或多個(gè)虛擬層和/或子層的輸出數(shù)據(jù),并且虛擬地安裝虛擬子層和/或子 層(例如通過將它們存儲(chǔ)到一個(gè)或多個(gè)存儲(chǔ)器位置)。虛擬化引擎240可 以被配置為執(zhí)行在此公開的、用于虛擬子層的動(dòng)態(tài)插入和/或去除的操 作中的任何一個(gè)。
可以將虛擬化引擎240配置為截取來自應(yīng)用程序220的訪問請(qǐng)求 (例如文件系統(tǒng)和注冊(cè)表訪問請(qǐng)求),并且根據(jù)預(yù)定的映射數(shù)據(jù)來確定向 哪里重新定向訪問請(qǐng)求。因此,虛擬化引擎240可以選擇性地將對(duì)于基本文件系統(tǒng)和配置230的內(nèi)容的訪問請(qǐng)求重新定向到虛擬安裝和被 激活的軟件應(yīng)用和/或其部件的內(nèi)容,其中所述虛擬安裝和被激活的軟 件應(yīng)用和/或其部件的內(nèi)容已經(jīng)被存儲(chǔ)在存儲(chǔ)器中的分立和隔離的位 置,諸如在虛擬層和/或子層中。在特定的實(shí)施例中,軟件應(yīng)用和/或其 部件的虛擬安裝和激活允許透明地執(zhí)行重新定向,從而軟件應(yīng)用和計(jì)
算裝置120的操作系統(tǒng)不知道所述重新定向。
在特定的實(shí)施例中,虛擬化引擎240與基本文件系統(tǒng)和配置230 和/或基本OS210相關(guān)聯(lián)。作為示例,虛擬化引擎240的至少一部分可 以被實(shí)現(xiàn)為在操作系統(tǒng)內(nèi)核級(jí)上的一個(gè)或多個(gè)驅(qū)動(dòng)器(例如過濾驅(qū)動(dòng) 器),并且被配置為監(jiān)控在基本文件系統(tǒng)和配置庫230中存儲(chǔ)的文件和 配置設(shè)置的輸入和輸出請(qǐng)求。這可以通過監(jiān)控通過OS內(nèi)核I/O子系統(tǒng) 的調(diào)用來完成。在特定的實(shí)施例中,可以至少部分地基于例如在上述 的美國專利第7,117,495號(hào)中包括的教導(dǎo)來實(shí)現(xiàn)用于截取和重新定向訪 問請(qǐng)求的功能。
圖2A示出了具有虛擬化引擎240的虛擬化系統(tǒng)200,虛擬化引擎 240被配置為在計(jì)算環(huán)境中其中沒有虛擬安裝或者激活的軟件應(yīng)用的 狀態(tài)下工作。因此,虛擬化引擎240 —般被配置為允許從應(yīng)用程序220 繼續(xù)對(duì)于在基本文件系統(tǒng)和配置230中的內(nèi)容作出訪問請(qǐng)求。
圖2B示出了在其中軟件應(yīng)用被虛擬地安裝到計(jì)算裝置120來作為 虛擬層250的階段中的計(jì)算系統(tǒng)100。可以從任何適當(dāng)?shù)脑床⑶乙匀魏?可接受的形式接收用于表示應(yīng)用程序和/或虛擬層250的數(shù)據(jù),所述任 何可接受的形式包括通過從軟件管理子系統(tǒng)IIO經(jīng)由網(wǎng)絡(luò)130的傳輸。
如上所述,虛擬化引擎240可以執(zhí)行如上所述的虛擬化操作的任 何一個(gè),以虛擬化軟件應(yīng)用。在一些示例中,這可以包括創(chuàng)建軟件 應(yīng)用的虛擬層250,向虛擬層250存儲(chǔ)應(yīng)用程序的內(nèi)容,并且產(chǎn)生和存 儲(chǔ)用于虛擬層250的映射數(shù)據(jù)260。如圖2B所示,在一些實(shí)施例中,
15可以在虛擬層250中存儲(chǔ)映射數(shù)據(jù)260?;蛘?,可以在虛擬層250外部 的另一個(gè)位置存儲(chǔ)映射數(shù)據(jù)260。在其他示例中,虛擬化引擎240可以 從軟件管理子系統(tǒng)IIO接收虛擬層250,并且通過將其存儲(chǔ)到存儲(chǔ)器位 置來虛擬地安裝虛擬層250。
映射數(shù)據(jù)260可以包括可能有助于識(shí)別在存儲(chǔ)器中訪問請(qǐng)求應(yīng)當(dāng) 被引導(dǎo)到的適當(dāng)位置(例如虛擬層250)的任何信息。在映射數(shù)據(jù)260中 的信息可以以對(duì)于用于重新定向訪問請(qǐng)求、激活虛擬層250和去激活 虛擬層250的信息以適當(dāng)?shù)娜魏畏绞奖桓袷交徒M織。在特定的實(shí)施 例中,映射數(shù)據(jù)260包括被組織的信息的一個(gè)或多個(gè)表格,從而可以 通過索引、關(guān)鍵字或者其他標(biāo)準(zhǔn)來搜索所述信息。
作為產(chǎn)生映射數(shù)據(jù)260的一個(gè)示例,假定軟件應(yīng)用包括特定應(yīng)用 對(duì)象(例如DLL文件),其被設(shè)計(jì)來替換作為基本文件系統(tǒng)和配置230 的一部分的文件對(duì)象。在應(yīng)用的虛擬安裝期間,虛擬化引擎240和/或 軟件管理子系統(tǒng)110可以識(shí)別所述文件對(duì)象和/或其位置(例如路徑名)、 應(yīng)用對(duì)象和/或其在虛擬層250中的位置以及在文件對(duì)象和應(yīng)用程序?qū)?象和/或其各自位置之間的關(guān)系。對(duì)于所識(shí)別的信息的參考可以被記錄 和被包括作為映射數(shù)據(jù)260的一部分。以這種或者另一種適當(dāng)?shù)姆绞剑?可以說映射數(shù)據(jù)260限定在虛擬層250的內(nèi)容和基本文件系統(tǒng)和配置 230的內(nèi)容之間的關(guān)系。
在特定的實(shí)施例中,虛擬層250的激活包括通過將映射數(shù)據(jù)260 應(yīng)用到虛擬化引擎240來激活與虛擬層250相關(guān)聯(lián)的映射數(shù)據(jù)260。在 圖2C中,通過移動(dòng)映射數(shù)據(jù)260或者將映射數(shù)據(jù)260的拷貝注入虛擬 化引擎240中來表示映射數(shù)據(jù)260的激活。在特定的實(shí)施例中,這包 括將映射數(shù)據(jù)260注入虛擬化引擎240的操作系統(tǒng)內(nèi)核過濾驅(qū)動(dòng)器中。
在虛擬層250被激活的情況下,虛擬化引擎240被配置來選擇性 地將與相應(yīng)的軟件應(yīng)用相關(guān)聯(lián)的訪問請(qǐng)求從基本文件系統(tǒng)和配置230虛擬層250。例如,虛擬化引擎240可以截取來自應(yīng)用220 的訪問請(qǐng)求,所述請(qǐng)求包括對(duì)于基本文件系統(tǒng)和配置230的特定文件 對(duì)象或者存儲(chǔ)器位置的引用。虛擬化引擎240可以使用激活的映射數(shù) 據(jù)260來確定是否所述引用與活動(dòng)的虛擬層250相關(guān)聯(lián)。可以任何適 當(dāng)?shù)姆绞絹韴?zhí)行這種確定,包括搜索映射數(shù)據(jù)260以查找所述引用。 如果發(fā)現(xiàn)匹配,則虛擬化引擎240可以將訪問請(qǐng)求重新定向到在虛擬 層250中的相應(yīng)對(duì)象。所述相應(yīng)對(duì)象可以因此被訪問和被返回到應(yīng)用 程序220,應(yīng)用程序220不知道已經(jīng)發(fā)生重新定向。
由于各種原因,可能期望使用與虛擬層250相關(guān)聯(lián)的軟件應(yīng)用的 部件來更新虛擬層250。例如,軟件補(bǔ)丁或者其他更新對(duì)于軟件應(yīng)用可 以變得是可獲得的。更新軟件應(yīng)用的傳統(tǒng)方式一般要求關(guān)閉軟件應(yīng)用 和/或去激活虛擬層250,以向軟件應(yīng)用來應(yīng)用更新部件。不幸的是, 關(guān)閉軟件應(yīng)用和/或去激活虛擬層250以應(yīng)用更新會(huì)大大地和不期望地 中斷軟件應(yīng)用和虛擬層250的正常使用和操作,特別是在多用戶的計(jì) 算環(huán)境中。
按照在此所述的原理,可以在活動(dòng)的虛擬層250中動(dòng)態(tài)地插入一 個(gè)或多個(gè)虛擬子層,而不需去激活虛擬層250或者關(guān)閉相關(guān)聯(lián)的軟件 應(yīng)用。圖2D示出了圖2C的計(jì)算裝置環(huán)境,其中在活動(dòng)的虛擬層250 中插入虛擬子層270。虛擬子層270可以和與虛擬層250相關(guān)聯(lián)的軟件 應(yīng)用的虛擬部件相關(guān)聯(lián)。例如,軟件應(yīng)用的軟件更新(例如軟件補(bǔ)丁) 可以被虛擬化以形成虛擬子層270??梢允褂萌缟纤龅奶摂M化操作中 的任何一個(gè)來執(zhí)行軟件部件的虛擬化??梢灾T如通過向與虛擬層250 相關(guān)聯(lián)的一個(gè)或多個(gè)存儲(chǔ)器位置存儲(chǔ)用于表示虛擬子層270的數(shù)據(jù), 或者通過將虛擬子層270與虛擬層250相關(guān)聯(lián),虛擬地安裝虛擬子層 270。
虛擬子層270的插入可以包括考慮到虛擬子層270而配置虛擬 化引擎240和/或映射數(shù)據(jù)260,并且允許虛擬子層270的動(dòng)態(tài)插入和選擇性應(yīng)用。具體地,可以配置虛擬化引擎240以選擇性地在逐個(gè)過
程的基礎(chǔ)上應(yīng)用虛擬子層270。因此,可以動(dòng)態(tài)地執(zhí)行虛擬子層270的 插入,而不在虛擬子層270的插入期間去激活虛擬層250或者終止從 虛擬層250執(zhí)行的過程。在特定的實(shí)施例中,虛擬化引擎240可以被 配置為根據(jù)從虛擬層250執(zhí)行的過程的屬性來選擇性地應(yīng)用虛擬子層 270。例如,虛擬化引擎240可以被配置為向在插入虛擬子層270后啟 動(dòng)的過程選擇性地應(yīng)用虛擬子層270,并且限制將虛擬子層270應(yīng)用到 在虛擬子層270的插入之前啟動(dòng)的過程。當(dāng)將虛擬子層270應(yīng)用到過 程時(shí),所述過程使用插入后的虛擬層250,其包括被插入的虛擬子層 270。 g卩,虛擬化引擎240 —般將與所述過程相關(guān)聯(lián)的訪問請(qǐng)求引導(dǎo)到 插入后的虛擬層250,被插入后的虛擬層250具有所插入的虛擬子層 270。當(dāng)未將虛擬子層270應(yīng)用到過程時(shí),所述過程使用插入之前的虛 擬層250,所述插入之前的虛擬層250不具有插入的虛擬子層270。即, 虛擬化引擎240 —般將與所述過程相關(guān)聯(lián)的訪問請(qǐng)求引導(dǎo)到在虛擬子 層270的插入之前所存在的虛擬層250。
可以以任何適當(dāng)?shù)姆绞絹硗瓿商摂M子層270的選擇性應(yīng)用。例如, 虛擬子層270的插入可以包括利用與虛擬子層270相關(guān)聯(lián)的信息來更 新映射數(shù)據(jù)260。在特定的實(shí)施例中,可以更新映射數(shù)據(jù)260以包括用 于根據(jù)與訪問請(qǐng)求相關(guān)聯(lián)的過程的一個(gè)或多個(gè)屬性而有條件地路由訪 問請(qǐng)求的指令。例如,可以更新映射數(shù)據(jù)260以包括條件路由指令, 所述條件路由指令被配置為根據(jù)與訪問請(qǐng)求相關(guān)聯(lián)的過程的一個(gè)或多 個(gè)屬性,選擇性地將訪問請(qǐng)求引導(dǎo)到與所插入的虛擬子層270相關(guān)聯(lián) 的存儲(chǔ)器位置或者與插入前的虛擬層250相關(guān)聯(lián)的另一個(gè)存儲(chǔ)器位置。
作為另一個(gè)示例,虛擬子層270的插入可以包括向虛擬化引擎 240提供另一組映射數(shù)據(jù)。圖2E示出了在將映射數(shù)據(jù)280應(yīng)用到虛擬 化引擎240的情況下的圖2D的計(jì)算環(huán)境。如圖所示,虛擬化引擎240 可以包括映射數(shù)據(jù)260和映射數(shù)據(jù)280。在這種配置中,映射數(shù)據(jù)260 可以被配置來將訪問請(qǐng)求引導(dǎo)到在插入之前的虛擬層250,并且映射數(shù)
18據(jù)280可以被配置為將訪問請(qǐng)求引導(dǎo)到插入后的虛擬層250,在該插入 后的虛擬層250中插入了虛擬子層270。虛擬化引擎240可以被配置為 根據(jù)與訪問請(qǐng)求相關(guān)聯(lián)的過程的一個(gè)或多個(gè)屬性而選擇性地利用映射 數(shù)據(jù)260或者映射數(shù)據(jù)280來路由訪問請(qǐng)求。
上述示例僅僅是說明性的??梢栽谄渌麑?shí)施例中使用用于選擇性 地應(yīng)用所插入的虛擬子層270的任何適當(dāng)方式。
在特定的實(shí)施例中,虛擬化引擎240被配置為使用過程啟動(dòng)時(shí)間 屬性來選擇性地應(yīng)用或者不應(yīng)用虛擬子層270。在一些示例中,虛擬子 層270的插入可以包括虛擬化引擎240識(shí)別和創(chuàng)建從在虛擬子層270 的插入之前的虛擬層250執(zhí)行的過程的列表(即"插入之前的列表")。 所述列表可以包括在插入之前啟動(dòng)并且在插入時(shí)從虛擬層250仍然執(zhí) 行的過程。虛擬化引擎240可以使用所述列表來確定在虛擬子層270 的插入之前啟動(dòng)的過程,以選擇性地不向所述過程應(yīng)用虛擬子層270。 例如,虛擬化引擎240可以接收過程的訪問請(qǐng)求,并且査詢過程的列 表。如果所述過程包括在所述列表中,則虛擬化引擎240將不向所述 過程應(yīng)用虛擬子層270。虛擬化引擎240可以被配置為諸如通過從所述 列表去除被終止的過程來更新所述列表。
在其他示例中,虛擬化引擎240可以被配置為識(shí)別過程啟動(dòng)時(shí)間, 并且將啟動(dòng)時(shí)間與虛擬子層270的插入時(shí)間相比較。在特定的示例中, 可以進(jìn)行比較,并且可以當(dāng)虛擬化引擎240從軟件應(yīng)用執(zhí)行的過程接 收訪問請(qǐng)求時(shí)動(dòng)態(tài)地進(jìn)行確定。在其他示例中,可以進(jìn)行比較,并且 預(yù)先創(chuàng)建過程的一個(gè)或多個(gè)列表。所述列表可以包括在插入之前啟動(dòng) 的過程的列表,諸如如上所述的插入之前的列表,然后當(dāng)虛擬化引擎 240接收來自軟件應(yīng)用執(zhí)行的過程的訪問請(qǐng)求時(shí),可以査詢所述列表, 查詢結(jié)果用于確定是否向訪問請(qǐng)求應(yīng)用或者不應(yīng)用虛擬子層270。
為了進(jìn)一步說明虛擬子層270的選擇性逐個(gè)過程的應(yīng)用,圖3示出了與在虛擬層250中的虛擬子層270的動(dòng)態(tài)插入相關(guān)聯(lián)的事件的示 例時(shí)間線。如圖3所示,虛擬層250可以被虛擬地安裝和激活??梢?以如上所述的任何方式來完成這一點(diǎn)。當(dāng)虛擬層250為活動(dòng)的時(shí),可 以從虛擬層250啟動(dòng)和執(zhí)行過程310-1和310-2。然后可以以如上所述 的任何方式來將虛擬子層270動(dòng)態(tài)地插入虛擬層250中,而不終止過 程310-1和310-2,并且不去激活虛擬層250。在虛擬層250中動(dòng)態(tài)插 入虛擬子層270之后,可以從虛擬層250啟動(dòng)和執(zhí)行過程310-3。
圖4A-C進(jìn)一步示出了與虛擬層250相關(guān)的事件的示例序列。圖 4A示出了在虛擬子層270的插入之前從活動(dòng)的虛擬層250執(zhí)行的過程 310-1和310-2。圖4B示出了在活動(dòng)的虛擬層250中插入的虛擬子層 270。圖4C示出了在虛擬層270的插入之后,從虛擬層250啟動(dòng)和執(zhí) 行的過程310 — 3。
在出現(xiàn)在圖3中示出的事件的情況下,虛擬化引擎240可以被配 置為選擇性地向過程310-1、 310-2和310-3應(yīng)用或者不應(yīng)用被插入的 虛擬子層270。例如,虛擬化引擎240以被配置為選擇性地向在虛擬子 層270的插入后啟動(dòng)的過程310-3應(yīng)用虛擬子層270,并且選擇性地禁 止向在虛擬子層270的插入之前啟動(dòng)的過程310-1和310-2應(yīng)用虛擬子 層270。因此,可以在虛擬子層270的插入期間和之后繼續(xù)從插入之前 的虛擬層250執(zhí)行現(xiàn)有的過程310-1和310-2,而不向過程310-1和310-2 應(yīng)用虛擬子層270。同時(shí),可以從其中插入了虛擬子層270的插入后的 虛擬層250執(zhí)行新的過程,諸如在插入之后啟動(dòng)的過程310-3。
選擇性地向過程應(yīng)用或者不應(yīng)用虛擬子層270可以被稱為分別選 擇性地使得虛擬子層270對(duì)于所述過程可見或者不可見。圖5A-C示出 了虛擬子層270的選擇性可見性和不可見性。圖5A示出了虛擬子層 270對(duì)于過程310-1的選擇性不可見性。由過程310-1產(chǎn)生的訪問請(qǐng)求 510在如果所請(qǐng)求的內(nèi)容不在虛擬層250中的情況下,可以被引導(dǎo)到虛 擬層250,然后被引導(dǎo)到基本文件系統(tǒng)和配置230。如圖所示,訪問請(qǐng)求510被引導(dǎo)到插入之前的虛擬層250,并且看不到插入的虛擬子層 270。類似地,圖5B示出了虛擬子層270對(duì)于過程310-2的不可見性。 以這種或者類似的方式,可以選擇性地使得虛擬子層270對(duì)于過程 310-1和310-2不可見。
圖5C示出了虛擬子層270對(duì)于過程310-3的選擇性的可見性。如 果所請(qǐng)求的內(nèi)容不在虛擬層250或者虛擬子層270中,則可以將由過 程310-3產(chǎn)生的訪問請(qǐng)求510引導(dǎo)到虛擬層250和虛擬子層270,然后 引導(dǎo)到基本文件系統(tǒng)和配置230。如圖所示,將訪問請(qǐng)求510引導(dǎo)到在
插入之后的虛擬層250,并且看到虛擬子層270。以這種或者類似的方 式,可以選擇性地使得虛擬子層270對(duì)于過程310-3可見。
可以從軟件應(yīng)用動(dòng)態(tài)地去除虛擬化的和活動(dòng)的軟件應(yīng)用的部件, 而不關(guān)閉所述軟件應(yīng)用或者終止從所述軟件應(yīng)用執(zhí)行的過程。這可以 通過從與所述虛擬化的軟件應(yīng)用相關(guān)聯(lián)的虛擬層250去除諸如虛擬子 層270的虛擬子層來完成。在如上所述并且在圖3中示出的示例中, 例如,可以從虛擬層250動(dòng)態(tài)地去除被插入的虛擬子層270。圖6示出 了與虛擬子層270在虛擬層250中的動(dòng)態(tài)插入/從虛擬層250動(dòng)態(tài)地去 除相關(guān)聯(lián)的事件的示例時(shí)間線。如圖所示,在圖6中的時(shí)間線可以包 括圖3的插入相關(guān)事件。具體地,虛擬子層270已經(jīng)被動(dòng)態(tài)地插入虛 擬層250中,并且如上所述從虛擬層250執(zhí)行過程310-l、310-2和310-3。
此處,可能期望從虛擬層250去除虛擬子層270??梢詣?dòng)態(tài)地完 成這一點(diǎn),而不去激活虛擬層250。圖6示出了與虛擬子層270的動(dòng)態(tài) 去除相關(guān)聯(lián)的事件。如圖所示,可以將虛擬子層270標(biāo)注為要去除。 虛擬化引擎240可以被配置為以任何適當(dāng)?shù)姆绞絹順?biāo)注用于去除的虛 擬子層270,包括設(shè)置與虛擬子層270相關(guān)聯(lián)的去除變量的值。
一旦已經(jīng)將虛擬子層270標(biāo)注為要去除,則虛擬化引擎240可以 被配置為根據(jù)過程的一個(gè)或多個(gè)屬性來選擇性地使得虛擬子層對(duì)于所述過程可見或者不可見。可以以任何適當(dāng)?shù)姆绞絹硗瓿稍谔摂M子層270 已經(jīng)被標(biāo)注為要去除后選擇性地使得其可見或者不可見。在特定的實(shí)
施例中,虛擬化引擎240可以被配置為在已經(jīng)將虛擬子層270標(biāo)注為 要去除后,使用過程啟動(dòng)時(shí)間屬性來選擇性地應(yīng)用或者不應(yīng)用虛擬子 層270。在一些示例中,將虛擬子層270標(biāo)注為要去除可以包括虛擬 化引擎240識(shí)別和創(chuàng)建從虛擬子層270的插入之前的虛擬層250執(zhí)行 的過程的列表,并且在將虛擬子層270標(biāo)注為要去除之前使得虛擬子 層270對(duì)于所述過程不可見(g卩"去除之前的列表")。虛擬化引擎240 可以使用所述列表來確定在將虛擬子層270標(biāo)注為要去除之前虛擬子 層270對(duì)于過程可見,并且選擇性地繼續(xù)向所述過程應(yīng)用虛擬子層270。 例如,虛擬化引擎240可以從過程接收訪問請(qǐng)求,并且査詢?nèi)コ?的過程的列表。如果所述過程被包括在所述列表中,則虛擬化引擎240 將繼續(xù)向所述過程應(yīng)用虛擬子層270。
在圖6所示的示例中,在將虛擬子層270標(biāo)注為要去除之前,虛 擬子層270對(duì)于過程310-3可見。因此,當(dāng)虛擬子層270被標(biāo)注為要去 除時(shí),在去除之前的列表可以包括過程310-3。相反,在將虛擬子層270 標(biāo)注為要去除之前,虛擬子層270對(duì)于過程310-1和310-2不可見。因 此,當(dāng)虛擬子層270被標(biāo)注為要去除,則可以從去除之前的列表中省 略過程310—1和310 — 2?;谶@個(gè)列表,在已經(jīng)將虛擬子層270標(biāo)注 為要去除之后,虛擬化引擎240可以繼續(xù)使得虛擬子層270對(duì)于過程 310-3可見。
在已經(jīng)將虛擬子層270標(biāo)注為要去除后,新的過程310-4可以從 虛擬層250啟動(dòng)和執(zhí)行,如圖6所示。虛擬化引擎240可以根據(jù)在虛 擬子層270已經(jīng)被標(biāo)注為要去除后啟動(dòng)的過程310-4來選擇性地使得虛 擬子層270對(duì)于過程310-4不可見。例如,虛擬化引擎240可以查詢?cè)?去除之前的列表,并且確定過程310-4不包括在所述列表中。因此,虛 擬化引擎240可以使得虛擬子層270對(duì)于過程310-4不可見。
22圖7A-B示出了在虛擬子層270已經(jīng)被標(biāo)注為從虛擬層250去除后 虛擬子層270的選擇性的可見性和不可見性。圖7A示出了虛擬子層 270對(duì)于現(xiàn)有的過程310-3的選擇性的可見性。由過程310-3產(chǎn)生的訪 問請(qǐng)求510可以被引導(dǎo)到虛擬層250和虛擬子層270,然后如果在虛擬 層250或者虛擬子層270中未發(fā)現(xiàn)所請(qǐng)求的內(nèi)容,則被引導(dǎo)到基本文 件系統(tǒng)和配置230。如圖所示,訪問請(qǐng)求510被引導(dǎo)到虛擬層250,并 且看到虛擬子層270。以這種或者類似的方式,在已經(jīng)將虛擬子層270 標(biāo)注為要去除后,可以繼續(xù)使得虛擬子層270對(duì)于過程310-3可見。
圖7B示出了虛擬子層270對(duì)于在虛擬子層270已經(jīng)被標(biāo)注為要去 除后啟動(dòng)的新過程310-4的選擇性的不可見性。如果在標(biāo)注之后的虛擬 層250中未發(fā)現(xiàn)所請(qǐng)求的內(nèi)容,則由過程310-4產(chǎn)生的訪問請(qǐng)求510 可以被引導(dǎo)到虛擬層250,然后被引導(dǎo)到基本文件系統(tǒng)和配置230。如 圖所示,訪問請(qǐng)求5I0被引導(dǎo)到虛擬層250,但是看不到虛擬子層270。 以這種或者類似的方式,可以使得虛擬子層270對(duì)于過程310-4不可見。
虛擬化引擎240可以被配置為通過從列表去除被終止的過程而更 新在去除之前的列表。返回到圖6,在虛擬子層270已經(jīng)被標(biāo)注為要去 除后,可以終止過程310-3。虛擬化引擎240可以檢測過程310-3的終 止,并且從在去除之前的列表將其去除。
虛擬化引擎240可以被配置為檢測何時(shí)虛擬子層270可見的所有 過程被終止。在圖6的示例中,過程310-3是在虛擬子層270已經(jīng)被標(biāo) 注為要去除后虛擬子層270可見的唯一過程。因此,當(dāng)過程310-3終止 時(shí),從虛擬層250執(zhí)行的剩余的過程310-1、 310-2或者310-4都看不 到虛擬子層270。虛擬化引擎240可以識(shí)別是這種情況。例如,虛擬化 引擎240可以從在去除之前的列表去除過程310-3,并且確定在去除之 前的列表是空的。
當(dāng)虛擬化引擎240檢測到虛擬子層270不再對(duì)于從虛擬層250執(zhí)行的任何過程可見時(shí),虛擬化引擎240可以從虛擬層250動(dòng)態(tài)地去除(刪 除)虛擬子層270,如圖6所示。可以動(dòng)態(tài)地執(zhí)行所述去除,而不在所 述去除期間去激活虛擬層250。因此,從虛擬層250執(zhí)行的過程可以在 從虛擬層250去除虛擬子層270期間繼續(xù)被執(zhí)行。
可以以任何適當(dāng)?shù)姆绞絹硗瓿蓸?biāo)注和從虛擬層250動(dòng)態(tài)地去除虛 擬子層270。在特定的實(shí)施例中,虛擬化引擎240被配置為更新映射數(shù) 據(jù)260和/或映射數(shù)據(jù)280,以反映虛擬子層270已經(jīng)被標(biāo)注為要去除 和/或被從虛擬層250去除。
在如上所述的任何示例中,虛擬化引擎240可以被配置為提供一 個(gè)或多個(gè)圖形用戶界面("GUI"),諸如彈出窗口,以呈現(xiàn)給用戶。這 樣的GUI可以向用戶提供用于控制軟件虛擬化操作的一個(gè)或多個(gè)工 具。作為示例,GUI可以提供對(duì)話,用于向用戶請(qǐng)求許可,以請(qǐng)求和 拿下(bringdown)(例如下載)、虛擬地安裝、使能、禁止和/或去除一 個(gè)或多個(gè)虛擬子層270。在特定的實(shí)施例中,軟件管理子系統(tǒng)110可以 被配置為向軟件管理子系統(tǒng)110的用戶(例如計(jì)算系統(tǒng)100的管理員) 提供類似的GUI和工具。
圖8示出了虛擬子層的動(dòng)態(tài)插入的示例方法。雖然圖8示出了按 照一個(gè)實(shí)施例的示例步驟,但是其他實(shí)施例可以省略、添加到、重新 排序和/或修改在圖8所示的步驟的任何一個(gè)。
在步驟810中,虛擬地安裝虛擬層??梢砸匀缟纤龅姆绞降娜?何一種來執(zhí)行步驟810,包括軟件管理子系統(tǒng)110和/或向計(jì)算裝置120 虛擬地安裝虛擬層250的虛擬化引擎240。
在步驟820中,激活虛擬層??梢砸匀缟纤龅娜魏畏绞絹韴?zhí)行 步驟820,映射數(shù)據(jù)260被應(yīng)用到虛擬化引擎240以激活虛擬層250。
24在步驟830,在虛擬層中動(dòng)態(tài)地插入虛擬子層??梢砸匀缟纤?br> 的任何方式來執(zhí)行步驟830,包括軟件管理子系統(tǒng)IIO通過網(wǎng)絡(luò)130向 計(jì)算裝置110發(fā)送用于表示虛擬子層270的數(shù)據(jù),虛擬化引擎240在 活動(dòng)的虛擬層250中動(dòng)態(tài)地插入虛擬子層270,而不去激活虛擬層250。
在步驟840中,從虛擬層執(zhí)行過程??梢砸匀缟纤龅娜魏畏绞?來執(zhí)行步驟840,包括計(jì)算裝置120從虛擬層250執(zhí)行所述過程。
在步驟850,確定是否在將虛擬子層動(dòng)態(tài)插入虛擬層中之前或者 之后啟動(dòng)了過程??梢砸匀缟纤龅娜魏畏绞絹韴?zhí)行步驟850。
在步驟860,根據(jù)在步驟850中進(jìn)行的確定來選擇性地使得被插 入的虛擬子層對(duì)于過程可見或者不可見??梢砸匀缟纤龅娜魏畏绞?來執(zhí)行步驟860,包括虛擬化引擎240選擇地將與過程相關(guān)聯(lián)的訪問請(qǐng) 求引導(dǎo)到在插入之前的虛擬層250或者其中插入了虛擬子層270的在 插入之后的虛擬層250。在特定的示例中,當(dāng)確定過程已經(jīng)在步驟830 的插入之前啟動(dòng)時(shí),步驟860可以包括使得虛擬子層對(duì)于所述過程不 可見。在其他示例中,步驟860可以包括當(dāng)確定過程己經(jīng)在步驟830 的插入后啟動(dòng)時(shí),使得虛擬子層對(duì)于所述過程可見。
圖9示出了虛擬子層的動(dòng)態(tài)去除的示例方法。雖然圖9示出了按 照一個(gè)實(shí)施例的示例性步驟,但是其他實(shí)施例可以省略、添加到、重 新排序和/或修改在圖9所示的步驟的任何一個(gè)。
在步驟910,將虛擬子層標(biāo)注為要從虛擬安裝的和活動(dòng)的虛擬層 去除??梢砸匀缟纤龅娜魏畏绞絹韴?zhí)行步驟910,包括將虛擬子層 270標(biāo)注為要從虛擬層250去除,并且在將虛擬子層270標(biāo)注為要去除 之前創(chuàng)建現(xiàn)有過程的去除之前的列表,其中虛擬子層270對(duì)于所述現(xiàn) 有過程可見。在步驟920,從虛擬層執(zhí)行過程??梢砸匀缟纤龅娜魏畏绞絹?br> 執(zhí)行步驟920,包括計(jì)算裝置120從虛擬層250執(zhí)行所述過程。
在步驟930,確定是否在步驟910將虛擬子層標(biāo)注為要去除之前 所述虛擬子層對(duì)于過程是可見的。可以以如上所述的任何方式來執(zhí)行 步驟930,包括查詢所述過程的去除之前的列表。
在步驟940,根據(jù)在步驟930中進(jìn)行的確定來選擇性地使得被標(biāo) 注的虛擬子層對(duì)于過程可見或者不可見??梢砸匀缟纤龅娜魏畏绞?來執(zhí)行步驟940,包括虛擬化引擎240選擇性地將與過程相關(guān)聯(lián)的訪問 請(qǐng)求引導(dǎo)到其中虛擬子層270可見的虛擬層250或者其中虛擬子層270 不可見的虛擬層250。在特定的示例中,步驟940可以包括當(dāng)確定在 步驟910將虛擬子層標(biāo)注為要去除之前虛擬子層已經(jīng)對(duì)于過程可見時(shí), 使得所述虛擬子層對(duì)于所述過程可見。在其他示例中,步驟940可以 包括當(dāng)確定在步驟910將虛擬子層標(biāo)注為要去除之后已經(jīng)啟動(dòng)過程 時(shí),使得虛擬子層對(duì)于所述過程不可見。
在步驟950,確定虛擬子層對(duì)于從虛擬層執(zhí)行的任何過程是不可 見的??梢匀缟纤龅娜魏畏绞絹韴?zhí)行步驟950,包括虛擬化引擎240 識(shí)別過程的終止,從在去除之前的列表去除所述過程,并且識(shí)別在去 除之前的列表為空。
在步驟960,動(dòng)態(tài)地去除虛擬子層??梢匀缟纤龅娜魏畏绞絹?執(zhí)行步驟960,包括從虛擬層250去除虛擬子層270,而不去激活虛擬 層250(即虛擬層250在去除期間保持活動(dòng)的)。
前面的說明書僅僅被提供來參考

和描述示例性實(shí)施例。 但是,顯然在不脫離在所附的權(quán)利要求中給出的本發(fā)明的范圍的情況 下,可以對(duì)其進(jìn)行各種修改和改變,并且可以實(shí)現(xiàn)其他的實(shí)施例。因 此,應(yīng)將說明書和附圖視為在說明性而不是限定性的意義。
權(quán)利要求
1.一種方法,包括向計(jì)算裝置虛擬地安裝與軟件應(yīng)用相關(guān)聯(lián)的虛擬層;激活所述虛擬層;并且在所述虛擬層中動(dòng)態(tài)地插入與所述軟件應(yīng)用的部件相關(guān)聯(lián)的虛擬子層,其中,所述虛擬層在所述虛擬子層的所述動(dòng)態(tài)插入期間保持活動(dòng)。
2. 根據(jù)權(quán)利要求l的方法,還包括 從所述虛擬層執(zhí)行過程;確定是否在所述虛擬子層的所述插入之前或者之后啟動(dòng)了所述過 程;并且根據(jù)所述確定選擇性地使得所述被插入的虛擬子層對(duì)于所述過程 可見或者不可見。
3. 根據(jù)權(quán)利要求2的方法,其中,所述根據(jù)所述確定選擇性地使 得所述被插入的虛擬子層對(duì)于所述過程可見或者不可見包括當(dāng)確定所述過程已經(jīng)在所述虛擬子層的所述插入之后被啟動(dòng)時(shí), 使得所述被插入的虛擬子層對(duì)于所述過程可見;并且當(dāng)確定所述過程已經(jīng)在所述虛擬子層的所述插入之前被啟動(dòng)時(shí), 使得所述被插入的虛擬子層對(duì)于所述過程不可見。
4. 根據(jù)權(quán)利要求2的方法,其中,所述過程在所述虛擬子層的所 述插入之前被啟動(dòng),所述方法還包括在將所述虛擬子層動(dòng)態(tài)插入所 述虛擬層期間繼續(xù)執(zhí)行所述過程。
5. 根據(jù)權(quán)利要求4的方法,還包括 從所述虛擬層執(zhí)行另一個(gè)過程;確定所述另一個(gè)過程已經(jīng)在所述虛擬子層的所述插入之后被啟動(dòng);并且根據(jù)所述另一個(gè)過程已經(jīng)在所述虛擬子層的所述插入之后被啟動(dòng) 的所述確定來選擇性地使得所述被插入的虛擬子層對(duì)于所述另一個(gè)過 程可見。
6. 根據(jù)權(quán)利要求l的方法,其中,所述部件包括所述軟件程序的更新。
7. 根據(jù)權(quán)利要求1的方法,還包括 將所述被插入的虛擬子層標(biāo)注為要從所述虛擬層去除; 確定所述虛擬子層對(duì)于從所述虛擬層執(zhí)行的任何過程不可見;并且從所述虛擬層動(dòng)態(tài)地去除所述虛擬子層,其中,所述虛擬層在所 述虛擬子層的動(dòng)態(tài)去除期間保持活動(dòng)。
8. 根據(jù)權(quán)利要求1的方法,還包括 將所述被插入的虛擬子層標(biāo)注為要從所述虛擬層去除; 從所述活動(dòng)的虛擬層執(zhí)行過程;確定所述虛擬子層在將所述虛擬子層標(biāo)注為要去除之前對(duì)于所述 過程已經(jīng)可見;并且根據(jù)所述虛擬子層在將所述虛擬子層標(biāo)注為要去除之前對(duì)于所述 過程已經(jīng)可見的所述確定,選擇性地繼續(xù)使得所述被標(biāo)注的虛擬子層 對(duì)于所述過程可見。
9. 根據(jù)權(quán)利要求8的方法,還包括 從所述活動(dòng)的虛擬層執(zhí)行另一個(gè)過程;確定所述另一個(gè)過程己經(jīng)在將所述虛擬子層標(biāo)注為要去除之后被 啟動(dòng);并且根據(jù)所述另一個(gè)過程己經(jīng)在將所述虛擬子層標(biāo)注為要去除之后被 啟動(dòng)的所述確定,選擇性地使得所述被標(biāo)注的虛擬子層對(duì)于所述另一個(gè)過程不可見。
10. —種方法,包括動(dòng)態(tài)地將虛擬子層插入到在計(jì)算裝置中虛擬安裝和激活的虛擬層 中,其中,所述虛擬層與軟件應(yīng)用相關(guān)聯(lián),并且所述虛擬子層與所述 軟件應(yīng)用的部件相關(guān)聯(lián);從所述虛擬層執(zhí)行至少一個(gè)過程;并且選擇性地使得所述被插入的虛擬子層對(duì)于所述至少一個(gè)過程可見 或者不可見。
11. 根據(jù)權(quán)利要求10的方法,其中,所述至少一個(gè)過程包括從所 述虛擬層執(zhí)行的多個(gè)過程,所述多個(gè)過程包括第一過程和第二過程, 并且其中選擇性地使得所述虛擬子層對(duì)于所述第一過程不可見而對(duì)于 所述第二過程可見。
12. 根據(jù)權(quán)利要求11的方法,還包括確定已經(jīng)在所述虛擬子層的所述動(dòng)態(tài)插入之前啟動(dòng)了所述第一過 程;并且確定已經(jīng)在所述虛擬子層的所述動(dòng)態(tài)插入之后啟動(dòng)了所述第二過程;其中,根據(jù)所述確定,選擇性地使得所述虛擬子層對(duì)于所述第一 過程不可見,并且對(duì)于所述第二過程可見。
13. 根據(jù)權(quán)利要求12的方法,還包括在將所述虛擬子層動(dòng)態(tài)插 入所述虛擬層期間,繼續(xù)執(zhí)行所述第一過程。
14. 根據(jù)權(quán)利要求10的方法,其中,動(dòng)態(tài)地插入所述虛擬子層, 而不去激活所述虛擬層。
15. —種系統(tǒng),包括虛擬層,其在計(jì)算裝置中被虛擬地安裝和激活,所述虛擬層與軟 件應(yīng)用相關(guān)聯(lián);以及所述計(jì)算裝置中的虛擬化引擎,所述虛擬化引擎被配置為在所述 活動(dòng)的虛擬層中動(dòng)態(tài)地插入與所述軟件應(yīng)用的部件相關(guān)聯(lián)的虛擬子 層。
16. 根據(jù)權(quán)利要求15的系統(tǒng),其中,所述計(jì)算裝置被配置為從所 述活動(dòng)的虛擬層執(zhí)行過程,并且其中,所述虛擬化引擎被配置為確定是否在所述虛擬子層的所述插入之前或者之后啟動(dòng)了所述過 程,并且根據(jù)所述確定,選擇性地使得被插入的虛擬子層對(duì)于所述過程可 見或者不可見。
17. 根據(jù)權(quán)利要求16的方法,其中,所述虛擬化引擎被配置為 當(dāng)所述過程被確定已經(jīng)在所述虛擬子層的所述插入之后被啟動(dòng)時(shí),使得所述被插入的虛擬子層對(duì)于所述過程可見,并且當(dāng)所述過程被確定己經(jīng)在所述虛擬子層的所述插入之前被啟動(dòng) 時(shí),使得所述被插入的虛擬子層對(duì)于所述過程不可見。
18. 根據(jù)權(quán)利要求15的系統(tǒng),其中,所述虛擬化引擎被配置為 將所述被插入的虛擬子層標(biāo)注為要從所述虛擬層去除, 確定所述虛擬子層對(duì)于從所述虛擬層執(zhí)行的任何過程不可見,并且從所述活動(dòng)的虛擬層動(dòng)態(tài)地去除所述虛擬子層。
19. 根據(jù)權(quán)利要求15的系統(tǒng),還包括可通信地耦接到所述計(jì)算裝 置的軟件管理子系統(tǒng),其中,所述軟件管理子系統(tǒng)被配置為向所述計(jì) 算裝置提供用于表示所述虛擬子層的數(shù)據(jù)。
20. 根據(jù)權(quán)利要求15的系統(tǒng),其中,所述部件包括所述軟件應(yīng)用 的軟件補(bǔ)丁。
全文摘要
本發(fā)明涉及虛擬軟件子層的動(dòng)態(tài)插入和去除。在一個(gè)示例中,在計(jì)算裝置中虛擬地安裝和激活與軟件應(yīng)用相關(guān)聯(lián)的虛擬層。在所述虛擬層中動(dòng)態(tài)地插入與所述軟件應(yīng)用的部件相關(guān)聯(lián)的虛擬子層。所述虛擬層在所述虛擬子層的動(dòng)態(tài)插入期間保持活動(dòng)的。在特定的實(shí)施例中,從所述虛擬層執(zhí)行過程,確定是否在所述虛擬子層的所述插入之前或者之后啟動(dòng)了所述過程,并且根據(jù)所述確定來選擇性地使得所述被插入的虛擬子層對(duì)于所述過程可見或者不可見。
文檔編號(hào)G06F9/445GK101551754SQ200910133020
公開日2009年10月7日 申請(qǐng)日期2009年3月31日 優(yōu)先權(quán)日2008年3月31日
發(fā)明者蘭德爾·R·庫克 申請(qǐng)人:賽門鐵克公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1