一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法
【專利摘要】本發(fā)明公開了一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法,該方法包括:獲取本宿主系統(tǒng)文件及其注冊表信息;修改所獲取的文件及其注冊表的相關(guān)權(quán)限;創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接。采用本發(fā)明提供的方法創(chuàng)建虛擬機操作系統(tǒng)的系統(tǒng)層可從宿主系統(tǒng)分離出干凈的系統(tǒng)文件,為虛擬機正常運轉(zhuǎn)提供支撐服務(wù)。
【專利說明】一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬計算機【技術(shù)領(lǐng)域】,具體地說,涉及一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法。
【背景技術(shù)】
[0002]為了打造輕量級虛擬機、快捷的虛擬機、穩(wěn)定的虛擬機、獨立可攜帶的虛擬機,首先,輕量級就代表著我們的虛擬機占用的空間非常小,小巧方便。在一定前提條件下,在占用存儲空間小于IOM的虛擬操作系統(tǒng)VOS可以虛擬出一個當(dāng)前的操作系統(tǒng),由于所有的系統(tǒng)文件需要使用本地資源,但是如果大量的使用本地資源就和之前定位的虛擬機特性發(fā)生沖突,具體如下:
[0003]第一、對于“穩(wěn)定的虛擬機”,大量的共用本地資源,如果本地發(fā)生某些更改,會影響當(dāng)前正在使用的用戶,單說一項注冊表就不可能實時同步到用戶中去,這就造成了不可預(yù)知的影響,也就是不穩(wěn)定。
[0004]第二、對于“可移植的虛擬機”,例如,機器PCl有運行庫A,當(dāng)VOS里安裝某款軟件,這款軟件需要A的支持,但是其檢測到本地有運行庫A,所以安裝時不會安裝A,當(dāng)移植到PC2后,因為系統(tǒng)層是動態(tài)模擬PC2創(chuàng)建的,而此時PC2并沒有A,這時之前安裝的那款軟件就會出現(xiàn)問題,會彈出丟失某某運行庫的錯誤。
[0005]第三、對于“快捷的虛擬機”,大量使用本地資源,同時還需要保證產(chǎn)生的一個干凈的操作系統(tǒng)給用戶,這樣就需要大量的過濾配置檔來指定某些目錄的過濾文件,過濾文件的龐大,增加了 VOS運行時的壓力,因為每一次三層合并的過程中都需要掃描相應(yīng)的過濾文件,所以說過濾文件的增大,會影響VOS的運行速率。
[0006]如何克服上述沖突中的部分或全部是需要解決面前的問題。
【發(fā)明內(nèi)容】
[0007]鑒于可構(gòu)建多個相互獨立的虛擬機的虛擬機系統(tǒng)中的情況,本發(fā)明提供一種虛擬機裝置的系統(tǒng)層構(gòu)建方法。
[0008]本發(fā)明提供的一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法,包括:
[0009]獲取本宿主系統(tǒng)文件及其注冊表信息;
[0010]修改所獲取的文件及其注冊表的相關(guān)權(quán)限;
[0011]創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接。
[0012]采用本發(fā)明提供的方法創(chuàng)建虛擬機操作系統(tǒng)的系統(tǒng)層可從宿主系統(tǒng)分離出干凈的系統(tǒng)文件,為虛擬機正常運轉(zhuǎn)提供支撐服務(wù)。
【專利附圖】
【附圖說明】
[0013]圖1是本發(fā)明提供的虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法流程圖。【具體實施方式】
[0014]鑒于要打造打快捷的虛擬機、穩(wěn)定的虛擬機、輕量級虛擬機、獨立可攜帶的虛擬機,需要克服【背景技術(shù)】中所述的沖突中的部分或全部。因此本發(fā)明提出一種新的VOS系統(tǒng)層,就是一個支持獨立模式的系統(tǒng)層,此系統(tǒng)層除了 Windows目錄與WinSxs繼續(xù)使用本地資源,其他的文件系統(tǒng)則完全獨立出來,基于此以后還可完全獨立。
[0015]所謂系統(tǒng)層就是虛擬機裝置中最接近真實操作系統(tǒng)的一些系統(tǒng)基礎(chǔ)文件,這些文件是從本地的操作系統(tǒng)中提取出來作為虛擬機裝置的系統(tǒng)文件。比如,虛擬機裝置啟動之后桌面是什么、都包含哪些應(yīng)用程序,這些都取決于系統(tǒng)層是如何獲取的,可以把獲取的這些文件理解為虛擬機操作系統(tǒng)的鏡像。
[0016]通常,用戶首先要求的是產(chǎn)品穩(wěn)定與快捷,這是需要著重考慮并解決,至于輕量級和可攜帶在此基礎(chǔ)上產(chǎn)品的特定和亮點,所以系統(tǒng)層的設(shè)計方向也就大體確定下來,那就是保證運行穩(wěn)定的情況下,做到輕量級和可移植。
[0017]具體地說,穩(wěn)定和獨立是分不開的,既然要穩(wěn)定那必須就得完全獨立出來,盡量不依賴于本地資源,這樣的話也解決了移植攜帶的問題,但是這樣的弊端就是需要攜帶龐大的系統(tǒng)文件,可能對輕量級的定位產(chǎn)生了沖擊,但是對于多用戶同時使用的虛擬機系統(tǒng)而言,這種沖擊就微乎其微,因其系統(tǒng)層是共用的,也就是說一個服務(wù)器100人共用同一個系統(tǒng)層,那即使具有一個龐大的系統(tǒng)層也是可以接受的。
[0018]參照圖1,本發(fā)明提供的一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法,包括:
[0019]S01,獲取本宿主系統(tǒng)文件及其注冊表信息;
[0020]S02,修改所獲取的文件及其注冊表的相關(guān)權(quán)限;
[0021]S03,創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接。
[0022]具體實施方案中,上述步驟S01-S03中的獲取、創(chuàng)建或修改的步驟是通過系統(tǒng)數(shù)據(jù)庫實現(xiàn)的。
[0023]獲取系統(tǒng)層文件及其注冊表是通過數(shù)據(jù)庫來配置實現(xiàn)的,數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫、XML、INI文件等。具體地,通過數(shù)據(jù)庫,將系統(tǒng)必須使用到的一些系統(tǒng)運行庫、驅(qū)動文件、系統(tǒng)服務(wù)組件、系統(tǒng)自帶應(yīng)用、主題、字體等相關(guān)的系統(tǒng)文件全部提取出來。
[0024]通過數(shù)據(jù)庫,將系統(tǒng)必須使用到的一些系統(tǒng)運行庫信息、驅(qū)動文件信息、系統(tǒng)服務(wù)組件信息、系統(tǒng)自帶應(yīng)用信息、等相關(guān)的系統(tǒng)信息全部提取出來。
[0025]實施例中,本宿主系統(tǒng)文件具體包括:
[0026]系統(tǒng)必須使用到的系統(tǒng)運行庫、驅(qū)動文件、系統(tǒng)服務(wù)組件、系統(tǒng)自帶應(yīng)用、主題、字體;
[0027]所需獲取的注冊表信息具體包括:
[0028]系統(tǒng)運行庫信息、驅(qū)動文件信息、系統(tǒng)服務(wù)組件信息、系統(tǒng)自帶應(yīng)用信息、等相關(guān)的系統(tǒng)信息。
[0029]具體實施例中,若所述虛擬機操作系統(tǒng)為視窗Windows系統(tǒng),所述創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接具體包括:
[0030]對所獲取的文件創(chuàng)建的鏈接LINK為50個目錄鏈接(Juction)路徑和I個符號鏈接(symboliclink)路徑。
[0031]具體實施例中,若所述虛擬機操作系統(tǒng)為64位操作系統(tǒng),所述創(chuàng)建注冊表的相關(guān)鏈接具體包括:
[0032]采用Link的方式對64位注冊表視圖的若干32位Key進(jìn)行處理。
[0033]具體實施例中,修改所獲取的文件及其注冊表的相關(guān)權(quán)限具體為:
[0034]去除獲取系統(tǒng)文件及注冊表時用戶的權(quán)限;
[0035]基于所述操作系統(tǒng)本身的權(quán)限和屬性進(jìn)行設(shè)置。
[0036]其中所述相關(guān)鏈接為硬鏈接、目錄鏈接和/或符號鏈接。
[0037]在本發(fā)明的具體實施例中,虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法如下:
[0038]獲取系統(tǒng)層文件及其注冊表是通過數(shù)據(jù)庫來配置實現(xiàn)的,數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫、XML、INI文件等。
[0039]系統(tǒng)文件的提取:
[0040]通過數(shù)據(jù)庫,將系統(tǒng)必須使用到的一些系統(tǒng)運行庫、驅(qū)動文件、系統(tǒng)服務(wù)組件、系統(tǒng)自帶應(yīng)用、主題、字體等相關(guān)的系統(tǒng)文件全部提取出來。
[0041]注冊表的提取:
[0042]通過數(shù)據(jù)庫,將系統(tǒng)必須使用到的一些系統(tǒng)運行庫信息、驅(qū)動文件信息、系統(tǒng)服務(wù)組件信息、系統(tǒng)自帶應(yīng)用信息、等相關(guān)的系統(tǒng)信息全部提取出來。
[0043]提取文件后,制作鏈接(Link)
[0044]以windows操作系統(tǒng)為例,windows操作系統(tǒng)自帶的LINK為50個Juction路徑和I個symboliclink路徑,所以提取出的文件也需要對應(yīng)做相應(yīng)處理。
[0045]注冊表:在64位操作系統(tǒng)上,64位注冊表視圖有很多32位Key也是采用Link的方式做的處理,所以在抓取后的注冊表上也需要做對應(yīng)的Link處理。
[0046]文件權(quán)限的設(shè)置
[0047]創(chuàng)建目錄結(jié)構(gòu)必須遵循操作系統(tǒng)本身的權(quán)限和屬性,同時還需要去除獲取系統(tǒng)層文件時,當(dāng)前用戶的權(quán)限,并將它的權(quán)限變更為任意用戶(EveryOne),這樣所得到的系統(tǒng)層就可以通用了。
[0048]在此需要進(jìn)一步說明的是鏈接Link關(guān)系:
[0049]在VOS啟動前,采用外部程序創(chuàng)建VOS文件目錄的鏈接結(jié)構(gòu),系統(tǒng)層,模板層,用戶層這三層都需要創(chuàng)建。以前并沒有系統(tǒng)的查找遍歷操作系統(tǒng)Junction,而是通過人工測試的方式發(fā)現(xiàn)的文件Junction,有的還不太準(zhǔn)確,然后通過XML檔模擬了 6個文件Junction,這樣的話在虛擬環(huán)境制造了和本地文件系統(tǒng)Junction相似的一個假象。然而經(jīng)過深入檢查,文件連接遠(yuǎn)遠(yuǎn)多于之前所模擬的6個,而是50個目錄鏈接Juction和I個符號鏈接symboliclink,但是自己的VOS文件系統(tǒng)里并不打算采用symboliclink,因為測試發(fā)現(xiàn)符號鏈接symboliclink雖然支持網(wǎng)絡(luò)路徑,但是不支持目錄共享,這會對在網(wǎng)絡(luò)路徑上的用戶層訪問產(chǎn)生影響,而目錄鏈接Juction雖然不支持網(wǎng)絡(luò)路徑,但是支持目錄共享,這樣的話換種方式可以實現(xiàn)之前需求。這樣的話就可以用操作系統(tǒng)自己的方式來模擬相應(yīng)的系統(tǒng)層,不然的話就得在XML中增加51條虛實對應(yīng)關(guān)系了。
[0050]關(guān)于文件獨立性
[0051]這個獨立性主要體現(xiàn)在系統(tǒng)層,之前的做法是采用Junction或者symboliclink在一個空的目錄下模擬出一個干凈的系統(tǒng)層,而現(xiàn)在是完全將本地的應(yīng)用拷貝出來作為自己的系統(tǒng)文件,這樣的好處是:第一、符號鏈接對于網(wǎng)絡(luò)路徑會有隱患。第二、單純的Link雖說系統(tǒng)層輕巧,但還是用的本地文件,這樣的話還會經(jīng)常出現(xiàn)像MediaPlay那種版本號問題。不如將文件直接復(fù)制出來穩(wěn)健。
[0052]數(shù)據(jù)庫優(yōu)化
[0053]大大減少了 VOS的虛實路徑對應(yīng)關(guān)系數(shù)據(jù)庫,加快了 VOS運行速度,在查找和安裝應(yīng)用時效果明顯。
[0054]本發(fā)明雖然以示范性實施方案公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以本發(fā)明權(quán)利要求所界定的范圍為準(zhǔn)。
[0055]本發(fā)明雖然以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以本發(fā)明權(quán)利要求所界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種虛擬機操作系統(tǒng)的系統(tǒng)層構(gòu)建方法,其特征在于,包括: 獲取本宿主系統(tǒng)文件及其注冊表信息; 修改所獲取的文件及其注冊表的相關(guān)權(quán)限; 創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接。
2.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于, 所述獲取、創(chuàng)建或修改的步驟是通過系統(tǒng)數(shù)據(jù)庫實現(xiàn)的。
3.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于, 所述本宿主系統(tǒng)文件具體包括: 系統(tǒng)必須使用到的系統(tǒng)運行庫、驅(qū)動文件、系統(tǒng)服務(wù)組件、系統(tǒng)自帶應(yīng)用、主題、字體; 所需獲取的注冊表信息具體包括: 系統(tǒng)運行庫信息、驅(qū)動文件信息、系統(tǒng)服務(wù)組件信息、系統(tǒng)自帶應(yīng)用信息、等相關(guān)的系統(tǒng)信息。
4.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于,當(dāng)所述虛擬機操作系統(tǒng)為視窗Windows 系統(tǒng), 所述創(chuàng)建所獲取的文件及其注冊表的相關(guān)鏈接具體包括: 對所獲取的文件創(chuàng)建的鏈接為50個目錄鏈接Juction路徑和I個符號鏈接路徑。
5.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于,當(dāng)所述虛擬機操作系統(tǒng)為64位操作系統(tǒng), 所述創(chuàng)建注冊表的相關(guān)鏈接具體包括: 米用Link的方式對64位注冊表視圖的若干32位Key進(jìn)行處理。
6.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于, 修改所獲取的文件及其注冊表的相關(guān)權(quán)限具體為 去除獲取系統(tǒng)文件及注冊表時用戶的權(quán)限; 基于所述操作系統(tǒng)本身的權(quán)限和屬性進(jìn)行設(shè)置。
7.如權(quán)利要求1所述的系統(tǒng)層構(gòu)建方法,其特征在于,所述相關(guān)鏈接為硬鏈接、目錄鏈接和/或符號鏈接。
【文檔編號】G06F9/455GK103970740SQ201310027790
【公開日】2014年8月6日 申請日期:2013年1月24日 優(yōu)先權(quán)日:2013年1月24日
【發(fā)明者】不公告發(fā)明人 申請人:北京伸得緯科技有限公司, 國際伸得緯有限公司