專利名稱::用于雙操作系統(tǒng)的文件系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明總體上涉及共享相似架構(gòu)的個人計算機和設(shè)備,更具體地說,涉及用于管理、激活和控制在計算裝置內(nèi)或在單一計算機操作會話或上下文內(nèi)的兩個或更多0/S(操作系統(tǒng))等之中的文件系統(tǒng)共享的系統(tǒng)和對應(yīng)的方法。
背景技術(shù):
:在現(xiàn)代,越來越包括所謂的膝上型計算機和筆記本計算機的PC(個人計算機)的使用,正在日益普及,并且計算機本身日益增強計算機能力、減少熱功率并且甚至更復雜。較老的PC具有單一及支配性(overarching)控制軟件,通常是窗口0/S(操作系統(tǒng)),例如MicrosoftVista(商業(yè)產(chǎn)品)或具有GNOME(開源程序)的Linux。商業(yè)Windows產(chǎn)品和開源0/S均具有出眾的優(yōu)勢,越來越多的膝上型計算機的買家希望具有并使用二者。在單一計算機上同時提供多個0/S程序產(chǎn)品提出了多種挑戰(zhàn),包括多引導、支持ACPI的加載和具有相關(guān)硬件支持的可視化系統(tǒng)管理程序。由于跨0/S共享數(shù)據(jù)以及因此共享FS(文件系統(tǒng)),出現(xiàn)了另一問題。在多個0/S在單一操作會話內(nèi)或以有效同時或連續(xù)地且交替地操作的情況下,這尤其是一個問題。典型的是,對于PC而言,操作會話是從POST(加電自檢)至有序的0/S關(guān)閉以及通常的斷電的序列。互斥、資源鎖定和類似技術(shù)在計算領(lǐng)域是公知的,其中,多個實體(執(zhí)行線程、處理器核心、分布式處理器等)需要有效地共享數(shù)據(jù)文件資源。在計算中的此類情形已經(jīng)通過協(xié)作軟件流程普遍得到了解決,以確保有序的資源共享,或者至少有序的資源分配。然而,當閉源0/S(通過設(shè)計)不知道其他0/S時,無法預計閉源0/S會促進與另一0/S的資源共享。文件在兩個或更多0/S之間同時可用或交替可用的情況下,需要一種較不一般的解決方案,并且本發(fā)明解決至少一種這樣的情形。具體而言,在閉源0/S實施高級或復雜數(shù)據(jù)處理特征的情況下,例如,日志化(journalizing)或檢查點/回滾,那么,其可能看起來對另一0/S表現(xiàn)不佳(或者至少不是表現(xiàn)得易于理解)。本發(fā)明解決一種尤其常見的情形,甚至更多。先前的解決方案已經(jīng)包括使每個0/S完全控制其自己的FS(文件系統(tǒng)),該FS然后被另一0/S視為RO(只讀)。不僅其能力受到不恰當?shù)南拗?,而且,當由使FS對于RW(讀-寫)開放的0/S在會話中使FS處于奇態(tài)或其他未記錄(undocumented)狀態(tài)中時,甚至可能無法產(chǎn)生一致的結(jié)果。在某些情形中,這種FS甚至可以被檢測為無法安裝(im-moimtable)(或損壞),甚至對于R0,處于能夠?qū)ζ溥M行RW訪問的0/S的上下文之外。本發(fā)明實施例優(yōu)于先前開發(fā)的解決方案的一個顯著優(yōu)勢是,在不需要在單一操作會話內(nèi)的0/S上下文的切換之間關(guān)閉并重啟文件系統(tǒng)(以及隱含著重啟操作系統(tǒng))的情況下,在多于一個0/S之間來回切換執(zhí)行變成可能。
發(fā)明內(nèi)容本發(fā)明提供用于操作計算機的方法以及還提供實施該方法的設(shè)備。此外,提出了使用本發(fā)明的程序產(chǎn)品和其他裝置。根據(jù)本發(fā)明的一個方面,本發(fā)明的實施例可以提供加載兩個0/S,安裝由第二0/S控制并且由第一0/S只讀訪問的第一FS(文件系統(tǒng)),安裝由第一0/S控制的日志(journal)。此外,將從第一0/S下的應(yīng)用程序?qū)懭氲臄?shù)據(jù)重定向到日志,然后恢復第二0/S的執(zhí)行,并且將日志應(yīng)用于第二0/S的上下文中的第一FS。由本發(fā)明提供的或從實施本發(fā)明所得到的一種優(yōu)勢和/或特征是,在兩個0/S中的一個變成掛起而另一個變成活動時,兩個0/S可以在單一文件系統(tǒng)內(nèi)交替使用文件。在結(jié)合下列附圖進行的下文對本發(fā)明的詳細描述的回顧時,本發(fā)明的前述和相關(guān)優(yōu)勢和特征將變得更好理解和認識,附圖被包含在本說明書中并構(gòu)成其部分,示出了本發(fā)明的實施例,并且其中相同數(shù)字表示相同要素,且其中圖1是根據(jù)本發(fā)明被配置成實施安全功能的電子設(shè)備的示意性框圖;圖2和圖3結(jié)合在一起形成了在實施本發(fā)明的實施例中執(zhí)行的步驟的某些的概覽的流程圖4是示出了本發(fā)明的實施例的某些軟件組件之間的關(guān)系的圖;圖5示出了可以如何將本發(fā)明的一個示例性實施例編碼到一個或多個計算機介質(zhì)上;以及圖6示出了可以如何使用電磁波來編碼、傳輸、接收和解碼本發(fā)明的示例性實施例。具體實施例方式提供了在附圖中示出的多個組件以為本領(lǐng)域的普通技術(shù)人員提供對本發(fā)明的透徹的、開放的公開。在本描述內(nèi)未包含對公知組件的描述,以避免使本公開晦澀難懂或者剝奪了或以其他方式減少了本發(fā)明的新穎性以及由此提供的主要益處。現(xiàn)在將參考附圖來描述本發(fā)明的示例性實施例。圖1是根據(jù)本發(fā)明的被配置成實現(xiàn)安全功能的電子設(shè)備的示意性框圖。在一個示例性實施例中,電子設(shè)備10可以被實施為個人計算機,例如臺式計算機、膝上型計算機、平板計算機或其他適當?shù)挠嬎阍O(shè)備。雖然該描述略述了個人計算機的操作,但本領(lǐng)域的普通技術(shù)人員將理解的是,電子設(shè)備10可以被實施為PDA、無線通信設(shè)備,例如蜂窩電話、嵌入式控制器或設(shè)備,例如機頂盒、打印設(shè)備或其他適當?shù)脑O(shè)備或適合于利用本發(fā)明操作或互操作的它們的組合。電子設(shè)備10可以包含至少一個處理器或CPU(中央處理單元)12,其被配置成控制電子設(shè)備10的全面操作。類似控制器或MPU(微處理器單元)是常見的。典型地,處理器12可以通過諸如FSB(前側(cè)總線)的總線13被耦合至諸如北橋芯片的總線控制器14。典型地,總線控制器14可以為諸如RAM(隨機訪問存儲器)的讀寫系統(tǒng)存儲器16提供接口。在普通操作中,CPU12可以從系統(tǒng)存儲器16取得計算機指令(也被稱為計算機指令代碼,未在圖1中示出)。然后,CPU可以解釋取到的計算機指令并且操作以解釋所述指令由此控制電子設(shè)備10的操作。CPU、系統(tǒng)存儲器和典型地包括OS(操作系統(tǒng))代碼和其他軟件的計算機指令的這種使用在計算領(lǐng)域中是公知的。例如,在典型的htel類型實施例中,總線控制器14也可以被耦合至系統(tǒng)總線18,例如DMI(直接媒體接口)。耦合到DMI18可以是諸如htelICH8(輸入/輸出控制器集線器類型8)芯片M的所謂的南橋芯片。在一個典型的實施例中,南橋芯片M可以連接至PCI(外圍組件互連)總線22,其可以進而連接至磁盤存儲子系統(tǒng)66,磁盤存儲子系統(tǒng)66可以提供在本發(fā)明實施例中所使用的各種FS(文件系統(tǒng))。這里結(jié)束了對圖1的討論。來自PhoenixTechnologies公司的HyperSpace產(chǎn)品家族實現(xiàn)了以各種方式在單一計算機上提供多個0/S程序產(chǎn)品。HyperSpace品存在若干變體,尤其使用雙弓I導、雙恢復或虛擬機的技術(shù)——后者需要在今天的膝上型計算機產(chǎn)品中很難普遍找到的硬件支持。HyperSpace品的雙弓|導版本不提供同時加載,而是要求在加載第二0/S并允許其控制PC之前關(guān)閉第一0/S。HyperSpace"<產(chǎn)品的雙恢復版本確實促進了第一和第二0/S的同時加載,如HyperSpace"<產(chǎn)品所定向的,所述OS例如流線型的類似Linux的0/S以及諸如來自Microsoft公司的那些之一的功能豐富的閉源0/S?;旧?,在HyperSpace產(chǎn)品的雙恢復版本中,兩個0/S被同時加載,但在任何時刻,在用戶層級,僅選定一個是活動的。顧名思義,在0/S之間的切換涉及使一個0/S處于靜止狀態(tài)并且將另一0/S從其先前靜止狀態(tài)“恢復”(回復)到更活動的狀態(tài)。因此,在本發(fā)明所描述的實施例中,在任何時間,僅一個0/S在應(yīng)用層級是活動的。HyperSpace"<產(chǎn)品的雙恢復版本提供在兩個目標0/S之間的有限文件共享。HyperSpace產(chǎn)品的類似Linux的0/S側(cè)通常稱為僅HS(HyperSpace的縮寫),并且另一方面,從Microsoft公司選擇的任何現(xiàn)代0/S產(chǎn)品之一通常被稱為“Windows”,這是計算域中常用的一般術(shù)語。盡管如此,Windows也是Microsoft公司獲得承認的注冊商標,并且來自MIT(麻省理工學院)的X-Windows是開源程序產(chǎn)品。各種HyperSpace固件/軟件產(chǎn)品的一個關(guān)鍵特征當然是其允許FS(以及因此文件)在Windows上下文與同時的HS(HyperSpace的類似Linux的0/S)上下文之間被共享。在下文對具體實施例的描述中,已經(jīng)被實現(xiàn)的特定文件系統(tǒng),諸如NTFS、FAT32、WindoWSPSA、ext3(等,所有這些在本領(lǐng)域中是公知的)應(yīng)被視為提供對示例性FS的開放描述。本發(fā)明總體上不限于所描述的那些特定0/S,它們僅被用作范例性示例。一種裸機(bare-bones)并且僅勉強可接受的基本實施方式(借鑒自常見的Linux分發(fā))將開發(fā)使用未修改的NTFS-3g(第三代新技術(shù)文件系統(tǒng))驅(qū)動器,以從HyperSpace上下文內(nèi)安裝并訪問被指定為C、D等的存儲卷。使用雙引導技術(shù),允許(從類似Linux的0/S)對由Windows生成的(并且維護的)FS的安全只讀訪問的這種類型的實施方式是勉強可接收的。在雙恢復產(chǎn)品中,這種限制對于絕大多數(shù)用戶可能是完全不可接受的。一般而言,向FS寫入由NTFS_3g驅(qū)動器支持,但是沒有進一步的預防或補救措施,實際使用這種特征可能(并且可能會)導致問題,這些問題來自于通過諸如MSNTFSVSS(Microsoft公司的NTFS卷快照服務(wù))以及數(shù)據(jù)日志化特征的高級特征的NTFS_3g的非完整實現(xiàn)。MSNTFSVSS在本領(lǐng)域中是公知的。抓住機會以解決上述困難的部分可以涉及限制在NTFS_3g內(nèi)的讀寫訪問,以便提供對于目標卷的僅有限子集的完全讀寫訪問。這樣做限制了復雜的范圍,同時提供了對最可能被認為是其讀寫訪問對于用戶有價值的那些文件的完全NTFSIg訪問。以這種方式限制范圍,允許軟件保持到最少值,因而避免了消耗過多資源的風險。在本發(fā)明的一個實施例中,從HS側(cè)(運行Linux的變體)的Windows文件的讀寫訪問被限于FS的較小的受控部分。在一個特定實施例中,實現(xiàn)對“我的文檔文件夾”的讀寫訪問。“我的文檔文件夾”是Microsoft軟件產(chǎn)品的常見的、公知的特征。通??梢葬槍λ形募峁┲蛔x訪問而不會導致問題;然而,可能需要采取步驟以確保當將控制轉(zhuǎn)移給第二0/S時,使第一0/S的FS處于有條不紊的(tidy)狀態(tài)。描述的實施方式緩解了與在另一0/S被掛起但盡管如此可能仍在應(yīng)用層級具有未決(pending)動作的同時從0/S訪問FS(尤其是NTFS)相關(guān)聯(lián)的問題。這些效應(yīng)對于本領(lǐng)域的普通技術(shù)人員將是顯而易見的。因而在示例性的HyperSpace雙恢復程序產(chǎn)品中,文件共享的問題具有挑戰(zhàn)性。出現(xiàn)了其中Windows和HS均被激活,即使未交替而非同時執(zhí)行應(yīng)用層級程序的情形。例如,當一個0/S見到ACPI(高級配置與電源接口)狀態(tài)S0,并且另一個認為其本身以狀態(tài)S3被掛起時,這可能發(fā)生。在這種情況下,二者可以具有同時安裝的Windows擁有的NTFS文件系統(tǒng),即使當安裝的OS之一被實際掛起時。在不采取特定措施以確保一致性的情況下,出現(xiàn)了過期數(shù)據(jù)被讀取和/或Windows文件系統(tǒng)損壞的風險,例如當在其中Windows被掛起的時段期間存在從HS對NTFS的寫入時。具體而言,下列問題是突出的,并且在本發(fā)明的實施例中得到整體或大部分解決(A)在文件系統(tǒng)或卷內(nèi)的文件的“盤上”版本可能不同于在該相同文件的“尚未被保存”或被高速緩存在存儲器中的版本。這是個二分問題——二者中任何一個或任何0/S可以擁有并控制文件或FS卷,因而可能產(chǎn)生待由另一0/S解決的問題。(B)NTFS-3g驅(qū)動器可以拒絕安裝尚未被干凈地卸載的NTFS卷。(C)在HS雙恢復類型產(chǎn)品的情況下,Windows文件可能在將上下文切換至HS的時候,保持開放以待編輯。(D)基于Windows的NTFS實施方式可以包括NTFS_3g所沒有的增強功能,尤其包括(I)還原點和VSS;(II)文件索引;(III)AV(視聽)封裝對過濾器驅(qū)動器的使用;以及(IV)利用恢復設(shè)施的備份。參考圖2,在本發(fā)明的一個實施例中描述為從附圖標記200開始,在例如基于Linux的HS的0/S的上下文中,采取多個動作。在附圖標記210,HS以只讀模式,使用NTFS-3g安裝FS。這可能提供從HS對于在選擇待由NTFS_3g軟件子系統(tǒng)安裝的卷中的一個或多個(任何或全部)基于Windows的FS的訪問。而且,Windows0/S可以通過傳統(tǒng)方式,向各個FS寫入,不受在該計算機系統(tǒng)中活動HyperSpace上下文和0/S的存在的影響(事實上不知道該存在)。在附圖標記230,從HS應(yīng)用向在屬于Windows的任何NTFS內(nèi)的文件寫入的任何和所有數(shù)據(jù)被寫入由HS控制并擁有的影子(shadow)虛擬FS??梢詮膶τ贖S本地的FS內(nèi)提供用于影子虛擬FS的卷(磁盤)空間分配。在附圖標記M0,從HS內(nèi)向影子虛擬FS的寫入也可以被記錄到日志文件中。日志可以被同步到磁盤(用于IDE(集成驅(qū)動電子設(shè)備)磁盤)的高速緩存),諸如在每次寫入時或諸如按照每數(shù)秒的策略或者根據(jù)類似標準周期性地。日志文件可以被實施在卷上的專用數(shù)據(jù)區(qū)內(nèi),并且日志文件也可以從在Windows0/S或上下文中操作的系統(tǒng)程序被訪問。例如,在專用擴展盤分區(qū)中的FAT32(32位文件分配表)FS可以被使用,或者可以在隱藏、不可移動的鄰接Windows臨時文件之上實施專有的格式化日志區(qū)。在附圖標記250,在HS上下文中接收到待服務(wù)的讀取請求,其導致在虛擬影子FS上執(zhí)行檢查,以確定請求的數(shù)據(jù)是否已經(jīng)處于其中。如果不是,那么數(shù)據(jù)讀取請求是針對不存在于影子虛擬FS中的請求文件,或者找到了請求的文件,但是特定記錄未找到。在附圖標記沈0,如果通過讀取該影子FS,能夠服務(wù)該請求,那么,執(zhí)行該讀取。否則,在附圖標記270,讀取只讀NTFS,并且從其定位文件和數(shù)據(jù)。在附圖標記觀0,將存在遠離HS上下文的改變,并且在附圖標記四0,在圖3中在Windows上下文中將繼續(xù)執(zhí)行?,F(xiàn)在參考圖3,附圖標記300是開始恢復到在Windows上下文中的執(zhí)行(或者在Microsoft的Windows資源分區(qū)的重新引導時)。在附圖標記310,Windows服務(wù)(典型地以應(yīng)用守護程序(applicationdaemon)形式)可以一致性檢查(驗證)如上所述的在HS下創(chuàng)建的日志文件。在附圖標記320,先前被安裝到Windows應(yīng)用(諸如Explorer(資源管理器)程序)中的過濾器(插件)程序和/或先前安裝的FS過濾器驅(qū)動器可以延遲(即拖延或延緩)從Windows進程對某些文件的請求訪問。受影響的文件是通過應(yīng)用日志文件當前經(jīng)受修改的那些文件。訪問被延遲,直到HS寫入日志已經(jīng)被合并而且被完全應(yīng)用之后(如下文所述)。在附圖標記325,然后,服務(wù)可以應(yīng)用日志至(一個或多個)NTFS文件,然后,在附圖標記330,可以擦除日志上下文(諸如,通過寫入全零的數(shù)據(jù)),并且在附圖標記340,可以將虛擬影子FS標記為空(或者以其他方式標記為不可應(yīng)用的,因為不再包含應(yīng)被應(yīng)用的日志文件)。這種日志文件的應(yīng)用相當于抓住(catchup)影子副本,并且確保后面的訪問(諸如可以來自Windows內(nèi)并且不知道影子)將僅接收有效并且新(即非過時)數(shù)據(jù)。在附圖標記350,在步驟320所施加的訪問延遲或延緩被釋放。這允許在恢復的0/S上下文中未決的轉(zhuǎn)換繼續(xù)進行,并且任何可能已經(jīng)建立的待辦事項被展開。在附圖標記390,該動作序列被完成。圖4是示出了本發(fā)明一個實施例的軟件組件之間的關(guān)系的圖。在低層級并且利用BIOS輔助,存在通過ACPI490的HyperSpace雙恢復支持。在此之上和之外,存在兩個0/S上下文,Windows0/S上下文400以及HyperSpace0/S上下文450。Windows0/S上下文400在作為⑶I(圖形用戶界面)或作為守護程序應(yīng)用410運行的組件以及可替換地充當插件尤其是文件系統(tǒng)文件過濾器的程序之間被分割。HyperSpace0/S上下文450在用戶空間455和核心空間470之間被分割。現(xiàn)在將始終參考圖4描述形成本發(fā)明一個實施例的各種軟件組件。關(guān)于Windows側(cè)400的設(shè)計包括若干組件(A)NTFS文件過濾器440,(B)FS過渡管理器420以及(C)FAT文件過濾器450。NTFS文件過濾器440是在引導期間附于Windows文件系統(tǒng)堆棧的文件系統(tǒng)驅(qū)動器,并且監(jiān)視進入Windows0/S的FS驅(qū)動器的所有調(diào)用。它在輔助FS過渡管理器進行文件共享方面起到重要的作用。在從Windows至HS的切換期間,NTFS文件過濾器440在來自FS過渡管理器420的通知時,清洗(flush)磁盤高速緩存。然后,NTFS文件過濾器440通過基于文件句柄將IRP(I/O請求包)排隊,阻擋所有FSI/O(輸入-輸出操作)到達FS。在來自FS過渡管理器420的通知時并且響應(yīng)該通知,啟動和停止該阻擋。文件過濾器僅阻擋讀取和寫入IRP,但是允許諸如PNPIRP(即插即用IRP)、電源IRP、WMIIRP(Windows管理儀器IRP)的其他IRP。NTFS文件過濾器440在實施對跨兩個0/S之間共享的文件執(zhí)行的操作鎖定(OpLock)特征中起到關(guān)鍵的作用。操作鎖定實施多讀取器與一個寫入器機制。操作鎖定在其中在一個0/S中被打開的文件被打開以在另一0/S中編輯的情形下確保數(shù)據(jù)的完整性。當應(yīng)用請求在共享分區(qū)中打開文件時,NTFS文件過濾器440捕獲IRP,并且嘗試在日志文件中查找該文件。如果不存在用于該請求文件的條目,該請求被允許。但是,如果存在條目,則各個應(yīng)用的對打開文件的請求被拒絕。這種技術(shù)允許以有序的方式跨0/S共享FS,同時仍然遵循在兩個應(yīng)用同時嘗試更新相同實際文件(不僅是相同F(xiàn)S)的傳統(tǒng)情形中的文件鎖定。在一個實施例中,每當在HS(即在DomO中)執(zhí)行的應(yīng)用打開文件句柄時,使用向日志文件寫入(或更新)條目的UnionFS過濾器驅(qū)動器482(在HS中)來實施日志文件。UnionFS是在Linux中普及的特征,并且在本領(lǐng)域中是公知的。當對于文件句柄的所有引用被關(guān)閉時,從日志文件刪除相關(guān)日志條目。僅UnionFS驅(qū)動器(在HS側(cè)上)更新該日志、以及各個NTFS文件過濾器僅讀取(即,其具有準許的只讀訪問)的其他域(典型地是運行的Windows)。類似地,作為推論,NTFS文件過濾器440也在第二日志文件中記錄所有打開文件的條目。這個日志文件被UnionFS過濾器482用于允許在HS中的應(yīng)用打開文件以編輯的查找。因而,在一個實施例中,在第二日志中的各個條目的存在起到了防止文件被在HS中打開的作用。由于將記錄器用于實施操作鎖定(許多讀取器、一個寫入器被允許),于是在其中應(yīng)用打開用于只讀訪問的文件的情形中,在兩個0/S上的各個記錄器既不阻擋也不記錄文件細節(jié)。此外,具有兩個單獨記錄器的期望結(jié)果是,其阻止兩個0/S以RW(讀取-寫入)模式安裝相同分區(qū)(該分區(qū)的記錄存在)。因而,“Windows記錄文件”可以存在于Windows文件管理器(filer)驅(qū)動器能夠讀取和寫入的共享卷中,但其從HS是只讀的。相反,HS記錄存在于HS能夠更新或編輯的影子卷中,但對于其他域(典型地為Windows側(cè)),其被視為只讀卷或FS0FS過渡管理器420是在后臺中運行的Windows應(yīng)用和服務(wù)。服務(wù)應(yīng)用啟動將任何彈出消息給予用戶的窗口化應(yīng)用。服務(wù)應(yīng)用典型地不被設(shè)計成訪問GDI(圖形顯示界面)功能,并且任何直接那樣做的嘗試將可能在執(zhí)行期間失敗。服務(wù)應(yīng)用監(jiān)聽來自SCM(服務(wù)控制管理器——一種公知的Windows組件)的通知,并且也待機并恢復通知事件。FS過渡管理器420是執(zhí)行多個任務(wù)的關(guān)鍵組件(A)在登錄階段啟動自身。其安裝WindowsPSA(封裝系統(tǒng)區(qū))分區(qū)并且將其從用戶層級隱藏。(B)每當Windows是活動的時,F(xiàn)S過渡管理器420監(jiān)聽觸發(fā)器,以改變ACPI系統(tǒng)狀態(tài),并且在接收到時,通知NTFS文件過濾器440清洗磁盤高速緩存,并且臨時阻擋I/O。(C)每當Windows從待機恢復時,應(yīng)用監(jiān)聽喚醒通知,并且在接收到時,執(zhí)行從影子卷到共享卷分區(qū)的復制。一旦完成該復制,其就通知過濾器驅(qū)動器解除對未決IRP的阻擋。(D)FS過渡管理器420在從待機恢復時,也安裝WindowsPSA卷。在本發(fā)明的一個實施例中,影子卷在WindowsPSA中。FAT32文件過濾器450是位于FAT32文件系統(tǒng)堆棧中的過濾器驅(qū)動器。FAT32在本領(lǐng)域中是公知的。在這種設(shè)計中,WindowsPSA被用作影子分區(qū),并且其是FAT32分區(qū)。FS過渡管理器420安裝該分區(qū)并且執(zhí)行所需的復制操作。一旦被安裝,Windows就使得該分區(qū)對于用戶可用,并且用戶能夠根據(jù)可能的需要而使用該分區(qū)。為了避免在WindowsPSA上的任何這樣的(潛在有問題的)操作,F(xiàn)AT32文件過濾器45通過設(shè)計,阻擋尋址到WindowsPSA的1/0?,F(xiàn)在轉(zhuǎn)向在HyperSpace11MIU450上的設(shè)計,在用戶空間455中的是若干組件(D)HS過渡管理器460、(E)HS過渡管理器UI(用戶界面)465以及(F)腳本支持470。文件過濾器、VFS480(虛擬文件系統(tǒng))以及UnionFS482位于核心空間470中。這些文件過濾器與各種類型的FS(文件系統(tǒng))、“ext3”484(缺省LinuxFS)、NTFS486以及FAT32488—起操作。HS過渡管理器460管理對于NTFSRO(只讀)分區(qū)的受控1/0。每當存在不需要更新磁盤的事務(wù),即任何RO操作時,HS過渡管理器460從適當?shù)腘TFS分區(qū)讀取文件,并且以RO模式將其打開。當任何業(yè)務(wù)需要更新磁盤時,則HS過渡管理器460以RO模式從NTFS分區(qū)打開文件,但在這種情況下,1/0傳輸(寫入或重新寫入)被定向到影子卷,其以RW(讀取-寫入)模式被安裝,而非1/0傳輸被定向到NTFS分區(qū)本身。在本發(fā)明的一個實施例中,HS文件過濾器模塊可以是用于與UnionFS482相關(guān)聯(lián)起作用的VFS480的文件過濾器的一部分。UnionFS482是一種類型的文件系統(tǒng),其處理將兩個安裝點合并及執(zhí)行對影子卷488的寫入1/0,即使在用戶空間中的應(yīng)用被展示了已直接發(fā)生在NTFS區(qū)上的寫入1/0的視圖。UnionFS的使用規(guī)定,每當該數(shù)據(jù)已經(jīng)通過最近的寫入操作被改變時,讀取操作將適當?shù)厝〉脭?shù)據(jù),尤其是從在影子卷上的編輯數(shù)據(jù)(而非原始和未改變的數(shù)據(jù))。用于VFS480的文件過濾器除了提供HS文件過濾器模塊能力以外,還提供諸如直接對于ext3484和NTFS486的一般文件訪問。HS過渡管理器460讀取關(guān)于正在被打開以用于從元數(shù)據(jù)文件(未在圖4中示出)的寫入1/0的文件的狀態(tài)的信息。元數(shù)據(jù)文件可以被實施為上文所描述的記錄文件的特征,或者其可以被單獨地創(chuàng)建并維護。元數(shù)據(jù)文件存在于以RO模式安裝的NTFS分區(qū)中。NTFS文件過濾器(在Windows中)利用正在Windows中被編輯或更新的任何有關(guān)(潛在可共享的)文件的信息來更新該元數(shù)據(jù)文件。諸如Windows系統(tǒng)文件的某些文件可以被有意排除,因此對于HS應(yīng)用側(cè)保持未知。在元數(shù)據(jù)文件中含有的信息包含文件名、在NTFS分區(qū)中的位置、當前狀態(tài)、文件描述符引用的數(shù)目以及更多。如果文件在HS中正在以允許寫入的模式被打開,并且如果HS過渡管理器460從元數(shù)據(jù)文件發(fā)現(xiàn)該文件處于“在Windows中打開以編輯”的狀態(tài),那么HS過渡管理器460發(fā)信號通知HS過渡管理器UI465,以顯示適當?shù)南?,并且文件打開被禁止。類似地,HS過渡管理器460維護影子卷中的元數(shù)據(jù)文件。內(nèi)部結(jié)構(gòu)類似于由Windows更新的NTFS分區(qū)中存在的元數(shù)據(jù)文件。每當來自任何HS應(yīng)用的請求到達以打開屬于NTFS分區(qū)并且尚未在Windows中被編輯的文件進行寫入時,HS過渡管理器460更新該元數(shù)據(jù)文件。如果在HS中正在編輯的文件在朝Windows切換上下文之前被關(guān)閉,則用于該文件的條目被從元數(shù)據(jù)文件中移除。因而,向Windows指示其可以打開該文件進行編輯。實際文件本身與元數(shù)據(jù)一起被保存在影子卷中。每當上下文被切換到Windows時,這個文件被Windows復制到其在NTFS分區(qū)上的實際位置。這種情形尤其可以應(yīng)用于其中新文件在HS上下文中創(chuàng)建并且使之對于Windows側(cè)可用的情形。這也可以是(或視為)等價于其中日志僅是整個文件的情形,其是關(guān)于如何實施這一點的實施細節(jié)。通過Linux風格的UnionFS482驅(qū)動器實施HS文件過濾器。UnionFS是處于VFS和NTFS-3g驅(qū)動器之間的一種類型的文件系統(tǒng)。UnionFS在本領(lǐng)域中是公知的。就功能而言,UnionFS482同時位于若干文件系統(tǒng)484、486、488之上,或者有時在單一文件系統(tǒng)內(nèi)的多個目錄上。UnionFS482將若干目錄覆蓋到一個單一安裝點中。其首先嘗試訪問在頂部分支上的文件,并且,如果不成功,在較低層級分支上繼續(xù)。如果用戶嘗試修改在較低層級分支上的為RO的文件,那么,該文件被復制到較高層級的讀取-寫入分支上。UnionFS482向核心呈現(xiàn)文件系統(tǒng)接口,并且UnionFS進而將其自身作為核心的VFS呈現(xiàn)給其被堆疊于其上的文件系統(tǒng)。由于UnionFS向核心呈現(xiàn)文件系統(tǒng)視圖,其可以被(一個或多個)用戶層級應(yīng)用所采用。UnionFS攔截針對較低層級文件系統(tǒng)捆綁的操作,因此,其能夠修改操作以呈現(xiàn)統(tǒng)一的視圖。在本發(fā)明的實施例中,兩個文件系統(tǒng)可以是NTFS(只讀)和FAT32影子卷(讀取-寫入)。用戶(用戶模式應(yīng)用)被允許訪問影子卷,但作為例外HS過渡管理器460被允許如此。FAT32影子卷488可以被用于維護尋求在NTFS分區(qū)486中創(chuàng)建的新文件和元數(shù)據(jù)文件。HS過渡管理器460可以被實施為(A)UnionFS-FUSE驅(qū)動器(在用戶空間內(nèi)的UnionFS文件系統(tǒng))或者可替換地是UnionFS的核心空間文件系統(tǒng)驅(qū)動器。UnionFS-FUSE驅(qū)動器未在圖4中示出,但在本領(lǐng)域中是公知的。腳本支持468提供啟動腳本,其被定制為加載UnionFS核心模塊。如果使用UnionFS-FUSE,腳本必須加載FUSE核心模塊并且調(diào)用UnionFS-FUSE。然后,(無論是否使用UnionFS-FUSE),啟動HS過渡管理器守護程序460和HS過渡管理器UI465。關(guān)于圖5,待被包括到電子設(shè)備10中的計算機指令可以作為制造的固件和/或使用多種可能介質(zhì)530的軟件計算機產(chǎn)品510而被分發(fā),多種可能介質(zhì)530具有諸如通過使用存儲記錄裝置520而記錄于其上的指令。通常,在與部署本發(fā)明的那些一樣復雜的產(chǎn)品中,在分發(fā)過程中以及在制造相關(guān)產(chǎn)品中,可以使用多于一個介質(zhì)。為了清楚起見,在圖5中僅示出了一個介質(zhì),但是可以使用多于一個介質(zhì),并且單一計算機產(chǎn)品可以在多個介質(zhì)之間被劃分。圖6示出了本發(fā)明的一個示例性實施例可以如何使用電磁波來編碼、傳輸、接收和解碼。參考圖6,此外,尤其是由于因特網(wǎng)使用的興起,通過將計算機產(chǎn)品610編碼到被調(diào)制為波的信號中,可以分發(fā)計算機產(chǎn)品610。然后,所得到的波形可以通過發(fā)射器640發(fā)射,作為有形的已調(diào)制電磁載波650傳播,并且由接收器660接收。在接收時,它們可以被解調(diào),并且信號被解碼成在存儲器中或在作為第二電子設(shè)備11的一部分并且本質(zhì)上典型地與電子設(shè)備10類似的其他存儲設(shè)備中的計算機產(chǎn)品611的另一版本或副本。其他拓撲和/或設(shè)備也可以被用于構(gòu)建本發(fā)明的可替換實施例。上述實施例僅是示例性的,而非限定性的,并且應(yīng)根據(jù)權(quán)利要求確定本發(fā)明的邊界。雖然上文已經(jīng)具體描述了本發(fā)明的優(yōu)選實施例,應(yīng)清楚理解的是,對于本領(lǐng)域的技術(shù)人員可能顯而易見的此處所教導的基本發(fā)明性概念的許多更改和/或修改,將仍落入如隨附的權(quán)利要求所限定的本發(fā)明的精神和范圍內(nèi)。權(quán)利要求1.一種操作計算機的方法,包括將第一0/S(操作系統(tǒng))加載到存儲器中;將第二0/S(操作系統(tǒng))加載到存儲器中;安裝由所述第二0/S控制的第一FS(文件系統(tǒng));安裝由所述第一0/S只讀訪問的所述第一FS;將從由所述第一0/S控制的應(yīng)用程序?qū)懭氲亩鄠€數(shù)據(jù)重定向到由所述第一0/S控制的日志;恢復所述第二0/S的執(zhí)行,以及將所述日志應(yīng)用于所述第二0/S的上下文中的所述第一FS。2.根據(jù)權(quán)利要求1所述的方法,其中所述第一FS是NTFS(新技術(shù)文件系統(tǒng))。3.根據(jù)權(quán)利要求1所述的方法,其中,所述恢復按照ACPI(高級配置與電源接口)狀態(tài)變化。4.根據(jù)權(quán)利要求1所述的方法,其中將所述日志存儲在影子虛擬文件系統(tǒng)中。5.根據(jù)權(quán)利要求1所述的方法,進一步包括從所述日志和所述第一FS的聯(lián)合,重定向被讀入由所述第一0/S控制的所述應(yīng)用程序的多個數(shù)據(jù)。6.根據(jù)權(quán)利要求1所述的方法,其中,所述將所述日志應(yīng)用于所述第一FS進一步包括在所述第二0/S的上下文中的所述日志上,執(zhí)行一致性或有效性檢查。7.根據(jù)權(quán)利要求1所述的方法,進一步包括在將所述日志應(yīng)用于在所述第二0/S的上下文中的所述第一FS未決時,延緩在所述第二0/S的上下文中的所述第一FS的事務(wù)。8.根據(jù)權(quán)利要求1所述的方法,其中所述日志被包括在第二FS內(nèi)。9.根據(jù)權(quán)利要求8所述的方法,其中所述第一FS是NTFS類型,并且所述第二FS是FAT32(文件分配表32位)類型。10.根據(jù)權(quán)利要求1所述的方法,其中上下文按照多個ACPI狀態(tài)變化,在第一和第二0/S之間連續(xù)交替。11.一種計算機程序產(chǎn)品,包括具有編碼于其中的指令的至少一個計算機可讀介質(zhì),所述指令當被至少一個處理器執(zhí)行時導致所述至少一個處理器依照包括下列動作的步驟進行操作將第一0/S(操作系統(tǒng))加載到存儲器中;將第二0/S(操作系統(tǒng))加載到存儲器中;安裝由所述第二0/S控制的第一FS(文件系統(tǒng));安裝由所述第一0/S只讀訪問的所述第一FS;將從由所述第一0/S控制的應(yīng)用程序?qū)懭氲亩鄠€數(shù)據(jù),重定向到由所述第一0/S控制的日志;恢復所述第二0/S的執(zhí)行,以及將所述日志應(yīng)用于所述第二0/S的上下文中的所述第一FS。12.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述第一FS是NTFS(新技術(shù)文件系統(tǒng))。13.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述日志被存儲在影子虛擬文件系統(tǒng)中。14.一種方法,包括將信號調(diào)制到印在有形介質(zhì)中的電磁載波上或者從所述電磁載波解調(diào)所述信號的動作,所述信號具有編碼于其中的指令,所述指令當被至少一個處理器執(zhí)行時導致所述至少一個處理器依照包括下列動作的步驟進行操作將第一0/S(操作系統(tǒng))加載到存儲器中;將第二0/S(操作系統(tǒng))加載到存儲器中;安裝由所述第二0/S控制的第一FS(文件系統(tǒng));安裝由所述第一0/S只讀訪問的所述第一FS;將從由所述第一0/S控制的應(yīng)用程序?qū)懭氲亩鄠€數(shù)據(jù),重定向到由所述第一0/S控制的日志;恢復所述第二0/S的執(zhí)行,以及將所述日志應(yīng)用于所述第二0/S的上下文中的所述第一FS。15.根據(jù)權(quán)利要求14所述的方法,其中所述第一FS是NTFS(新技術(shù)文件系統(tǒng))。16.根據(jù)權(quán)利要求14所述的方法,其中所述恢復是按照ACPI(高級配置與電源接口)狀態(tài)變化。17.一種電子設(shè)備,包括控制器;以及具有編碼于其中的指令的第一系統(tǒng)存儲器,所述指令當被所述控制器執(zhí)行時導致所述控制器依照包括下列動作的步驟進行操作將第一0/S(操作系統(tǒng))加載到存儲器中;將第二0/S(操作系統(tǒng))加載到存儲器中;安裝由所述第二0/S控制的第一FS(文件系統(tǒng));安裝由所述第一0/S只讀訪問的所述第一FS;將從由所述第一0/S控制的應(yīng)用程序?qū)懭氲亩鄠€數(shù)據(jù),重定向到由所述第一0/S控制的日志;恢復所述第二0/S的執(zhí)行,以及將所述日志應(yīng)用于所述第二0/S的上下文中的所述第一FS。18.根據(jù)權(quán)利要求17所述的電子設(shè)備,其中所述第一FS是NTFS(新技術(shù)文件系統(tǒng))。19.根據(jù)權(quán)利要求17所述的電子設(shè)備,其中所述恢復按照ACPI(高級配置與電源接口)狀態(tài)變化。20.根據(jù)權(quán)利要求17所述的電子設(shè)備,其中將所述日志存儲在影子虛擬文件系統(tǒng)中。全文摘要公開了用于管理、激活以及控制在計算裝置內(nèi)或在單一計算機操作會話或上下文內(nèi)的兩個或更多O/S(操作系統(tǒng))等之中的文件系統(tǒng)共享的方法、系統(tǒng)、裝置和程序產(chǎn)品。提供了即使在多個O/S的至少一個不具有考慮其他O/S存在的特征的情況下的文件系統(tǒng)的日志記載和再同步。文檔編號G06F9/445GK102473089SQ201080037987公開日2012年5月23日申請日期2010年8月27日優(yōu)先權(quán)日2009年8月27日發(fā)明者高拉夫B.,V.R.馬哈瓦D.,布拉姆利R.申請人:惠普發(fā)展公司有限責任合伙企業(yè)