專利名稱:從可移動介質(zhì)運行應用程序的制作方法
從可移動介質(zhì)運行應用程序
背景
用戶為其計算機獲取新軟件的方式之一是購買CD ROM或其他某種形式 的可移動介質(zhì)上的軟件。CD ROM (或其他可移動介質(zhì)) 一般包含諸如報稅程 序、游戲或無數(shù)其他可能性之一的應用程序。CD ROM —般也包括用來將應用 程序安裝在用戶的計算機上的軟件。用戶獲提示啟動安裝軟件,或有時安裝程 序自己自動起動。安裝程序然后將程序和數(shù)據(jù)文件復制到用戶的計算機上。安 裝程序一般也創(chuàng)建或修改程序文件、文件夾和目錄、注冊表項(對使用注冊表 的那些操作系統(tǒng))、配置文件條目、環(huán)境變量和鏈接或快捷方式,使得應用程 序可運行。因此, 一般在用戶可運行應用程序之前,至少某些軟件和數(shù)據(jù)文件 必須復制到用戶的計算機上。如果用戶想要移除軟件和該軟件創(chuàng)建或使用的任 何文件等,則應用程序可或是用由操作系統(tǒng)提供的軟件實用程序或是用與該應
用程序一同提供的軟件來頻繁地卸載。問題通常因卸載而起。有時,并非所有 應被刪除的所有文件、文件夾、目錄、注冊表項、鏈接、配置文件條目等都被 刪除了,而有時不應被刪除的文件等被刪除了。有時,留在用戶的計算機上的 文件等被擱置在對其他程序的執(zhí)行造成問題的狀態(tài)中。
此外,用戶通常擁有一臺以上的計算機,且想要在一臺以上的計算機上運 行軟件。例如假設用戶擁有三臺計算機。即使應用程序軟件本身是可移植的(例 如駐留在CDROM上),但為了在其三臺計算機中任一臺上運行該應用程序, 用戶將不得不在其三臺機器上各自獨立安裝該軟件。應用程序的安裝會耗費其 所安裝的每一臺計算機上的空間,且有可能會在該機器上留下數(shù)據(jù),即使軟件 隨后被卸載。當用戶想要在他人的計算機上運行軟件但不想在他人的計算機上 留下個人信息時,也會產(chǎn)生問題。在軟件必須被安裝和卸載的場合處置可移動 介質(zhì)上的軟件的問題是O(n)復雜度問題。因此,盡管在當今廣泛使用,該模 型仍有大量缺點。概述
用戶能夠購買或獲取可移動介質(zhì)上的軟件,或能夠從因特網(wǎng)或其他網(wǎng)絡上 將軟件下載到可移動介質(zhì)上,且能夠通過將可移動介質(zhì)插入計算機并從該可移 動介質(zhì)運行軟件來使用該軟件。不論軟件將在多少臺計算機上運行,軟件可以 僅需在一計算機上安裝一次,或者如果軟件被打包成無需安裝即可運行,則在 使用之前完全無需安裝軟件,因此消除了事后若希望的話要將其卸載的必要。 可移動介質(zhì)可以是只讀或可讀寫的。如果可移動介質(zhì)是可寫的,則軟件在 其上運行的第一臺計算機可執(zhí)行安裝步驟,并對該可移動介質(zhì)作出任何所需的 配量改變。該-軟件在這一或另 一計算機上的隨后運療可以-不需-要安裝。-如果^f 移動介質(zhì)是可寫的,則應用程序以及所創(chuàng)建或與之相關聯(lián)的任何文件或狀態(tài)可 任選地被存回該可移動介質(zhì)。不必安裝即可從可移動介質(zhì)運行的軟件不必自其 現(xiàn)成狀態(tài)作修改,而在不釆用本發(fā)明的情況下,軟件原本必須安裝才能運行。 如果可移動介質(zhì)是只讀的,則軟件可按照無需安裝步驟的方式打包(可任 選地,在購買后)?;蛘?,安裝步驟可被精簡為僅以如此方式作出所需的那些 配置改變以使所需配置改變僅為可移動介質(zhì)上的軟件可見。即,安裝不會影響 安裝它的計算機(即,計算機上的配置設置不會因軟件的安裝而改變)。用戶 具有將插入或連接著可移動介質(zhì)的計算機的狀態(tài)保持在若沒有插入可移動介 質(zhì)且也沒運行軟件的情況下計算機本將所處的狀態(tài)的選擇。通過創(chuàng)建諸如筒倉 (Sil0)的沙箱來從可移動介質(zhì)運行軟件,筒倉提供在無需在計算機上安裝軟
件的情況下可運行應用程序的環(huán)境。在移除可移動介質(zhì)之際,刪除沙箱并可從 計算機移除應用程序及其狀態(tài)的任何殘余。
筒倉將系統(tǒng)文件系統(tǒng)和系統(tǒng)注冊表的只讀視圖與對可移動介質(zhì)上的文件 和注冊表的讀寫訪問權合并。結(jié)果是用作完整的操作系統(tǒng)的隔離環(huán)境即筒倉。 筒倉并不具有操作系統(tǒng)映象的獨立實例。
附圖
在附圖中-
圖1是示出其中可以實現(xiàn)本發(fā)明各方面的示例性計算環(huán)境的框圖。 圖2a-c是根據(jù)本發(fā)明的某些實施例用于從可移動介質(zhì)運行應用程序的 系統(tǒng)的框圖;以及圖3是根據(jù)本發(fā)明的某些實施例用于從可移動介質(zhì)運行應用程序的方 法的流程圖。
詳細描述 概覽
現(xiàn)成軟件一般伴有可運行應用程序之前必須運行的安裝軟件。 一般,安裝 軟件將文件和數(shù)據(jù)復制到軟件將運行的計算機上。安裝軟件也可添加或更改配 置設置和注冊表值以使得應用程序可運行。根據(jù)本發(fā)明的實施例,現(xiàn)成軟件可 在無需將軟件安裝到機器上、無需修改現(xiàn)成教件的情況下從可移動介-質(zhì)運才f。 在本發(fā)明的某些實施例中,應用程序運行過后計算機的狀態(tài)不因應用程序的運 行而改變。即,應用程序正在運行時發(fā)生的任何狀態(tài)改變完全是瞬態(tài)的,且不 會導致對計算機上任何留持(永久或保存的)文件的改變。在本發(fā)明的某些實 施例中,在未被安裝在計算機上而是從可移動介質(zhì)運行的應用程序的執(zhí)行期間 創(chuàng)建或修改的文件被保存到可移動介質(zhì)上。在本發(fā)明的某些實施例中,在未被 安裝的應用程序的執(zhí)行期間創(chuàng)建或修改的文件被保存到計算機的文件系統(tǒng)的 指定區(qū)域。
可移動介質(zhì)包括可移動盤、CD ROM、 DVD、 USB鑰匙、閃存設備、閃 存驅(qū)動器、筆驅(qū)動器、芯片棒(chip stick)、拇指型驅(qū)動器、遠程文件共享、 網(wǎng)絡附連存儲和其他未知或未開發(fā)的這樣的設備。為了使現(xiàn)成軟件能夠在無需 安裝且無需在計算機上留下應用程序相關聯(lián)狀態(tài)的情況下運行,安裝軟件為初 始化目的而運行一次,且由安裝軟件設置的值被保存到可移動介質(zhì)上。該過程 被稱為預備可移動介質(zhì)。預備可移動介質(zhì)可發(fā)生一次以創(chuàng)建主控,或可在可移 動介質(zhì)首次被插入或以其他方式連接至任何計算機時發(fā)生?;蛘撸A備可在可 移動盤首次插入特定計算機時發(fā)生。當可移動介質(zhì)被插入應用程序?qū)⒃谄渖线\ 行的計算機時,創(chuàng)建應用程序筒倉。向應用程序筒倉曝露的文件系統(tǒng)是包括計 算機文件系統(tǒng)中的條目或其子集以及可移動介質(zhì)上的文件兩者的視圖。向應用 程序筒倉曝露的注冊表是包括計算機注冊表中的項或其子集以及可移動介質(zhì) 上的注冊表值兩者的視圖。因此,應用程序筒倉擔當對應用程序起如常規(guī)系統(tǒng) 作用的隔離執(zhí)行環(huán)境。(例如,如果應用程序是能夠在其上安裝有WINDOWS操作系統(tǒng)的機器上運行的應用程序,則該應用程序筒倉對該應用程序就如它是
常規(guī)WINDOWS系統(tǒng)一般起作用。)筒倉限制對計算機文件系統(tǒng)和注冊表的
寫,使得運行在筒倉中的進程僅能修改文件系統(tǒng)和注冊表的所選部分,但是操
作系統(tǒng)向運行在筒倉中的進程提供文件系統(tǒng)和注冊表的筒倉專用視圖,使得運
行在筒倉中的進程"覺得"它們具有對系統(tǒng)文件系統(tǒng)和注冊表完全的寫訪問權。 筒倉并不具有其自己的操作系統(tǒng)實例。
筒倉是提供對計算機上運行的進程的隔離的操作系統(tǒng)內(nèi)隔離/密封機制。 筒倉通過為運行在筒倉中的進程創(chuàng)建文件系統(tǒng)的視圖來允許對某些文件的受 控共享并P艮制對其他文件的訪問。-該視圖對在筒倉中運fi^-的進程顯現(xiàn)為兩個物
理文件系統(tǒng)目錄即系統(tǒng)文件系統(tǒng)和可移動介質(zhì)上的文件系統(tǒng)文件的并集的單 個目錄。即,對應用程序可用的文件取決于該應用程序"看見"的文件,而運行 在筒倉中的應用程序"看見"的文件系統(tǒng)是合并了系統(tǒng)文件系統(tǒng)和可移動介質(zhì) 上的文件系統(tǒng)文件的視圖。
類似地,筒倉通過為運行在筒倉中的進程創(chuàng)建注冊表視圖來控制對注冊表 中各項的共享和受限訪問。注冊表視圖對在筒倉中運行的進程顯現(xiàn)為兩個或更 多個物理注冊表即系統(tǒng)注冊表和可移動介質(zhì)上的注冊表的并集的單個注冊表。
一旦應用程序在應用程序筒倉中啟動,對系統(tǒng)配置和/或系統(tǒng)設置的任何 改變就被寫到這些文件的存在于可移動介質(zhì)上且一般在可移動介質(zhì)上關聯(lián)于 或?qū)儆谠搼贸绦虻乃接懈北尽?蓪贸绦蚩扇芜x地給予所選的對系統(tǒng)文件 系統(tǒng)的區(qū)域(例如,對"我的文檔"目錄)的訪問。當應用程序退出且移動介 質(zhì)從計算機移除時,筒倉被刪除。對系統(tǒng)配置和/或系統(tǒng)設置的任何改變可被寫 回可移動介質(zhì)上的應用程序私有存儲,或可被丟棄。
在本發(fā)明的某些實施例中,當將可移動介質(zhì)插入計算機時,應用程序是在 沙箱化或即與運行在該機器上的其余應用程序隔離開的筒倉中運行的。通過創(chuàng) 建筒倉、將可移動介質(zhì)上的注冊表元素與機器注冊表的只讀視圖合并、并藉將 可移動介質(zhì)上的文件與機器文件系統(tǒng)的文件的只讀子集合并來創(chuàng)建文件系統(tǒng) 的視圖從而創(chuàng)建沙箱??山箤τ嬎銠C的注冊表或文件系統(tǒng)的寫。取而代之, 當要對視圖中所表示的文件或注冊表元素之一進行寫時,該寫是對可移動介質(zhì)
上的文件或注冊表進行的。或者,改變可被寫到計算機上的臨時區(qū)域(scratcharea)。臨時區(qū)域可以且一般在移除可移動介質(zhì)之際被丟棄。
可移動介質(zhì)上的應用程序與系統(tǒng)之間的交互可被限于從向應用程序提供 的文件系統(tǒng)和注冊表視圖讀和向文件系統(tǒng)的所選區(qū)域(例如,向"我的文檔") 寫。因為應用程序不能向?qū)嶋H的系統(tǒng)注冊表寫,所以應用程序的行為受限。例 如,假定所提供的且要在可移動介質(zhì)上運行的應用程序是ACROBAT Reader。 ACROBAT Reader —般對諸如INTERNET EXPLORER或NETSCAPE的因特 網(wǎng)瀏覽器提供擴展。因為ACROBAT將在其自己的筒倉中運行,所以它不會從 已經(jīng)安裝在計算機上的因特網(wǎng)瀏覽器作為擴展被調(diào)用,這是因為因特網(wǎng)瀏覽器 所見的機器側(cè)注冊表視圖不詞于向ACROBAT-提供銜視歐。
上述行為使得本發(fā)明的實施例對諸如現(xiàn)今在自助服務終端(kiosk)中呈 現(xiàn)的環(huán)境中使用是理想的,因此,上述實施例的一個設想的應用是在自助服務 終端型環(huán)境中使用。自助服務終端在公共場所是常見的,且通過提供計算機和 監(jiān)視器供公眾使用來提供計算機和因特網(wǎng)相關服務。當可移動介質(zhì)包括根據(jù)本 發(fā)明的實施例的軟件時,用戶能夠在自助服務終端計算機上運行軟件,而不在 自助服務終端計算機上留下個人信息或數(shù)據(jù)或修改自助服務終端操作系統(tǒng)的 配置。
自助服務終端當今常用于機場、景點(為了提供關于賓館、飯店或公共運 輸?shù)鹊男畔?、展銷會以及零售店。例如,某些店內(nèi)自助服務終端允許購物者 鏈接至顧客可瀏覽實體上并不位于該店內(nèi)的項目的網(wǎng)站,并允許售貨員訪問關 于商品的信息,諸如產(chǎn)品規(guī)格、保質(zhì)信息以及定價比較。在另一構(gòu)想用途中, 當可移動介質(zhì)被插入計算機時,可向用戶呈現(xiàn)類似于對自助服務終端的新登錄 的體驗。結(jié)果可被存回可移動介質(zhì)。可任選地,可將更多的用戶環(huán)境(諸如用 戶的文檔和設置)保存到可移動介質(zhì)上。
在本發(fā)明的其他實施例中,應用程序顯現(xiàn)為用戶環(huán)境的一部分,且能夠擴
展系統(tǒng)。例如,可移動介質(zhì)上的ACROBAT Reader變?yōu)榭蓮囊蛱鼐W(wǎng)瀏覽器調(diào) 用。在這些實施例中,當創(chuàng)建筒倉并提供合并視圖之后,運行在機器上引入必 需聯(lián)接(linkage)的應用程序?qū)S脛幼?。?lián)接可以是引入機器注冊表中的一組 鍵值對。當移除可移動介質(zhì)之際,聯(lián)接即被移除。維護聯(lián)接的代碼可在介質(zhì)插 入/移除之際運行的聲明性清單或特殊代碼中描述。
9在本發(fā)明的其他實施例中,應用程序顯現(xiàn)為用戶環(huán)境的一部分,且能夠擴 展系統(tǒng),但代替上述一組動作的是,在筒倉中重啟因特網(wǎng)瀏覽器的用戶界面(外 殼)部分。當插入可移動介質(zhì)時,新程序出現(xiàn)在程序列表中。新程序可擔當現(xiàn) 有程序的擴展,且可改變外殼的設置等,但當移除可移動介質(zhì)時,這些設置被 丟棄。
示例性計算環(huán)境 .
圖1及以下討論旨在提供對可在其中實現(xiàn)本發(fā)明的合適計算環(huán)境的簡要 概括描述。然而,應當理解,構(gòu)想了所有種類的手持式、-便攜式和其它計算設 備來結(jié)合本發(fā)明使用。盡管以下描述了通用計算機,但是這僅是一個示例,并 且本發(fā)明只需具有網(wǎng)絡服務器互操作性和交互的瘦客戶機。由此,本發(fā)明可在 其中牽涉極少或最小客戶機資源的聯(lián)網(wǎng)的托管服務的環(huán)境,例如其中客戶機設
備僅用作瀏覽器或到萬維網(wǎng)的接口的聯(lián)網(wǎng)環(huán)境中實現(xiàn)。
盡管并非必需,但本發(fā)明可經(jīng)由應用程序編程接口 (API)來實現(xiàn)以供開
發(fā)者使用,和/或被包括在網(wǎng)絡瀏覽軟件中,該網(wǎng)絡瀏覽軟件將在諸如程序模塊 等由諸如客戶機工作站、服務器或其它設備等一個或更多個計算機執(zhí)行的計算 機可執(zhí)行指令的一般上下文中描述。 一般而言,程序模塊包括執(zhí)行特定任務或 實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。通常,程序 模塊的功能可以在各個實施例中按需進行組合或分布。此外,本領域的技術人 員可以理解,本發(fā)明可以用其它計算機系統(tǒng)配置來實施。適用于本發(fā)明的其它
眾所周知的計算系統(tǒng)、環(huán)境和/或配置包括但不限于,個人計算機(PC)、自
動柜員機、服務器計算機、手持式或膝上型設備、多處理器系統(tǒng)、基于微處理
器的系統(tǒng)、可編程消費者電子設備、網(wǎng)絡PC、小型機、大型計算機等等。本 發(fā)明也可以在其中任務由通過通信網(wǎng)絡或其它數(shù)據(jù)傳輸介質(zhì)鏈接的遠程處理 設備來執(zhí)行的分布式計算環(huán)境中實踐。在分布式計算環(huán)境中,程序模塊可以位 于包括存儲器存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
因此,圖1示出了其中可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的一個示 例,盡管如上所澄清的,計算系統(tǒng)環(huán)境100僅為合適的計算環(huán)境的一個示例, 而并非旨在對本發(fā)明的使用或功能范圍提出任何限定。也不應該把計算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或 要求。
參考圖1,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括計算機110形式的通用計算 設備。計算機110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130 和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線 121。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總 線或存儲控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總 線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標準體系結(jié)構(gòu)(ISA)總 線、微通道體系裙枸(MCA)總線、潛強型KA-《EISA)-總線、視頻電子技 術標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也稱為Mezzanine 總線)。
計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能由計 算機IIO訪問的任何可用介質(zhì),而且包含易失性、非易失性介質(zhì)以及可移動和 不可移動介質(zhì)。作為示例而非局限,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì) 和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、 程序模塊或其它數(shù)據(jù)等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移 動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、 閃存或其它存儲器技術、CDROM、數(shù)字多功能盤(DVD)或其它光盤存儲、 磁盒、磁帶、磁盤存儲或其它磁存儲設備、或可以用來儲存所期望的信息并可 由計算機110訪問的任一其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制 等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù), 并包括任意信息傳送介質(zhì)。術語"己調(diào)制數(shù)據(jù)信號"指的是其一個或更多個特征 以在信號中編碼信息的方式被設定或更改的信號。作為示例而非限制,通信介 質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡或直接布線連接,以及無線介質(zhì),諸如聲學、 RF、紅外線和其它無線介質(zhì)。以上的任何組合也應包括在計算機可讀介質(zhì)的范 圍內(nèi)。
系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì), 如只讀存儲器(ROM) 131和隨機存取存儲器(RAM) 132?;据斎?輸出系 統(tǒng)133 (BIOS)包括如在啟動時幫助在計算機110內(nèi)的元件之間傳輸信息的基本例程,它通常儲存在ROM131中。RAM132通常包含處理單元120可以立 即訪問和/或目前正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖 1示出了操作系統(tǒng)B4、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可以包括其它可移動/不可移動、易失性/非易失性計算機存 儲介質(zhì)。僅作示例,圖l示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤 驅(qū)動器141,對可移動、非易失性磁盤152進行讀寫的磁盤驅(qū)動器151,以及 對可移動、非易失性光盤156,如CDROM或其它光介質(zhì)進行讀寫的光盤驅(qū)動 器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易 失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄 像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器141通常經(jīng)由諸如接口 140 等不可移動存儲器接口連接至系統(tǒng)總線121,而磁盤驅(qū)動器151和光盤驅(qū)動器 155通常經(jīng)由諸如接口 150等可移動存儲器接口連接至系統(tǒng)總線121。
上文討論并在圖1中示出的驅(qū)動器及其關聯(lián)的計算機存儲介質(zhì)為計算機 110提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。在圖1 中,例如,硬盤驅(qū)動器141被示為存儲著操作系統(tǒng)144、應用程序145、其它 程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應用程 序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。操作系 統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標注了不 同的標號是為了說明至少它們是不同的副本。用戶可以通過輸入設備,諸如鍵 盤162和定點設備161 (通常指鼠標、跟蹤球或觸摸墊)向計算機110輸入命 令和信息。其它輸入設備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤 式衛(wèi)星天線、掃描儀等。這些和其它輸入設備通常由耦合至系統(tǒng)總線121的用 戶輸入接口 160連接到處理單元120,但是也可由諸如并行端口、游戲端口或 通用串行總線(USB)之類的其它接口和總線結(jié)構(gòu)連接。
監(jiān)視器191或其它類型的顯示設備也經(jīng)由接口,諸如視頻接口 190連接至 系統(tǒng)總線121。諸如北橋(Northbridge)等圖形接口 182也可連接到系統(tǒng)總線 121。北橋是與CPU或主機處理單元120通信的芯片組,并承擔了加速圖形端 口 (AGP)通信的責任。 一個或更多個圖形處理單元(GPU) 184可以與圖形 接口 182通信。在這一點上,GPU184—般包括諸如寄存器存儲等片上存儲器
12存儲,并且GPU 184與視頻存儲器186通信。然而,GPU 184僅是協(xié)處理器的 一個示例,且因此計算機110中可包括各種協(xié)處理設備。監(jiān)視器191或其它類 型的顯示設備也通過接口,如視頻接口 190連接至系統(tǒng)總線121,而視頻接口 190又與視頻存儲器186通信。除監(jiān)視器191之外,計算機也可包括其它外圍 輸出設備,如揚聲器197和打印機196,它們可通過輸出外圍接口 195連接。
計算機110可使用至一個或更多個遠程計算機,如遠程計算機180的邏輯 連接在網(wǎng)絡化環(huán)境中操作。遠程計算機180可以是個人計算機、服務器、路由 器、網(wǎng)絡PC、對等設備或其它常見的網(wǎng)絡節(jié)點,并且通常包括許多或所有以 上相對于計算機110所描述的元件,盡管在圖1中僅示出了存儲器存儲設備 181。圖1中所示的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173, 但也可以包括其它網(wǎng)絡。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、內(nèi) 聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機110通過網(wǎng)絡接口或適配器170連 接至LAN171。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào) 器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器 172可以是內(nèi)置或外置的,它可以通過用戶輸入接口 160或其它適當?shù)臋C制連 接至系統(tǒng)總線121。在網(wǎng)絡化環(huán)境中,相對于計算機110所描述的程序模塊或 其部分可被儲存在遠程存儲器存儲設備中。作為示例而非局限,圖l示出遠程 應用程序185駐留在存儲器設備181上??梢岳斫?,所示的網(wǎng)絡連接是示例性 的,且可以使用在計算機之間建立通信鏈路的其它手段。
本領域的普通技術人員可以理解,計算機110或其它客戶機設備可作為計 算機網(wǎng)絡的一部分來部署。在這一點上,沐發(fā)明涉及具有任意數(shù)量的存儲器或 存儲單元以及在任意數(shù)量的存儲單元或巻上發(fā)生的任意數(shù)量的應用程序和進 程的任何計算機系統(tǒng)。本發(fā)明可應用于具有部署在網(wǎng)絡環(huán)境中的具有遠程或本 地存儲的服務器計算機和客戶計算機的環(huán)境。本發(fā)明也可應用于具有編程語言 功能、解釋和執(zhí)行能力的獨立計算設備。
從可移動介質(zhì)運行應用程序
由筒倉通過將系統(tǒng)文件目錄和可移動介質(zhì)上的文件目錄合并成向運行在
13筒倉中的應用程序曝露的單個應用程序?qū)S媚夸泚韯?chuàng)建文件系統(tǒng)目錄的應用 程序?qū)S靡晥D。應用程序?qū)S媚夸浀南到y(tǒng)文件目錄部分全部(或除了指定部分 以外的全部)可以是只讀的(對該應用程序而言)。應用程序?qū)S梦募夸浿?來自可移動介質(zhì)文件目錄的部分可被指定為對運行在筒倉中的應用程序為只 讀或可寫的。由筒倉通過將系統(tǒng)注冊表和可移動介質(zhì)注冊表合并成向運行在筒 倉中的應用程序曝露的應用程序?qū)S米员韥韯?chuàng)建注冊表的應用程序?qū)S靡?圖。應用程序?qū)S米员淼南到y(tǒng)注冊表部分全部(或除了指定部分以外的全部) 可以是只讀的(對該應用程序而言)。應用程序?qū)S梦募员碇衼碜钥梢苿?介質(zhì)文件注冊表的部分可被指定為對運行在筒倉中的應用程序為只讀或可寫 的。
圖2a-c示出了用于從插入或以其他方式連接至計算機的可移動介質(zhì)運行 未被安裝在該計算機上的應用程序的系統(tǒng)200的實施例。系統(tǒng)200可駐留在一 臺或更多臺計算機上,諸如以上參考圖1所述的計算機110。圖2a表示可移動 介質(zhì)插入(或以其他方式連接)前的系統(tǒng)。圖2b表示當可移動介質(zhì)插入機器 時的系統(tǒng),而圖2c表示在可移動介質(zhì)已移除之后的系統(tǒng)。在圖2a中,由操作 系統(tǒng)(OS) 214表示諸如WINDOWS、 Linux或其他操作系統(tǒng)等操作系統(tǒng)。系 統(tǒng)文件系統(tǒng)由文件系統(tǒng)202表示,其可包括數(shù)據(jù)文件或應用程序狀態(tài)(由其中 多個文件由文檔1 204a和文檔2 204b等表示的"我的文檔"目錄204表示)。 文件系統(tǒng)202也可在程序文件目錄206中包括多個程序文件,諸如程序1 206a 和程序206b等。注冊表(對用特殊結(jié)構(gòu)存儲程序設置的操作系統(tǒng)而言)由注 冊表208表示。在圖2a中,程序1 206a的程序設置由注冊表項208a表示,而 程序2 206b的程序設置由注冊表項208b表示,依此類推。
可移動介質(zhì)在圖2a中由USB鑰匙212表示。USB鑰匙212在本發(fā)明的某 些實施例中包括以下中的一個或更多個如上所述的清單,其由清單212a表 示;(一般較小但也不必如此的)程序文件目錄,其包括要在不被安裝在計算 機110的情況下在USB鑰匙上運行的應用程序所需的那些程序文件(例如, 程序3 212c);以及數(shù)據(jù)文件(由包括文檔3 212b的"我的文檔"目錄表示), 其表示應用程序所需的數(shù)據(jù)文件以及由安裝程序和/或應用程序的隨后運行所 生成的應用程序狀態(tài)。USB鑰匙數(shù)據(jù)文件和程序文件一起表示USB鑰匙的文件系統(tǒng)文件212x。此外,可移動介質(zhì)的注冊表由程序3設置212d表示。在預 備之前,文檔3 212b和注冊表設置212d可以是最小的或為空。
圖2b示出了未被安裝的應用程序執(zhí)行期間的計算機110。在將可移動介 質(zhì)(例如,USB鑰匙212)插入或連接至計算機110之際,生成用于要運行的 應用程序(例如,程序3 212c)的沙箱化執(zhí)行環(huán)境。創(chuàng)建筒倉216,并創(chuàng)建合 并的應用程序?qū)S媚夸?18和合并的應用程序?qū)S米员?20。如可從圖2b 理解地,合并的目錄218包括合并在一起的來自系統(tǒng)文件系統(tǒng)202和可移動介 質(zhì)文件系統(tǒng)文件(文檔3 212b和程序3 212c)兩者的條目。類似地,合并的注 冊表220包括合并在一起的來自系統(tǒng)注冊表208和可移動介質(zhì)注冊表212d兩 者的項。在本發(fā)明的某些實施例中,對運行在筒倉216的應用程序(例如,程 序3)(由進程222表示)顯現(xiàn)為單個物理目錄的實體實際上是由鏈接創(chuàng)建的 幻像(由圖2b的虛線表示),且并不作為虛擬(例如存儲在存儲器中的)實 體或物理(留持在固定存儲介質(zhì)上的)實體中的任一者物理存在。在某些實施 例中,合并的文件系統(tǒng)目錄218和合并的注冊表視圖220是虛擬目錄。隨著進 程222執(zhí)行,注冊表項可能會改變,而數(shù)據(jù)文件可能被創(chuàng)建或更新。當作出對 注冊表項的改變或創(chuàng)建額外的注冊表項時,或當作出對數(shù)據(jù)文件的改變或創(chuàng)建 額外的數(shù)據(jù)文件時,這些改變和添加可任選地寫回到可移動介質(zhì)212 (即,例 如更新USB鑰匙212上的文檔3 212b,或新的注冊表程序3設置212d)。代 替地,這些改變可僅當應用程序正在執(zhí)行時留持著(在視圖218和220中), 且在移除可移動介質(zhì)之際,這些改變和添加可被丟棄。在本發(fā)明的某些實施例 中,作為寫到可移動介質(zhì)的補充或替代,改變和添加可對系統(tǒng)文件系統(tǒng)/注冊表 的指定區(qū)域進行。
圖2c表示進程222已終止之后的計算機110。例如假定,因應用程序執(zhí) 行而導致的改變是將被寫回可移動介質(zhì)。假定對程序3設置作出改變。新的程 序3設置可被留持到可移動介質(zhì)上(在圖2c中由新程序3設置212f表示)。 假定文檔3 212b在應用程序執(zhí)行期間被更新。對文檔的改變可被留持到可移動 介質(zhì)上(在圖2c中被表示為更新的文檔3 212e)??梢岳斫?,所作出的改變 以及對改變的留持是由筒倉機制執(zhí)行的——即,應用程序不被修改(例如,理 解到它在筒倉中運行)。筒倉216被刪除,且所有應用程序相關聯(lián)狀態(tài)可從計算機110移除。文件系統(tǒng)202和注冊表208未因從可移動介質(zhì)運行的應用程序 (例如,程序3 212c)的執(zhí)行而改變。
在本發(fā)明的其他實施例中,文件系統(tǒng)或注冊表的指定部分可由運行在筒倉 中的應用程序讀寫訪問。例如,可向應用程序授予對系統(tǒng)文件系統(tǒng).202的"我 的文檔"目錄204的讀寫訪問權。在這種情況中,更新后的文檔3 212e可被寫 到"我的文檔"目錄204。類似地,新的程序3設置212f可被寫到圖2c的系 統(tǒng)注冊表208?;蛘?,根據(jù)另一選擇,所有更新后的文件和注冊表值可被丟棄。
圖3是用于從可移動介質(zhì)運行應用程序而無需在計算機上安裝該應用程 序的方法的流程圖。在某些實施例中,這是使用如上所述的筒倉機制完成的。 如此處所使用的可移動介質(zhì)包括可移動盤、CDROM、 DVD、 USB鑰匙、閃存 設備、閃存驅(qū)動器、筆驅(qū)動器、芯片棒(chip stick)、拇指型驅(qū)動器、以及其 他未知或未開發(fā)的這樣的設備。在步驟302,預備可移動介質(zhì)。預備可移動介 質(zhì)指的是將所有必需的元素打包到可移動介質(zhì)上,使得當可移動介質(zhì)被插入計 算機時,應用程序在不必安裝到計算機上的情況下就可運行(如上所述)。在 某些實施例中,步驟302被構(gòu)想成僅被要求運行一次以創(chuàng)建可移動介質(zhì)的主控 副本,而不是每當可移動介質(zhì)被插入計算機時都要運行。或者,預備的某些部 分可在每當可移動介質(zhì)被插入計算機時執(zhí)行,即使可移動介質(zhì)之前曾被插入該 計算機。在又一實施例中,預備的某些部分可在每當可移動介質(zhì)首次插入計算 機(對該計算機而言)時執(zhí)行。
預備可能要求創(chuàng)建令應用程序不必安裝到計算機上就能運行所需的附加 元素。為了使現(xiàn)成軟件能夠在無需安裝且無需在計算機上留下應用程序相關聯(lián) 狀態(tài)的情況下運行,安裝軟件可為初始化目的而運行一次,且由安裝軟件設置 的值可被保存到可移動介質(zhì)上。例如,現(xiàn)今所知的容納需要安裝到計算機上才 能運行的應用程序的可移動介質(zhì)一般包括執(zhí)行應用程序所需的程序文件、將應 用程序安裝到計算機上的程序文件、數(shù)據(jù)文件、鏈接、快捷方式等。作為對比, 根據(jù)本發(fā)明的實施例,安裝軟件運行一次,以便獲取必需的設置和值。這些值 被保存到可移動介質(zhì)上。安裝軟件本身可以不在該可移動介質(zhì)上。此外,可在 可移動介質(zhì)上提供要在應用程序首次從可移動介質(zhì)運行時或每當可移動介質(zhì) 被插入計算機時運行的代碼。此代碼可執(zhí)行由當今的安裝軟件執(zhí)行的對變量和.
16值的初始化。此代碼也允許應用程序適應它在其上運行的計算機的硬件和軟件 特性。此外,可移動介質(zhì)也可預備有清單。清單可描述注冊表的子集(即,注 冊表中該應用程序所使用或與該應用程序相關聯(lián)的部分)以及文件系統(tǒng)的子集 (即,文件系統(tǒng)中該應用程序所使用或與該應用程序相關聯(lián)的部分)。清單可 描述要給予在筒倉中運行的進程的訪問屬性。
在本發(fā)明的某些實施例中, 一旦創(chuàng)建了"主控"可移動介質(zhì),該主控僅需被 復制以生成經(jīng)預備的可移動介質(zhì)的更多副本。因此,與預備相關聯(lián)的處理,或 者與預備相關聯(lián)的處理的各部分,不需被重復。
在304,經(jīng)預備的可移動介質(zhì)被插入計算機,諸如以上參考圖l描述的那 一臺。在將經(jīng)預備的可移動介質(zhì)插入到要在其上運行應用程序的計算機之際, 向用戶給予在沙箱內(nèi)運行的選項。在選擇了該選項之際,創(chuàng)建其中應用程序?qū)?在無需安裝到機器上的情況下運行的環(huán)境。該環(huán)境創(chuàng)建幻像,使得對應用程序 而言看起來就像是該應用程序已被安裝到機器上一般。即,所安裝的應用程序 預期看到的所有文件、注冊表項、變量值等皆向未被安裝的應用程序曝露,使 得對該應用程序而言看起來就像是該應用程序己被安裝到機器上一般。在本發(fā) 明的某些實施例中,該幻像是通過創(chuàng)建將機器的狀態(tài)與當安裝程序在預備步驟 (這在未被安裝的應用程序首次從可移動介質(zhì)運行時發(fā)生)期間運行時應用程 序所寫的所有狀態(tài)或與未被安裝的應用程序在其上一次運行時所創(chuàng)建的狀態(tài)
合并的筒倉而創(chuàng)建的。(如下更全面所述,在應用程序運行時(即,在隨后的 運行期間)所創(chuàng)建的所有狀態(tài)被存回可移動介質(zhì)上或存儲在計算機文件系統(tǒng)的 指定區(qū)域中。)向應用程序筒倉曝露的文件系統(tǒng)是包括計算機文件系統(tǒng)中的條 目以及可移動介質(zhì)上的文件兩者的合并視圖。向應用程序筒倉曝露的注冊表是 包括計算機注冊表中的項以及可移動介質(zhì)上的注冊表值兩者的視圖。因此,應 用程序筒倉擔當對應用程序如具有其自己的操作系統(tǒng)的完整計算機系統(tǒng)一般 起作用的隔離執(zhí)行環(huán)境,但不包括其自己的操作系統(tǒng)副本。(例如,如果應用
程序是能夠在其上安裝有WINDOWS操作系統(tǒng)的機器上運行的應用程序,則 該應用程序筒倉如它是常規(guī)WINDOWS系統(tǒng)一般對該應用程序起作用,但不 具有其自己的WINDOWS OS映象。)
在沙箱的創(chuàng)建期間,用戶可具有指定沙箱的隔離屬性的選項?;蛘?,沙箱的隔離屬性可由包括在清單中或包括在可移動介質(zhì)上所包含的獨立的沙箱定 義文件中的沙箱定義來決定。構(gòu)想的隔離屬性包括以下
所有系統(tǒng)文件是只讀的
某些系統(tǒng)文件是可寫的
如果某些系統(tǒng)文件是可寫的,則這些系統(tǒng)可寫文件或目錄的名字
注冊表項是只讀的
指定注冊表項是可寫的
由非安裝應用程序創(chuàng)建或修改的文件在應用程序退出之際刪餘。 由非安裝應用程序創(chuàng)建或修改的文件被保存到可移動介質(zhì) 應用程序向文件系統(tǒng)寫的部分被重定向(例如,當可移動介質(zhì)為只讀時) 用戶數(shù)據(jù)中可隱藏或僅用只讀訪問曝露或讀寫曝露的部分(例如,可阻
止用于游戲的筒倉查看用戶私有數(shù)據(jù),或用于稅務軟件的筒倉可被允許對用戶
財務數(shù)據(jù)文件進行寫)。
沙箱的定義由筒倉使用以創(chuàng)建向運行在筒倉中的應用程序曝露的虛擬的合并 文件系統(tǒng)和注冊表視圖。
在308,在本發(fā)明的某些實施例中,呈現(xiàn)提供以下選項中的一個或更多個 的菜單準備在沙箱中運行尚未安裝到計算機上的應用程序、在沙箱內(nèi)執(zhí)行尚 未安裝到計算機上的應用程序、或在可移動介質(zhì)上運行已被安裝到計算機上的 應用程序。當可移動介質(zhì)上的新應用程序首次要在沙箱中運行時選擇第一選 項。對應用程序的隨后運行選擇可第二選項。最后一個選項允許用戶以常規(guī)(已 知)方式運行之前已被安裝到機器上的應用程序,但使狀態(tài)、文件、注冊表值 等能被寫回可移動介質(zhì)而非寫到系統(tǒng)狀態(tài)、系統(tǒng)文件等。在應用程序在沙箱中 執(zhí)行期間,狀態(tài)、文件、注冊表項等被更新到可移動介質(zhì)上。在310,當執(zhí)行 完成后,刪除沙箱。沙箱的刪除將刪除筒倉以及由應用程序的執(zhí)行所創(chuàng)建的任 何狀態(tài)。在312,移除可移動介質(zhì)。
此處所述的各種技術可結(jié)合硬件或軟件,或在適當時以兩者的組合來實 現(xiàn)。由此,本發(fā)明的方法和裝置或其特定方面或部分可釆取包含在諸如軟盤、
CD-ROM、硬盤驅(qū)動器或任何其它機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼 (即,指令)的形式,其中當程序代碼被加載到諸如計算機等機器內(nèi)并由其執(zhí)
18行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。在程序代碼在可編程計算機上執(zhí)行 的情況下,計算設備通常將包括處理器、該處理器可讀的存儲介質(zhì)(包括易失 性和非易失性的存儲器和/或存儲元件)、至少一個輸入設備、以及至少一個輸 出設備。可例如通過使用數(shù)據(jù)處理API等來利用本發(fā)明的域?qū)S镁幊棠P偷膭?chuàng) 建和/或?qū)崿F(xiàn)的各方面的一個或更多個程序較佳地用高級過程語言或面向?qū)ο?的編程語言來實現(xiàn)以與計算機系統(tǒng)通信。然而,如果需要,程序可以用匯編語 言或機器語言來實現(xiàn)。在任何情形中,語言可以是編譯的或解釋的語言,且與 硬件實現(xiàn)相結(jié)合。
盡管結(jié)合各附圖的優(yōu)選實施例描述了本發(fā)明,但是可以理解,可以使用其 它類似的實施例,或可以對所述實施例進行修改或添加來執(zhí)行本發(fā)明的相同功 能而不背離本發(fā)明。因此,本發(fā)明不應限于任何單個實施例,而是應該根據(jù)所 附權利要求書的廣度和范圍來解釋。
權利要求
1. 一種用于在計算機上從可移動介質(zhì)運行應用程序的系統(tǒng),包括響應于連接上其上存儲著構(gòu)成可移動介質(zhì)文件系統(tǒng)的多個文件(212x)和注冊表(212d)的可移動介質(zhì)(212)創(chuàng)建筒倉(216)的操作系統(tǒng)(214),其中所述筒倉(216)向運行在所述筒倉中的應用程序(222)呈現(xiàn)系統(tǒng)文件目錄(202)和所述可移動介質(zhì)文件系統(tǒng)(212x)的合并視圖。
2. 如權利要求1所述的系統(tǒng),其特征在于,所述筒倉共享所述計算機的操 作系統(tǒng)。
3. 如權利要求1所述的系統(tǒng),其特征在于,所述筒倉向運行在所述筒倉中 的應用程序呈現(xiàn)系統(tǒng)注冊表和所述可移動介質(zhì)注冊表的合并視圖。
4. 如權利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)文件系統(tǒng)或注冊表對 于運行在所述筒倉中的所述應用程序是只讀訪問的。
5. 如權利要求1所述的系統(tǒng),其特征在于,所述可移動介質(zhì)文件系統(tǒng)或注 冊表對于運行在所述筒倉中的所述應用程序是讀寫訪問的。
6. 如權利要求1所述的系統(tǒng),其特征在于,在所述應用程序在所述筒倉中 執(zhí)行期間應用程序相關狀態(tài)上的改變被留持到所述可移動介質(zhì)。
7. —種用于在計算機上從可移動介質(zhì)運行應用程序而無需將所述應用程 序安裝在所述計算機上的方法,包括響應于所述可移動介質(zhì)插入所述計算機(304)在所述計算機上創(chuàng)建筒 倉(306),其中所述筒倉向運行在所述筒倉中的未被修改的現(xiàn)成應用程序呈 現(xiàn)系統(tǒng)文件目錄和可移動介質(zhì)文件系統(tǒng)目錄的合并視圖(306);以及從所述可移動介質(zhì)執(zhí)行所述未被修改的現(xiàn)成應用程序而無需將所述未 被修改的現(xiàn)成應用程序復制到所述計算機上,其中所述未被修改的現(xiàn)成應用程 序在所述筒倉內(nèi)執(zhí)行(308)。
8. 如權利要求7所述的方法,其特征在于,所述系統(tǒng)文件目錄中的部分可 被指定為對于在所述筒倉中運行的應用程序是可讀寫的。
9. 如權利要求7所述的方法,其特征在于,所述筒倉向運行在所述筒倉中 的未被修改的現(xiàn)成應用程序呈現(xiàn)系統(tǒng)注冊表和可移動介質(zhì)注冊表的合并視圖。
10. 如權利要求7所述的方法,其特征在于,在所述應用程序在所述筒倉中執(zhí)行期間應用程序相關狀態(tài)上的改變被留持到所述可移動介質(zhì)。
11. 如權利要求7所述的方法,其特征在于,程序設置上的改變被留持 到所述可移動介質(zhì)中所述注冊表的指定區(qū)域。
12. 如權利要求7所述的方法,其特征在于,所述未被修改的現(xiàn)成應用程序與注冊表和文件系統(tǒng)目錄的子集以及初始代碼一起打包到所述可移動介 質(zhì)上,其中所述初始代碼執(zhí)行原本在所述現(xiàn)成應用程序安裝到計算機上期間執(zhí)行的初始化動作。
13. 如權利要求7所述-的方4去,-其特征在于,-f斤述f^倉在所述應用程序 終止時被刪除。
14. 如權利要求7所述的方法,其特征在于,所述應用程序可用的對所 述系統(tǒng)文件目錄的訪問程度是用戶可指定的。
15. —種其上存儲有程序代碼的可移動計算機可讀介質(zhì),所述代碼當由計算環(huán)境執(zhí)行時,使所述計算環(huán)境創(chuàng)建包括筒倉的隔離執(zhí)行環(huán)境(306),其中所述筒倉向在所述筒倉中 執(zhí)行的未被修改的現(xiàn)成應用程序呈現(xiàn)系統(tǒng)文件目錄和所述計算機可讀介質(zhì)上 的文件目錄的合并視圖(306),其中所述計算機可讀介質(zhì)上的文件目錄包括 構(gòu)成所述在筒倉中執(zhí)行的未被修改的現(xiàn)成應用程序的程序文件以及與在所述 筒倉中執(zhí)行的所述應用程序相關聯(lián)的數(shù)據(jù)文件;響應于用戶輸入,在所述筒倉中執(zhí)行所述應用程序(308),其中所述 應用程序?qū)τ谒鱿到y(tǒng)文件目錄具有只讀訪問權,并且對于所述計算機可讀介 質(zhì)上的所述文件目錄具有讀寫訪問權。
16. 如權利要求15所述的計算機可讀介質(zhì),其特征在于,其上還存儲 有當由所述計算環(huán)境執(zhí)行時使所述計算環(huán)境執(zhí)行以下步驟的程序代碼向在所述筒倉中執(zhí)行的所述未被修改的現(xiàn)成應用程序呈現(xiàn)系統(tǒng)注冊表 和所述計算機可讀介質(zhì)上的注冊表的合并視圖。
17. 如權利要求16所述的計算機可讀介質(zhì),其特征在于,其上還存儲 有當由所述計算環(huán)境執(zhí)行時使所述計算環(huán)境執(zhí)行以下步驟的程序代碼將所述應用程序在所述筒倉中執(zhí)行期間應用程序相關狀態(tài)上的改變留持到所述可移動介質(zhì)。
18. 如權利要求16所述的計算機可讀介質(zhì),其特征在于,其上還存儲 有當由計算環(huán)境執(zhí)行時使所述計算環(huán)境執(zhí)行以下步驟的程序代碼將用于所述筒倉中的所述應用程序的程序設置上的改變留持到所述可 移動介質(zhì)。
19. 如權利要求16所述的計算機可讀介質(zhì),其特征在于,其上還存儲 有當由所述計算環(huán)境執(zhí)行時使所述計算環(huán)境執(zhí)行以下步驟的程序代碼當所述應用程序終止時刪除所述筒倉。
20. 如權禾f要求-16所述的計算機可讀介質(zhì),其特征在于,其上還存儲 有當由所述計算環(huán)境執(zhí)行時使所述計算環(huán)境執(zhí)行以下步驟的程序代碼在所述應用程序終止之際,丟棄應用程序相關狀態(tài)以及對系統(tǒng)配置和設 置的應用程序相關改變。
全文摘要
現(xiàn)成軟件可從可移動介質(zhì)運行而無需將該軟件安裝到機器上且無需修改該現(xiàn)成軟件。在未被安裝到計算機上的應用程序的執(zhí)行期間創(chuàng)建或修改的文件和應用程序相關聯(lián)狀態(tài)可被保存到可移動介質(zhì)或保存到系統(tǒng)文件系統(tǒng)和系統(tǒng)注冊表(如果存在)的指定區(qū)域。
文檔編號G06F17/00GK101479721SQ200780024412
公開日2009年7月8日 申請日期2007年6月25日 優(yōu)先權日2006年6月30日
發(fā)明者M·泰魯利, Y·A·哈利迪 申請人:微軟公司