亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于運行多個環(huán)境的操作系統(tǒng)小型引導(dǎo)的制作方法

文檔序號:6569949閱讀:135來源:國知局
專利名稱:用于運行多個環(huán)境的操作系統(tǒng)小型引導(dǎo)的制作方法
用于運行多個環(huán)境的操作系統(tǒng)小型引導(dǎo)背景當使用單個計算機來運行多個工作負荷時,應(yīng)當在應(yīng)用程序的隔離和使用 并管理應(yīng)用程序隔離系統(tǒng)的成本之間達到平衡。應(yīng)用程序應(yīng)當理想地彼此隔 離,使得一個應(yīng)用程序的工作負荷不會干擾另一應(yīng)用程序的資源的操作或使 用。另一方面,該系統(tǒng)應(yīng)當是靈活且可管理的,以降低使用并管理系統(tǒng)的成本。 理想地,系統(tǒng)在維護應(yīng)用程序隔離時應(yīng)該能夠選擇性地共享資源。然而, 一般 地,在同一用戶帳戶下運行的所有進程具有相同的系統(tǒng)資源視圖。缺少運行在 特定計算機上的應(yīng)用程序的隔離造成了應(yīng)用程序脆弱性、應(yīng)用程序不兼容性、 安全問題和無法在同一機器上運行沖突的應(yīng)用程序。已經(jīng)提出了解決上述問題的一個或多個方面的多種不同的解決方案。隔離 運行在同一機器上的應(yīng)用程序的一種方式是在不同的"虛擬機"上運行應(yīng)用程序。虛擬機(VM)使得一操作系統(tǒng)(OS)的多個實例在單個機器上并發(fā)地運 行。VM是物理機器的邏輯實例,g卩,虛擬機向操作系統(tǒng)軟件提供了在硬件層 上的機器抽象艮卩,在中央處理單元(CPU)、控制器、存儲器等的層上。每 一邏輯實例具有帶有自己的安全上下文和自己的隔離硬件資源的自己的操作 系統(tǒng)實例,使得每一操作系統(tǒng)實例對用戶或觀察者看似是一獨立的機器。通常 實現(xiàn)VM以最大化硬件利用。VM在機器層但在虛擬機內(nèi)提供了隔離,己知的 VM實現(xiàn)沒有提供對隔離在同一 VM上運行的應(yīng)用程序的規(guī)定。對上述問題的各方面的其它已知的所提出的解決方案包括Sun Microsystem的Solaris Zones、用于UNIX BSD和Linux的囚禁程序(jail)、 用于Linux的VServers項目、SWSoft的Virtuozzo、來自Ensim和Sphera的 web主宿解決方案、以及可從PolicyMaker和Softricity獲得的軟件。解決應(yīng)用程序隔離的各方面的另一方法是硬件分區(qū)。多處理器機器被劃分 成子機器,每一子機器引導(dǎo)OS的一獨立副本。硬件分區(qū)通常僅提供受約束的 資源分配機制(例如,按CPU的分配),而不允許輸入/輸出(10)共享,并5且通常限于高端服務(wù)器。因此,在許多系統(tǒng)中,在操作系統(tǒng)進程層和操作系統(tǒng)本身的機器邊界處存 在系統(tǒng)中的有限約束點,但是在這些層之間使用與運行應(yīng)用程序的用戶的身份 相關(guān)聯(lián)的諸如訪問控制列表(ACL)和特權(quán)等安全控制來控制進程對資源的訪 問。有多個缺陷與該模型相關(guān)聯(lián)。由于對系統(tǒng)資源的訪問與運行應(yīng)用程序的用 戶的身份而非應(yīng)用程序本身相關(guān)聯(lián),因此應(yīng)用程序可能具有對比應(yīng)用程序所需 的更多的資源的訪問。由于多個應(yīng)用程序可修改相同的文件,因此可導(dǎo)致應(yīng)用 程序之間的不兼容性。還存在多個其它公知的問題。沒有己知的容易且穩(wěn)健的使用允許應(yīng)用程序被隔離同時仍允許對資源的 受控共享的已知機制的解決方案。如果存在一允許使用單個操作系統(tǒng)實例來隔離運行在單個機器上的應(yīng)用程序、進程、應(yīng)用程序組或進程組,同時允許對資 源的受控共享的機制則將是有幫助的。概述此處稱為筒倉(silo)的操作系統(tǒng)內(nèi)隔離/包容機制使用操作系統(tǒng)的單個實 例提供了對在單個計算機上運行的進程的分組和隔離。操作系統(tǒng)的單個實例通 過向在稱為服務(wù)器筒倉的隔離應(yīng)用程序環(huán)境內(nèi)執(zhí)行的進程提供系統(tǒng)名稱空間 的視圖來允許對資源的分區(qū)和受控共享。系統(tǒng)可包括多個筒倉(即, 一個基礎(chǔ) 結(jié)構(gòu)筒倉和一個或多個服務(wù)器筒倉),以及多個系統(tǒng)名稱空間。基礎(chǔ)結(jié)構(gòu)筒倉 是對其整個系統(tǒng)名稱空間可見的根或頂層筒倉。每一隔離應(yīng)用程序環(huán)境或服務(wù) 器筒倉可被提供其自己的系統(tǒng)名稱空間視圖,使得僅該系統(tǒng)名稱空間的一個子 集對該服務(wù)器筒倉可見。由此,可在一個服務(wù)器筒倉中安裝一組相關(guān)和/或非沖 突應(yīng)用程序,并在第二服務(wù)器筒倉中安裝另一組沖突應(yīng)用程序。由于每一服務(wù) 器筒倉"看見"系統(tǒng)名稱空間的一不同子集,且另外可具有其自己的一組筒倉 專用文件,因此本來彼此沖突的應(yīng)用程序可以同時在同一機器上運行而沒有沖 突。由此,可使用多個服務(wù)器筒倉來隔離或分隔不同的應(yīng)用程序集,從而使得 多個沖突的應(yīng)用程序能在同一計算機上運行而不經(jīng)歷通常因在同一計算機上 運行沖突應(yīng)用程序而產(chǎn)生的問題。應(yīng)用程序可被添加到服務(wù)器筒倉或從服務(wù)器 筒倉移除而不影響基礎(chǔ)結(jié)構(gòu)筒倉、其它服務(wù)器筒倉或在其它服務(wù)器筒倉中運行的應(yīng)用程序。服務(wù)器筒倉可運行現(xiàn)有應(yīng)用程序S卩,不必被修改以在服務(wù)器筒倉中運行 的應(yīng)用程序。安裝在服務(wù)器筒倉中的應(yīng)用程序無需被修改是因為服務(wù)器筒倉的 名稱空間被重命名或重映射,使得程序內(nèi)的引用無需改變。例如,對"\SILO\SIL01\WINDOWS"處的文件的引用可被映射或重命名到服務(wù)器筒倉 視圖中的"\WINDOWS"。每一服務(wù)器筒倉可通過執(zhí)行服務(wù)器筒倉內(nèi)的用戶層 服務(wù)的單獨的"小型引導(dǎo)"來創(chuàng)建。服務(wù)計算機的單個OS映像采用名稱空間 包容(containment)機制來約束哪一 (些)服務(wù)器筒倉可使用哪一 (些)資源。 限制對資源的訪問因此直接關(guān)聯(lián)于或基于放置在該服務(wù)器筒倉中的進程或應(yīng) 用程序而非正運行該應(yīng)用程序的用戶,因為如果一進程或應(yīng)用程序無法解析用 于訪問一資源的名稱,則它將不能使用該資源。對計算機的管理可被分割。某 些管理性任務(wù)可被委托給能夠控制其自己的服務(wù)器筒倉但是不能影響運行在 同一系統(tǒng)上的其它服務(wù)器筒倉的服務(wù)器筒倉管理員。服務(wù)器筒倉允許特權(quán)較少 的管理員處理運行該管理員的應(yīng)用程序的服務(wù)器筒倉的例程管理,從而達到隔 離和靈活性之間的平衡。服務(wù)器筒倉允許同一應(yīng)用程序的多個實例在同一系統(tǒng) 上運行。帶有受控共享的名稱空間隔離可以通過為每一服務(wù)器筒倉創(chuàng)建全局或系 統(tǒng)名稱空間的筒倉專用視圖來實現(xiàn)。每一服務(wù)器筒倉可具有分層名稱空間、數(shù) 字空間、數(shù)字/名稱空間和網(wǎng)絡(luò)間隔的子集視圖。附圖簡述 在附圖中

圖1是示出其中可實現(xiàn)本發(fā)明的各方面的示例性計算環(huán)境的框圖;圖2是根據(jù)本發(fā)明的某些實施例的用于創(chuàng)建和維護單獨環(huán)境的系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明的某些實施例的用于創(chuàng)建和維護多個應(yīng)用程序環(huán)境的 進程的流程圖。詳細描述概觀有時候,能夠在同一計算機上運行多個應(yīng)用程序環(huán)境是有利的。例如,商 業(yè)企業(yè)可能具有各自運行一服務(wù)的多個服務(wù)器,企業(yè)可能希望將這些服務(wù)合并 到單個機器上使得沒有那么多機器要管理。例如,人力資源部門、采購部門和勞資部門各自可具有運行在一單獨機器上的電子郵件服務(wù)器,它們可能希望使 這些服務(wù)器運行在同一機器上。類似地,可能希望將多個單獨的服務(wù)器合并到 執(zhí)行所有這些單獨的服務(wù)器的功能的單個機器上(例如,將單獨的電子郵件服務(wù)器、web服務(wù)器、文件服務(wù)器和打印機服務(wù)器合并到執(zhí)行電子郵件、web、 文件和打印服務(wù)的單個服務(wù)器上)。商業(yè)企業(yè)可能具有用于主宿網(wǎng)站或用于提 供web服務(wù)的web服務(wù)器。在每一情況下,在一個環(huán)境中運行的應(yīng)用程序應(yīng) 當保持與其它應(yīng)用程序分開。換言之,投機的成功可取決于保持單獨的環(huán)境分 開。然而,通常這不是一項容易的任務(wù)。當兩個服務(wù)器應(yīng)用程序被置于同一機 器上時,經(jīng)常會引發(fā)名稱沖突、 一個應(yīng)用程序會蓋寫另一應(yīng)用程序的文件、會 出現(xiàn)版本問題等等。用于以上問題陳述的一種有效的解決方案可以滿足以下要求應(yīng)用程序應(yīng) 當被隔離;應(yīng)用程序應(yīng)當無需修改以便在應(yīng)用程序環(huán)境內(nèi)運行;單個內(nèi)核或操 作系統(tǒng)應(yīng)當在該系統(tǒng)上運行;以及管理性任務(wù)應(yīng)當被共享。應(yīng)用程序的隔離意 味著同一應(yīng)用程序的多個實例應(yīng)當能夠同時和/或在同一機器上運行;應(yīng)用程序 應(yīng)當能夠被添加到一個應(yīng)用程序環(huán)境或從一個應(yīng)用程序環(huán)境中移除而不影響 該系統(tǒng)上的任何其它環(huán)境;以及同一應(yīng)用程序的不同版本應(yīng)當能夠同時運行。 應(yīng)用程序應(yīng)當無需被修改以便在應(yīng)用程序環(huán)境中運行意味著應(yīng)用程序應(yīng)當能 夠使用相同的名稱和引用,而不管它們在何處運行(在隔離環(huán)境內(nèi)部還是外 部)。運行單個內(nèi)核或OS意味著操作的效率,因為僅OS的一個實例是必須 被維護的。例如所有硬件管理和驅(qū)動程序只需被設(shè)置一次。管理性任務(wù)應(yīng)當被 共享,使得用于應(yīng)用程序環(huán)境的例行管理性任務(wù)可被委托給應(yīng)用程序環(huán)境管理 員。應(yīng)用程序環(huán)境管理員應(yīng)當能夠僅影響其自己的環(huán)境。對以上問題的一種解決方案通過創(chuàng)建用于運行現(xiàn)有(未修改)應(yīng)用程序的 一個或多個沙箱化(sandboxed)筒倉提供了一種用于應(yīng)用程序隔離的機制,該 一個或多個筒倉是通過創(chuàng)建各自具有系統(tǒng)名稱空間的子集的視圖的多個服務(wù)器筒倉并將該筒倉名稱空間中的名稱重命名或重映射到已知名稱來創(chuàng)建的。為 創(chuàng)建一服務(wù)器筒倉,可在啟動了操作系統(tǒng)的內(nèi)核部分之后在該新服務(wù)器筒倉內(nèi) 執(zhí)行用戶級部分引導(dǎo)。以下提供了細節(jié)。示例性計算環(huán)境圖1及以下討論旨在提供其中可實現(xiàn)本發(fā)明的合適的計算環(huán)境的簡要概 括描述。然而,應(yīng)當理解,所有種類的手持式、便攜式和其它計算設(shè)備可被構(gòu) 想為結(jié)合本發(fā)明使用。盡管下文描述了通用計算機,然而這只是一個示例,本 發(fā)明只需具有網(wǎng)絡(luò)服務(wù)器互操作性和交互的瘦客戶機。由此,本發(fā)明可以在其 中蘊含了極少或最小客戶機資源的網(wǎng)絡(luò)化主存的服務(wù)的環(huán)境中實現(xiàn),如其中客 戶機設(shè)備僅擔(dān)當對萬維網(wǎng)的瀏覽器或接口的網(wǎng)絡(luò)化環(huán)境。盡管并非所需,但本發(fā)明可通過由開發(fā)者使用的應(yīng)用程序編程接口 (API)來實現(xiàn),和/或被包括在將在諸如程序模塊等由一個或多個諸如客戶機工作站、 服務(wù)器或其它設(shè)備等計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述的 網(wǎng)絡(luò)瀏覽軟件內(nèi)。 一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié) 構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。通常,程序模塊的 功能可如各實施例中所需的進行組合或分布。此外,本領(lǐng)域的技術(shù)人員將理解, 本發(fā)明可以用其它計算機系統(tǒng)配置來實施。其它適用于本發(fā)明的公知的計算系統(tǒng)、環(huán)境和/或配置包括但不限于,個人計算機(PC)、自動售貨機、服務(wù)器 計算機、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程 消費電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機、大型計算機等等。本發(fā)明還可以在其中任 務(wù)由通過通信網(wǎng)絡(luò)或其它數(shù)據(jù)傳輸介質(zhì)鏈接的遠程處理設(shè)備來執(zhí)行的分布式 計算環(huán)境中實施。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè) 備的本地和遠程計算機存儲介質(zhì)中。圖1因此示出了其中可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的一個示 例,盡管如從上文中清楚的,計算系統(tǒng)環(huán)境100僅為合適的計算環(huán)境的一個示 例,并非對本發(fā)明的使用范圍或功能提出任何局限。也不應(yīng)將計算環(huán)境100解 釋為對示例性操作環(huán)境100中示出的任一組件或其組合具有任何依賴或需求。參考圖1,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括計算機110形式的通用計算設(shè)備。計算機110的組件可包括但不限于,處理單元120、系統(tǒng)存儲器130以 及將包括系統(tǒng)存儲器130的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121 。 系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)的任一種,包括存儲器總線或存儲器控制 器、外圍總線以及使用各類總線體系結(jié)構(gòu)的任一種的局部總線。作為示例而非 局限,這類體系結(jié)構(gòu)包括工業(yè)標準體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu) (MCA)總線、增強型ISA (EISA)總線、視頻電子技術(shù)標準協(xié)會(VESA) 局部總線、以及外圍部件互連(PCI)總線(也稱為小背板(Mezzanine)總線)。計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計 算機110訪問的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動和不可移 動介質(zhì)。作為示例而非局限,計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)。 計算機存儲介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或 其它數(shù)據(jù)等信息的任一方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移 動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其 它存儲器技術(shù)、CDROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁 帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存所期望的信息并可由計算機 110訪問的任一其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制等已調(diào)制 數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任 一信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指以對信號中的信息進行編碼的方 式設(shè)置或改變其一個或多個特征的信號。作為示例而非局限,通信介質(zhì)包括有 線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其 它無線介質(zhì)。上述任一的組合也應(yīng)當包括在計算機可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì), 如只讀存儲器(ROM) 131和隨機存取存儲器(RAM) 132?;据斎?輸出系 統(tǒng)133 (BIOS)包括如在啟動時幫助在計算機110內(nèi)的元件之間傳輸信息的基 本例程,它通常儲存在ROM 131中。RAM 132通常包含處理單元120立即可 訪問和/或當前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖1示出 了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。計算機U0也可包括其它可移動/不可移動、易失性/非易失性計算機存儲 介質(zhì)。僅作示例,圖l示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)10動器141,對可移動、非易失性磁盤152進行讀寫的磁盤驅(qū)動器151,以及對 可移動、非易失性光盤156,如CDROM或其它光介質(zhì)進行讀寫的光盤驅(qū)動器 155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易失性 計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、 固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器141通常通過不可移動存儲器接口, 如接口 140連接到系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常通過 可移動存儲器接口,如接口 150連接到系統(tǒng)總線121。上文討論并在圖1示出的驅(qū)動器及其關(guān)聯(lián)的計算機存儲介質(zhì)為計算機110 提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖 1中,示出硬盤驅(qū)動器141儲存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊 146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其 它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對操作系統(tǒng)144、 應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標號來說明至少 它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤162和定位設(shè)備161 (通 常指鼠標、跟蹤球或觸摸墊)向計算機110輸入命令和信息。其它輸入設(shè)備(未 示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些 和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口 160連接至處理單元 120,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通 用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過接口,如視頻接口 190連接至系 統(tǒng)總線121。諸如北橋(Northbridge)等圖形接口 182也可連接到系統(tǒng)總線121。 北橋是與CPU或主處理單元120通信、并承擔(dān)了加速圖形端口 (AGP)通信 的任務(wù)的芯片組。 一個或多個圖形處理單元(GPU) 184可以與圖形接口 182 通信。在這一點上,GPU184—般包括諸如寄存器存儲等片上存儲器存儲,并 且GPU 184與視頻存儲器186通信。然而,GPU 184僅是些協(xié)處理器的一個示 例,因此,計算機110中可以包括各種協(xié)處理器。監(jiān)視器191或其它類型的顯 示設(shè)備也通過接口,如視頻接口 190連接至系統(tǒng)總線121,視頻接口進而與視 頻存儲器186通信。除監(jiān)視器191之外,計算機也可包括其它外圍輸出設(shè)備, 如揚聲器197和打印機196,它們通過輸出外圍接口 195連接。計算機110可以使用到一個或多個遠程計算機,如遠程計算機180的邏輯 連接在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算機180可以是個人計算機、服務(wù)器、路由 器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,并通常包括許多或所有相對 于計算機110所描述的元件,盡管在圖1中僅示出了存儲器存儲設(shè)備181。圖 1描述的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但也可包 括其它網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及 因特網(wǎng)。當在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機IIO通過網(wǎng)絡(luò)接口或適配器170連 接至LAN171。當在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機IIO通常包括調(diào)制解調(diào) 器172或用于通過WAN173,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器172 可以是內(nèi)置或外置的,它通過用戶輸入接口 160或其它適當?shù)臋C制連接至系統(tǒng) 總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機110所描述的程序模塊或其部分可 儲存在遠程存儲器存儲設(shè)備中。作為示例而非局限,圖1示出遠程應(yīng)用程序185 駐留在存儲器設(shè)備181上。可以理解,示出的網(wǎng)絡(luò)連接是示例性的,也可以使 用在計算機之間建立通信鏈路的其它手段。本領(lǐng)域的普通技術(shù)人員可以理解,計算機IIO或其它客戶機設(shè)備可作為計 算機網(wǎng)絡(luò)的一部分來部署。在這一點上,本發(fā)明涉及具有任意數(shù)量的存儲器或 存儲單元以及跨任意數(shù)量的存儲單元或巻發(fā)生的任意數(shù)量的應(yīng)用程序和進程的任何計算機系統(tǒng)。本發(fā)明可應(yīng)用于具有部署在網(wǎng)絡(luò)環(huán)境中的、具有遠程或本 地存儲的服務(wù)器計算機和客戶計算機的環(huán)境。本發(fā)明還可應(yīng)用于具有編程語言 功能、解釋和執(zhí)行能力的單獨計算設(shè)備。使用OS的小型引導(dǎo)來創(chuàng)建并維護多個應(yīng)用程序環(huán)境在本發(fā)明的某些實施例中,多個應(yīng)用程序環(huán)境可以通過創(chuàng)建各自具有系統(tǒng) 名稱空間的子集的視圖的多個服務(wù)器筒倉,并執(zhí)行在每一服務(wù)器筒倉內(nèi)執(zhí)行至 少某一用戶級系統(tǒng)服務(wù)的小型引導(dǎo)(mini-boot)或部分附加引導(dǎo)或重新引導(dǎo)來 創(chuàng)建和維護。小型引導(dǎo)是系統(tǒng)引導(dǎo)進程的子集的附加或第二引導(dǎo)。該小型引導(dǎo) 在服務(wù)器筒倉內(nèi)發(fā)生。艮P,如果常規(guī)的系統(tǒng)引導(dǎo)運行進程A-H,則小型引導(dǎo)可 重新運行進程A-H的某一子集。在本發(fā)明的某些實施例中,小型引導(dǎo)還運行系統(tǒng)引導(dǎo)中沒有的附加進程。在本發(fā)明的某些實施例中,小型引導(dǎo)的所有進程都 是用戶模式進程。在本發(fā)明的某些實施例中,小型引導(dǎo)在系統(tǒng)引導(dǎo)之后立即發(fā) 生,并且對用戶看似為常規(guī)引導(dǎo)進程的一部分。在小型引導(dǎo)之前,服務(wù)器筒倉 可以用允許私有或筒倉專用名稱空間的全部或某些部分來預(yù)填充,這些部分允 許對某些資源的受控共享,同時限制了服務(wù)器筒倉對其它資源的訪問,由此便 于資源管理。對環(huán)境的管理可以在系統(tǒng)管理員以及一個或多個服務(wù)器筒倉管理 員之間共享。圖2是示出根據(jù)本發(fā)明的某些實施例的用于創(chuàng)建和維護單獨環(huán)境的系統(tǒng)的框圖。系統(tǒng)200可駐留在諸如參考圖l描述的計算機上。系統(tǒng)200可包括一 個或多個分區(qū)(未示出)??稍谟脩艏壧峁?qū)動器字母抽象,以將一個分區(qū)與 另一個分區(qū)區(qū)分。例如,路徑C:VWINDOWSV^以表示由字母C表示的分區(qū)上 的目錄WINDOWS。每一驅(qū)動器字母或分區(qū)可以與分層數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)。每一 分層結(jié)構(gòu)具有表示該分層結(jié)構(gòu)中的第一個或最頂部節(jié)點的根。它是分層結(jié)構(gòu)中 的所有節(jié)點所起源的起始點。由于每一驅(qū)動器可以被劃分成多個分區(qū),因此多 個根可以與單個設(shè)備相關(guān)聯(lián)。(例如,用戶的物理硬盤可以被劃分成多個邏輯 "盤",其每一個都具有其自己的"驅(qū)動器字母"及其自己的根)。在本發(fā)明 的某些實施例中,操作系統(tǒng)映像的單個實例服務(wù)計算機的所有分區(qū)。在每一分區(qū)內(nèi),系統(tǒng)200可以包括一個或多個隔離應(yīng)用程序環(huán)境。在本發(fā) 明的某些實施例中,隔離應(yīng)用程序環(huán)境是服務(wù)器筒倉(例如,服務(wù)器筒倉204、 服務(wù)器筒倉206和服務(wù)器筒倉208)。基礎(chǔ)結(jié)構(gòu)筒倉202表示根或頂層筒倉。 盡管圖2示出了一個基礎(chǔ)結(jié)構(gòu)筒倉和三個服務(wù)器筒倉,但是可以理解,所構(gòu)想 的本發(fā)明并不限于此??蓜?chuàng)建任意數(shù)量的服務(wù)器筒倉(從沒有到任何適當?shù)臄?shù) 量)?;A(chǔ)結(jié)構(gòu)筒倉202可以與一個或多個系統(tǒng)或全局名稱空間相關(guān)聯(lián),該名 稱空間在圖2中由系統(tǒng)名稱空間210來表示。可存在各種類型的系統(tǒng)名稱空間, 包括分層名稱空間、數(shù)字空間、數(shù)字/名稱空間以及網(wǎng)絡(luò)間隔。每一服務(wù)器筒倉 可以具有這些系統(tǒng)名稱空間的子集視圖。分層名稱空間可以包括但不限于以下的一個或多個注冊表名稱空間、系 統(tǒng)對象或?qū)ο蠊芾砥髅Q空間以及文件系統(tǒng)名稱空間。數(shù)字空間名稱空間可包 括跨系統(tǒng)唯一的標識符和公知常量,并且可包括會話標識符名稱空間和進程標識符名稱空間。數(shù)字/名稱空間可包括所有筒倉使用的唯一標識符,包括IP地址、端口、 LUID (登錄用戶標識)和GUID (全局唯一標識符)。網(wǎng)絡(luò)間隔是 另一種類型的名稱空間。網(wǎng)絡(luò)間隔可由操作系統(tǒng)用于將網(wǎng)絡(luò)業(yè)務(wù)定向到適當?shù)?筒倉。服務(wù)器筒倉可以具有通過多路驅(qū)動程序(mux driver)的虛擬NIC (網(wǎng) 絡(luò)接口卡)接口 ,該多路驅(qū)動程序通過一組物理NIC來多路復(fù)用多個虛擬NIC。系統(tǒng)200還可包括操作系統(tǒng)280。操作系統(tǒng)280可包括一個或多個操作系 統(tǒng)組件,包括但不限于操作系統(tǒng)內(nèi)核和對象管理器。在本發(fā)明的某些實施例中, 對象管理器是操作系統(tǒng)內(nèi)核的一個組件。在本發(fā)明的某些實施例中,操作系統(tǒng) 的某些部分在內(nèi)核模式280a中操作,而其它部分在用戶模式280b中操作。模 式是服務(wù)、功能和組件的邏輯和系統(tǒng)分隔。每一模式具有其單獨使用來提供功 能并執(zhí)行委托給它的任務(wù)的特定的能力和代碼組件。內(nèi)核模式也被稱為特許處 理器模式(PPM)。內(nèi)核連同其支持結(jié)構(gòu)、硬件接口驅(qū)動程序和資源服務(wù)一起 駐留在內(nèi)核模式進程空間中。應(yīng)用程序和用戶在稱為用戶模式的與硬件隔離的 進程空間內(nèi)操作。用戶模式組件通過向內(nèi)核模式請求對系統(tǒng)資源的訪問來訪問 系統(tǒng)資源和硬件。例如,用戶模式進程可向內(nèi)核模式請求對諸如磁盤驅(qū)動器等 硬件資源的訪問。內(nèi)核模式內(nèi)的元件代表用戶模式進程執(zhí)行請求并返回結(jié)果。引導(dǎo)是將操作系統(tǒng)加載到計算機上的進程。引導(dǎo)通常在計算機開機時自動 發(fā)生。某些系統(tǒng)中的常規(guī)的系統(tǒng)引導(dǎo)包括加載內(nèi)核模式和用戶模式進程兩者。 在本發(fā)明的某些實施例中,用于服務(wù)器筒倉的附加引導(dǎo)進程包括重復(fù)系統(tǒng)引導(dǎo) 中用于特定服務(wù)器筒倉的部分或執(zhí)行服務(wù)器筒倉專用任務(wù)的其它步驟?;A(chǔ)結(jié)構(gòu)筒倉202的管理員可以創(chuàng)建一個或多個服務(wù)器筒倉。在本發(fā)明的 某些實施例中,基礎(chǔ)結(jié)構(gòu)筒倉管理員通過指定要構(gòu)造的一個或多個筒倉專用名 稱空間、通過指定要向服務(wù)器筒倉展示哪些設(shè)備、并通過指定筒倉專用名稱空 間的特性來定義服務(wù)器筒倉。在本發(fā)明的某些實施例中,內(nèi)核280a維護應(yīng)用 程序環(huán)境隔離以及用于服務(wù)器筒倉的系統(tǒng)名稱空間的受約束視圖。內(nèi)核是知曉 筒倉的,這意味著,例如,內(nèi)核能夠?qū)碜砸粋€服務(wù)器筒倉的請求或響應(yīng)與系 統(tǒng)請求/響應(yīng)區(qū)分開來,并且能夠標識哪一服務(wù)器筒倉發(fā)出了該請求/響應(yīng),以 及能夠標識與作出請求/響應(yīng)的服務(wù)器筒倉相關(guān)聯(lián)的筒倉專用名稱空間。在本發(fā) 明的某些實施例中,只需對標準內(nèi)核的有限改變來使得內(nèi)核知曉筒倉,因為對服務(wù)器筒倉名稱空間的訪問是作為其中將上下文范圍自動定為筒倉專用名 稱空間的用戶進程來執(zhí)行的;不知曉筒倉的設(shè)備不被展示給筒倉;應(yīng)用程序經(jīng) 由協(xié)議或更高層接口來訪問設(shè)備;相對打開的范圍經(jīng)由名稱空間控制被定為筒 倉上下文;當推遲工作時(例如,當?shù)却硪痪€程回來時)使用臨時將一線程 切換到筒倉線程的機制;提供了知曉間隔的網(wǎng)絡(luò)機制,并且因為提供了用于每 一筒倉的機制和每一筒倉的每一驅(qū)動程序的狀態(tài)。對內(nèi)核組件增加筒倉知曉在 該組件是名稱空間提供者、該組件以1:1的方式與用戶模式服務(wù)交互、該組件 將對名稱空間條目的訪問推遲到工作者線程、該組件附加到一系統(tǒng)進程、 一組 件基于是本地(服務(wù)器筒倉)系統(tǒng)管理員來執(zhí)行許可檢査;或當一組件執(zhí)行隱 錯檢査時可能是需要的。系統(tǒng)200還可包括此處未示出但本領(lǐng)域公知的其它組 件。系統(tǒng)200可以包括每一分區(qū)中的或與每一驅(qū)動器字母相關(guān)聯(lián)的一個或多 個并排服務(wù)器筒倉204、 206、 208等。每一服務(wù)器筒倉可以與其自己的全局名 稱空間視圖相關(guān)聯(lián),包括但不限于以上列出的那些。然而,每一服務(wù)器筒倉與 系統(tǒng)上的所有筒倉共享單個操作系統(tǒng)實例。例如,在圖2中,基礎(chǔ)結(jié)構(gòu)筒倉202 和服務(wù)器筒倉204、 206和208可以各自與其自己的視圖相關(guān)聯(lián)(基礎(chǔ)結(jié)構(gòu)筒 倉202 "看見"整個系統(tǒng)名稱空間而非一視圖),但是都由同一內(nèi)核操作系統(tǒng) 實例(內(nèi)核280a)來服務(wù)。每一服務(wù)器筒倉可包括一個或多個會話。例如,服 務(wù)器筒倉204包括兩個會話,即會話204a和204b,服務(wù)器筒倉206包括兩個 會話,即會話206a和206b,而服務(wù)器筒倉208包括兩個會話,即會話208a和 208b。然而,可以理解,服務(wù)器筒倉不限于兩個會話。可以發(fā)起任意數(shù)量的會 話,并且會話可以在一服務(wù)器筒倉內(nèi)并發(fā)地運行。在某些實施例中, 一個會話 (例如,204a)運行系統(tǒng)服務(wù)和應(yīng)用程序,而另一 (些)會話(例如,204b 等)為交互式遠程終端服務(wù)器操作或其它操作保留。服務(wù)器筒倉可以至少部分地由服務(wù)器筒倉管理員來管理。例如,服務(wù)器筒 倉管理員能夠配置在其筒倉中運行的應(yīng)用程序,并配置網(wǎng)絡(luò)設(shè)置、設(shè)置防火墻 規(guī)則、指定被允許來訪問服務(wù)器筒倉的用戶等等。服務(wù)器筒倉管理員不能影響 除其自己的之外的任何筒倉。此外,至少某些系統(tǒng)管理任務(wù)不能由服務(wù)器筒倉 管理員來執(zhí)行。在本發(fā)明的某些實施例中,服務(wù)器筒倉最初可僅由基礎(chǔ)結(jié)構(gòu)或15頂層筒倉的管理員來創(chuàng)建。圖3是根據(jù)本發(fā)明的某些實施例的用于創(chuàng)建多個應(yīng)用程序環(huán)境的進程的流程圖。步驟302-312在基礎(chǔ)結(jié)構(gòu)或頂層筒倉中執(zhí)行。步驟314在服務(wù)器筒倉 中執(zhí)行。在302處,引導(dǎo)基本系統(tǒng)(基礎(chǔ)結(jié)構(gòu)筒倉),從而創(chuàng)建所有的系統(tǒng)名 稱空間。如果一服務(wù)器筒倉正被首次創(chuàng)建(304),則處理在306處繼續(xù)。如 果該服務(wù)器筒倉已經(jīng)被首次創(chuàng)建,則處理在310處繼續(xù)。在306處,可創(chuàng)建系 統(tǒng)名稱空間的筒倉專用版本,諸如但不限于文件系統(tǒng)和注冊表。筒倉專用名稱 空間使得服務(wù)器筒倉能夠具有其自己的軟件副本。例如,服務(wù)器筒倉可具有在 筒倉名稱空間中的C:\WINDOWS處的WINDOWS的私有或筒倉專用副本。該 目錄可以在CASILOS、SILCK筒倉名〉VWINDOWS、中創(chuàng)建,并且可以或者通過 復(fù)制現(xiàn)有的C:\WINDOWS目錄(以下更完全描述),或者通過對該替換目錄 執(zhí)行正常安裝過程的變體來填充。在308處,可定制這些筒倉專用名稱空間中 的持久狀態(tài)(可任選),并且這可涉及修改用于服務(wù)器筒倉的文件和注冊表狀 態(tài)。允許配置為筒倉專用的在系統(tǒng)管理員不必執(zhí)行所有維護的意義上提供了管 理的增加的靈活性和簡化。(服務(wù)器筒倉管理員可執(zhí)行至少某些服務(wù)器筒倉維 護。)用于內(nèi)核組件的筒倉專用配置參數(shù)可增加靈活性,但是以增加的管理開 銷為代價。用于服務(wù)器筒倉的可能的定制的示例包括某些系統(tǒng)服務(wù)可通過編 輯注冊表鍵,和/或可添加諸如DLL等自定義目錄或軟件,可修改日志文件, 可作出改變以定制設(shè)置、可改變用戶、口令、圖標等等來禁用。在310處,創(chuàng) 建服務(wù)器筒倉。在312處,填充筒倉名稱空間。在本發(fā)明的某些實施例中,筒 倉名稱空間是基于一清單來填充的?!熠?,筒倉創(chuàng)建實用程序可參考與該特定筒 倉相關(guān)聯(lián)的清單來創(chuàng)建筒倉。在這一步,可創(chuàng)建從筒倉專用名稱空間到系統(tǒng)名 稱空間的虛擬聯(lián)接。在314處,通過啟動第一用戶進程來引導(dǎo)服務(wù)器筒倉。在 本發(fā)明的某些實施例中,(例如,在WINDOWS中),第一用戶進程是SMSS。 每一服務(wù)器筒倉可在其中安裝了應(yīng)用程序的其自己的設(shè)置和/或版本。在本發(fā)明 的某些實施例中,部分筒倉專用引導(dǎo)中的進程是用戶模式進程。用戶級部分引 導(dǎo)可以將系統(tǒng)引導(dǎo)設(shè)置的某些值蓋寫為私有的、筒倉專用名稱空間中的筒倉專 用值。服務(wù)器筒倉的部分引導(dǎo)可繼續(xù)填充筒倉的私有名稱空間。在本發(fā)明的某 些實施例中,服務(wù)器筒倉的名稱空間至少部分地通過服務(wù)器筒倉的部分重新引導(dǎo)來填充。即,重復(fù)正常引導(dǎo)序列的特定部分以填充服務(wù)器筒倉的私有名稱空 間。然而,筒倉小型引導(dǎo)不會影響或更改系統(tǒng)名稱空間或系統(tǒng)上的其它筒倉的 名稱空間。為說明創(chuàng)建系統(tǒng)名稱空間的筒倉專用版本的可能的方式,呈現(xiàn)了以下非限 制示例。假設(shè)在正常系統(tǒng)安裝期間創(chuàng)建了以下目錄 C週NDO WS\S YSTEM32\CONFIGLOGSDRIVERS\USERSPRIGRAM FILES還假定服務(wù)器筒倉正被首次創(chuàng)建。可創(chuàng)建一服務(wù)器筒倉對象。然后,可創(chuàng) 建服務(wù)器筒倉私有名稱空間。當為服務(wù)器筒倉創(chuàng)建名稱空間時,可以有三個選 項中的一個或多個可用。服務(wù)器筒倉可以用全訪問(即,RW (讀寫)訪問) 來共享系統(tǒng)名稱空間;服務(wù)器筒倉可以用受限訪問(即,RO (只讀)訪問) 來共享系統(tǒng)名稱空間;或者可以向服務(wù)器筒倉提供名稱空間的私有版本。在本 發(fā)明的某些實施例中,服務(wù)器筒倉名稱空間的私有版本通過制作系統(tǒng)名稱空間 的副本來填充。隨后可對該副本作出修改。由此,或者通過創(chuàng)建空目錄,或者 通過制作一個或多個系統(tǒng)目錄的副本,可創(chuàng)建用于該筒倉的名稱空間,例如 CASILOS、SILCK筒倉名〉VWINDOWS、SYSTEM32XCONFIG LOGS DRIVERS 、SILOS、SILCK筒倉名MUSERS 其中對服務(wù)器筒倉制作WINDOWS目錄的副本以及USERS目錄的副本。 此時,可定制服務(wù)器筒倉映像,即,可編輯目錄,并且可改變、添加或移除該 目錄內(nèi)的特定值/文件/子目錄??梢瞥承C器專用項目以創(chuàng)建更一般的映像。 可交互式地引導(dǎo)或定制筒倉,或者定制可以通過對某些文件的直接修改而離線 發(fā)生??商畛渫矀}名稱空間。例如C :\WINDO WS—C ASILOS、SILO〈筒倉名>\ WINDOWS \USERS—CASILOS、SILCK筒倉名〉UJSERS在上文中,第一條語句將C:\WINDOWS目錄的內(nèi)容復(fù)制到筒倉專用目錄 名稱空間。第二條語句將C:\USERS目錄的內(nèi)容復(fù)制到筒倉專用目錄名稱空間。 在以上示例中,沒有復(fù)制目錄PROGRAM FILES 。在某些實施例中,可創(chuàng)建到 系統(tǒng)PROGRAM FILES的聯(lián)接或鏈接。在該情況下,筒倉將使用系統(tǒng) PROGRAM FILES,并且沒有任何筒倉專用的PROGRAM FILES?;蛘?,可將 系統(tǒng)PROGRAM FILES復(fù)制到筒倉名稱空間。例如\PROGRAM FILES—CASILOS、SILCK筒倉名〉WROGRAM FILES(RW)將C:\PROGRAM FILES目錄的內(nèi)容復(fù)制到筒倉專用目錄名稱空間。用于 服務(wù)器的PROGRAM FILES的訪問能力被指定為讀寫(RW),這意味著服務(wù) 器筒倉的PROGRAM FILES版本可被更改。但是,盡管服務(wù)器筒倉的管理員 能夠修改、添加或刪除來自服務(wù)器筒倉的PROGRAM FILES的副本的程序, 但是服務(wù)器筒倉管理員不能修改、添加或刪除來自系統(tǒng)PROGRAM FILES的 程序,因為服務(wù)器筒倉管理員只能影響其自己的服務(wù)器筒倉。用于筒倉的設(shè)備可以是系統(tǒng)設(shè)備的一個子集。例如,語句D:—\DEVICE\HARD DISK VOLUME 4給予服務(wù)器筒倉對硬盤巻4的訪問。系統(tǒng)上的其它硬盤將不可見,并且對 服務(wù)器筒倉不可訪問。設(shè)置符號鏈接、硬鏈接和別名以將服務(wù)器筒倉名稱空間 中的節(jié)點鏈接到系統(tǒng)名稱空間中的節(jié)點。到內(nèi)核對象的鏈接被設(shè)置在服務(wù)器筒 倉專用名稱空間,使得筒倉使用與系統(tǒng)的其余部分相同的內(nèi)核對象。當用戶登 錄到筒倉時,用戶將僅看見筒倉專用適配器等。在創(chuàng)建了服務(wù)器筒倉之后,在 本發(fā)明的某些實施例中,基礎(chǔ)結(jié)構(gòu)筒倉使用內(nèi)核API來創(chuàng)建該筒倉中的第一個 用戶進程,這在某些實施例中是稱為SMSS的進程。該第一個用戶進程進而啟 動該筒倉中的各進程和會話,這進一步填充了筒倉專用名稱空間。每一服務(wù)器 筒倉可以被提供一網(wǎng)絡(luò)接口,使得從外部觀點來看,該服務(wù)器筒倉看似為該網(wǎng) 絡(luò)上的機器??蓜?chuàng)建用于網(wǎng)絡(luò)適配器的間隔,并且添加用于網(wǎng)絡(luò)接口卡(NIC) 的網(wǎng)絡(luò)適配器??捎眠m配器參數(shù)來更新用該適配器和注冊表的筒倉對象管理器 名稱空間。還可發(fā)生對筒倉名稱空間的動態(tài)更新。如上所述,可在筒倉中創(chuàng)建多個不同類型的名稱空間,包括分層名稱空間、 數(shù)字空間、數(shù)字/名稱空間以及網(wǎng)絡(luò)間隔。對資源的訪問可以通過為筒倉中的進 程創(chuàng)建系統(tǒng)名稱空間的私有視圖來控制。在某些實施例中,該視圖是通過創(chuàng)建 一新的虛擬或筒倉根節(jié)點來創(chuàng)建的。另外的節(jié)點可直接或間接地連接到該新的 根節(jié)點。創(chuàng)建將葉節(jié)點連接到全局分層結(jié)構(gòu)中的節(jié)點的聯(lián)接。該全局或系統(tǒng)分 層結(jié)構(gòu)可以是僅儲存在易失性存儲上或也可儲存在非易失性存儲上的物理分 層結(jié)構(gòu)。對資源的訪問在某些實施例中也可通過創(chuàng)建其中所有子根節(jié)點都是到 物理目錄的聯(lián)接的系統(tǒng)分層結(jié)構(gòu)的視圖來限制。限制對資源的訪問的另一方法 是通過為該筒倉添加到系統(tǒng)分層結(jié)構(gòu)的分支來實現(xiàn)的。進程對筒倉中的節(jié)點的 訪問可以通過重寫用于該分支的訪問能力來限制??上蛲矀}分層結(jié)構(gòu)中的節(jié)點 應(yīng)用規(guī)則,該規(guī)則覆蓋了對源自筒倉的進程的節(jié)點的訪問能力。在一種類型的數(shù)字空間中,數(shù)字空間內(nèi)的標識符跨系統(tǒng)是唯一的,并且沒 有用作標識符的公知常量。進程標識符名稱空間是這種數(shù)字空間的一個示例。 進程標識符由內(nèi)核來分配。內(nèi)核不對第二進程重復(fù)使用進程標識符,因此每一 進程標識符是唯一的。因此,每一筒倉將具有不會與其它筒倉的進程標識符組 相交的一組進程標識符。沒有使用公知的進程標識符。對于這類數(shù)字空間,內(nèi) 核對象維護一數(shù)據(jù)結(jié)構(gòu),包括進程標識符、該進程所屬的筒倉、以及指向其中 儲存關(guān)于該進程的狀態(tài)的內(nèi)核進程對象的指針。當一筒倉向內(nèi)核請求進程列表 時,內(nèi)核將過濾進程標識符的全體,并且僅返回與請求的筒倉相關(guān)聯(lián)的進程標 識符。第二種類型的數(shù)字空間是其中有一個或多個唯一標識符的數(shù)字/名稱空間。 一個示例是LUID名稱空間。在LUID名稱空間內(nèi),有由每一筒倉創(chuàng)建的 特殊登錄標識符。例如,每次當一訪客或匿名用戶登錄到機器上時,可為該登 錄會話生成一唯一數(shù)字(十六進制)3e5。每一服務(wù)器筒倉將具有其自己的匿 名登錄會話,但是將對該會話使用相同的標識符(十六進制)3e5。另外,存 在由每一筒倉創(chuàng)建的特殊登錄標識符。例如,LUID (十六進制)3e5是一特殊 登錄標識符。每一筒倉將具有一 (十六進制)3e5登錄標識符。為將一個筒倉 的(十六進制)3e5與另一筒倉的(十六進制)3e5進行區(qū)分,將筒倉標識符 添加到由維護LUID的內(nèi)核組件維護的LUID表。服務(wù)器筒倉中的用戶進程仍19看見沒有筒倉標識符的LUID。這使得內(nèi)核組件能夠在公共數(shù)據(jù)結(jié)構(gòu)中跟蹤多 個LUID同時限制在服務(wù)器筒倉中運行的進程使用并訪問僅屬于該進程在其中 運行的服務(wù)器筒倉的LUID。這對于GUI也是如此。當一筒倉向內(nèi)核請求LUID 或GUID的列表時,內(nèi)核將過濾條目的全體并僅返回與請求筒倉相關(guān)聯(lián)的那些 條目。這種名稱空間的另一示例是當為筒倉的名稱空間創(chuàng)建單獨的設(shè)備對象的 時候。設(shè)備對象標識了它所屬的名稱空間。另一種名稱空間用于網(wǎng)絡(luò)間隔。每一筒倉接收一個或多個單獨的網(wǎng)絡(luò)適配 器以及在該適配器上定址的一組其自己的IP地址。每一間隔具有完整的IP端 口名稱空間。網(wǎng)絡(luò)間隔與內(nèi)核服務(wù)組合,使得網(wǎng)絡(luò)業(yè)務(wù)被定向到適當?shù)耐矀}。 間隔可以由一組網(wǎng)絡(luò)接口組成,其中一個網(wǎng)絡(luò)接口不能是多個間隔的一部分。 間隔可以提供單獨的路由表和端口池。在本發(fā)明的某些實施例中,間隔提供了 端口空間的范圍確定,使得因需要跨多個IP地址接收的應(yīng)用程序?qū)H與構(gòu)成 該間隔的該組網(wǎng)絡(luò)接口上的業(yè)務(wù)交互。會話在一個實施例中可以僅在任一給定 的時間點處。在設(shè)置了筒倉并且一個或多個進程正在該筒倉中運行之后,內(nèi)核可從筒倉 進程接收消息。如果已創(chuàng)建了多于一個服務(wù)器筒倉,則內(nèi)核可從若干個服務(wù)器 筒倉進程接收消息。內(nèi)核可告知一進程屬于哪一筒倉,因為內(nèi)核維護包括進程 的進程標識符(如上所述,由內(nèi)核分配)、該進程屬于哪一筒倉以及指向其中 儲存了該進程的狀態(tài)的進程對象的指針的表。類似地,內(nèi)核可告知一管理員是系統(tǒng)管理員還是僅僅是服務(wù)器筒倉管理 員。即使一服務(wù)器筒倉管理員具有最高級別的特權(quán)和權(quán)限,該服務(wù)器筒倉管理 員也不能影響除了其自己的筒倉之外的任何筒倉。在本發(fā)明的某些實施例中, 服務(wù)器筒倉管理員不能影響任何其它筒倉,因為其它筒倉的名稱空間對該筒倉 管理員不是可訪問的。此處所討論的各種技術(shù)可以結(jié)合硬件或軟件,或在適當時結(jié)合兩者的組合 來實現(xiàn)。由此,本發(fā)明的系統(tǒng)和方法或其某些方面或部分,可采用包含在諸如 軟盤、CD-ROM、硬盤或任何其它機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼 (即,指令)的形式,其中,當程序代碼被加載到諸如計算機等機器中并由其 執(zhí)行時,該機器變?yōu)橛糜趯嵤┍景l(fā)明的裝置。在可編程計算機上的程序代碼執(zhí)行的情況下,計算裝置一般包括處理器、處理器可讀的存儲介質(zhì)(包括易失性 和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備以及至少一個輸出設(shè)備。 可例如通過使用數(shù)據(jù)處理API等來利用本發(fā)明的域?qū)S镁幊棠P头矫娴膭?chuàng)建 和/或?qū)崿F(xiàn)的一個或多個程序較佳地用高級過程語言或面向?qū)ο蟮木幊陶Z言來 實現(xiàn),以與計算機系統(tǒng)通信。然而,如有需要,程序可以用匯編語言或機器語 言來實現(xiàn)。在任何情況下,語言可以是己編譯或已解釋語言,并與硬件實現(xiàn)相 組合。盡管本發(fā)明已經(jīng)結(jié)合了各附圖的較佳實施例來描述,但是可以理解,可以 使用其它類似的實施例,或者可以對所描述的實施例作出修改和添加以執(zhí)行本 發(fā)明的相同功能而不背離本發(fā)明。因此,本發(fā)明不應(yīng)限于任何單個實施例,而 是應(yīng)當在依照所附權(quán)利要求書的寬度和范圍內(nèi)解釋。
權(quán)利要求
1.一種用于在單個計算機上創(chuàng)建多個隔離應(yīng)用程序環(huán)境的系統(tǒng),包括操作系統(tǒng),所述操作系統(tǒng)通過在多個服務(wù)器筒倉(204、206、208等)的每一服務(wù)器筒倉內(nèi)執(zhí)行用戶級進程的附加部分引導(dǎo),來創(chuàng)建一頂層筒倉(202)以及包括所述服務(wù)器筒倉的多個隔離應(yīng)用程序環(huán)境。
2. 如權(quán)利要求l所述的系統(tǒng),其特征在于所述操作系統(tǒng)為每一服務(wù)器筒倉創(chuàng)建至少一個筒倉專用名稱空間,所述至 少一個筒倉專用名稱空間提供了限制對每一服務(wù)器筒倉可用的資源的視圖,所 述視圖包括系統(tǒng)名稱空間的一子集。
3. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述操作系統(tǒng)能夠?qū)⒃诘谝?服務(wù)器筒倉中運行的進程與在第二服務(wù)器筒倉中運行的進程進行區(qū)分。
4. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述操作系統(tǒng)基于一清單來 創(chuàng)建所述服務(wù)器筒倉。
5. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述操作系統(tǒng)將由一服務(wù)器 筒倉管理員執(zhí)行的操作限于由所述服務(wù)器筒倉管理員所擁有的服務(wù)器筒倉。
6. 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述至少一個服務(wù)器筒倉專 用名稱空間是分層名稱空間;數(shù)字空間,所述數(shù)字空間包括跨所述計算機唯一 的多個標識符;數(shù)字/名稱空間,所述數(shù)字/名稱空間包括多個標識符,所述標 識符包括跨所述計算機唯一和非唯一的標識符;或網(wǎng)絡(luò)間隔空間,所述網(wǎng)絡(luò)間 隔空間提供了網(wǎng)絡(luò)上的業(yè)務(wù)向服務(wù)器筒倉的正確傳送。
7. —種用于在單個計算機上創(chuàng)建隔離應(yīng)用程序環(huán)境的方法,包括-創(chuàng)建一服務(wù)器筒倉(304),所述服務(wù)器筒倉包括用運行應(yīng)用程序的隔離應(yīng)用程序環(huán)境;為所述服務(wù)器筒倉生成一服務(wù)器筒倉專用名稱空間(306),所述服務(wù)器 筒倉專用名稱空間通過提供全局資源集的一子集的視圖來限制對該資源集的 訪問,所述子集包括所述服務(wù)器筒倉可訪問的全局資源;經(jīng)由系統(tǒng)引導(dǎo)填充所述服務(wù)器筒倉專用名稱空間的至少第一部分(312);經(jīng)由筒倉專用引導(dǎo)填充所述服務(wù)器筒倉專用名稱空間的至少第二部分(314),所述服務(wù)器筒倉專用引導(dǎo)包括對僅所述服務(wù)器筒倉的部分引導(dǎo)。
8. 如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器筒倉專用引導(dǎo)包 括引導(dǎo)所述系統(tǒng)引導(dǎo)的進程中僅用于所述服務(wù)器筒倉的子集。
9. 如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器筒倉專用名稱空 間是分層名稱空間,其中所述分層名稱空間中的至少一個節(jié)點包括到一全局名 稱空間的鏈接。
10. 如權(quán)利要求7所述的方法,其特征在于,所述分層名稱空間包括注冊 表、系統(tǒng)對象名稱空間或文件系統(tǒng)中的一個。
11. 如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器筒倉專用名稱空 間是數(shù)字空間,其中所述數(shù)字空間中的每一標識符是所述計算機中的唯一數(shù) 字。
12. 如權(quán)利要求11所述的方法,其特征在于,所述數(shù)字空間包括進程標 識符名稱空間。
13. 如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器筒倉專用名稱空 間是數(shù)字/名稱空間,其中所述數(shù)字/名稱空間中的每一標識符是所述計算機中 的唯一數(shù)字或所述計算機中的非唯一數(shù)字中的一個,所述非唯一數(shù)字包括由多 個應(yīng)用程序用于表示一特定實體的數(shù)字。
14. 如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器筒倉專用名稱空 間是如權(quán)利要求6所述的網(wǎng)絡(luò)間隔名稱空間,其中所述網(wǎng)絡(luò)間隔名稱空間包括 一網(wǎng)絡(luò)適配器以及用于將網(wǎng)絡(luò)業(yè)務(wù)傳送到該業(yè)務(wù)所定址到的筒倉的一組IP地 址。
15. 如權(quán)利要求7所述的方法,其特征在于,還包括 執(zhí)行填充所述服務(wù)器筒倉專用名稱空間的一部分的系統(tǒng)引導(dǎo)。
16. —種包括計算機可執(zhí)行指令的計算機可讀介質(zhì),所述指令用于-創(chuàng)建一服務(wù)器筒倉(304),所述服務(wù)器筒倉包括用運行應(yīng)用程序的隔離應(yīng)用程序環(huán)境;為所述服務(wù)器筒倉生成一服務(wù)器筒倉專用名稱空間(306),所述服務(wù)器 筒倉專用名稱空間通過提供全局資源集的一子集的視圖來限制對該資源集的 訪問,所述子集包括所述服務(wù)器筒倉可訪問的資源;經(jīng)由系統(tǒng)引導(dǎo)填充所述服務(wù)器筒倉專用名稱空間的至少第一部分(312);經(jīng)由服務(wù)器筒倉專用引導(dǎo)填充所述服務(wù)器筒倉專用名稱空間的至少第二部分(314),所述服務(wù)器筒倉專用引導(dǎo)包括對僅所述服務(wù)器筒倉的部分引導(dǎo)。
17. 如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,還包括用于執(zhí) 行以下動作的計算機可執(zhí)行指令執(zhí)行填充所述服務(wù)器筒倉專用名稱空間的一部分的系統(tǒng)引導(dǎo)。
18. 如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,還包括用于執(zhí)行以下動作的計算機可執(zhí)行指令創(chuàng)建包括至少一個節(jié)點的分層服務(wù)器筒倉專用名稱空間,所述節(jié)點包括到 系統(tǒng)名稱空間的鏈接,其中所述分層服務(wù)器筒倉專用名稱空間包括限制所述服 務(wù)器筒倉對系統(tǒng)資源的訪問的所述系統(tǒng)名稱空間的視圖。
19. 如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,還包括用于執(zhí) 行以下動作的計算機可執(zhí)行指令創(chuàng)建一服務(wù)器筒倉專用名稱空間,該名稱空間包括在執(zhí)行所述計算機可執(zhí) 行指令的計算機內(nèi)唯一的標識符,以及在執(zhí)行所述計算機可執(zhí)行指令的計算機 內(nèi)不唯一的標識符。
20. 如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,還包括用于執(zhí) 行以下動作的計算機可執(zhí)行指令通過修改用于所述服務(wù)器筒倉的注冊表條目來定制所述服務(wù)器筒倉。
全文摘要
一種稱為筒倉的操作系統(tǒng)內(nèi)隔離機制使用操作系統(tǒng)的單個實例提供了對在單個計算機上運行的進程的分組和隔離。該操作系統(tǒng)通過向在稱為服務(wù)器筒倉的隔離應(yīng)用程序內(nèi)執(zhí)行的進程提供系統(tǒng)名稱空間的視圖來允許資源的受控共享。服務(wù)器筒倉是通過對服務(wù)器筒倉內(nèi)的用戶級服務(wù)執(zhí)行單獨的“小型引導(dǎo)”來創(chuàng)建的。服務(wù)計算機的單個OS映像采用名稱空間包容機制來約束哪些服務(wù)器筒倉能使用哪一(些)資源。限制對資源的訪問因而直接基于放置在服務(wù)器筒倉中的進程或應(yīng)用程序而非誰正在運行該應(yīng)用程序,因為如果一進程或應(yīng)用程序無法解析用于訪問資源的名稱,則它無法使用該資源。
文檔編號G06F9/24GK101326489SQ200680046396
公開日2008年12月17日 申請日期2006年12月12日 優(yōu)先權(quán)日2005年12月12日
發(fā)明者F·J·史密斯, J·L·海文斯, M·泰魯利, Y·A·哈利迪 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1