專利名稱:一種面向進程的虛擬文件系統(tǒng)的建立方法
技術(shù)領域:
本發(fā)明屬于計算機領域,主要關(guān)注提高進程與操作系統(tǒng)的安全性。
背景技術(shù):
目前提高進程與操作系統(tǒng)的安全性主要采用Chroot方法,將進程限制在操作系統(tǒng)中全局文件系統(tǒng)的指定目錄下,該指定目錄下對進程而言全部可以按權(quán)限訪問到。該方法對進程可以訪問的文件及目錄的控制過于粗放,同時在處理不當情況下會限制進程的正常訪問要求。
發(fā)明內(nèi)容
本發(fā)明目的是為了提高進程與操作系統(tǒng)的安全性,提供一種面向進程的虛擬文件系統(tǒng)的建立方法。與chroot方法不同的是,本發(fā)明不是將進程限制在操作系統(tǒng)中全局文件系統(tǒng)的指定目錄下,而是面向進程建立一個完全屬于該進程訪問空間的虛擬文件系統(tǒng)(成為進程虛擬文件系統(tǒng)),該進程虛擬文件系統(tǒng)由分散在操作系統(tǒng)中文件系統(tǒng)的多個目錄在邏輯上組成一個完整的虛擬文件系統(tǒng)。1.本發(fā)明提供的面向進程的虛擬文件系統(tǒng)的建立方法,包括具體步驟如下:第1、建立進程的“進程虛擬文件系統(tǒng)配置文件”;“進程虛擬文件系統(tǒng)配置文件”給定了 “進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的目錄及文件之間的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。第2、編輯“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的目錄及文件之間的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。第3、進程運行時需指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)在內(nèi)存中建立該進程的“進程虛擬文件系統(tǒng)配置表”,并導入該進程的“進程虛擬文件系統(tǒng)配置文件”的“進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;操作系統(tǒng)在該進程的全局控制塊中設定該“進程虛擬文件系統(tǒng)配置表”標識符,從而該進程所能訪問的文件系統(tǒng)為剛設定的“進程虛擬文件系統(tǒng)”;進程能直接訪問的文件系統(tǒng)是“進程虛擬文件系統(tǒng)”而不是操作系統(tǒng)中全局文件系統(tǒng)。第4、進程對“進程虛擬文件系統(tǒng)”進行文件操作時,操作系統(tǒng)通過該進程的全局控制塊中的“進程虛擬文件系統(tǒng)配置表”標識符在內(nèi)存中找到對應的“進程虛擬文件系統(tǒng)配置表”,并進一步根據(jù)該“進程虛擬文件系統(tǒng)配置表”中存儲的映射關(guān)系,將進程所要訪問的“進程虛擬文件系統(tǒng)”中的文件操作轉(zhuǎn)化為對操作系統(tǒng)中全局文件系統(tǒng)的對應文件的訪問操作。按照本發(fā)明提供的建立方法,第I步驟所述的“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱;“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱;“進程虛擬文件系統(tǒng)配置文件”至少要給定“進程虛擬文件系統(tǒng)”的根目錄與操作系統(tǒng)中全局文件系統(tǒng)的給定目錄的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置文件”中新的子目錄及文件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。按照本發(fā)明提供的建立方法,每個進程對應一個“進程虛擬文件系統(tǒng)配置文件”;多個進程允許對應同一個“進程虛擬文件系統(tǒng)配置文件”,此時多個進程訪問的文件系統(tǒng)涉及到“進程虛擬文件系統(tǒng)配置文件”中所指明的目錄是同一個目錄、所指明的文件是同一文件。按照本發(fā)明提供的建立方法,映射關(guān)系指明了“進程虛擬文件系統(tǒng)”中目錄和操作系統(tǒng)中全局文件系統(tǒng)的目錄的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”中目錄簡稱為虛擬目錄,操作系統(tǒng)中全局文件系統(tǒng)的目錄簡稱為映射目錄;映射關(guān)系也支持“進程虛擬文件系統(tǒng)”的文件和操作系統(tǒng)中全局文件系統(tǒng)的文件的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”的文件簡稱為虛擬文件,操作系統(tǒng)中全局文件系統(tǒng)的文件簡稱為映射文件;映射關(guān)系的基本信息包括由虛擬目錄及文件和映射目錄及文件的二元組組成;“進程虛擬文件系統(tǒng)”中的有且唯一有一個虛擬根目錄,“進程虛擬文件系統(tǒng)”的虛擬根目錄為該“進程虛擬文件系統(tǒng)”中所有一級子目錄及文件和該“進程虛擬文件系統(tǒng)”所屬的“進程虛擬文件系統(tǒng)配置文件”中根目錄對應的映射目錄下所有一級子目錄及文件的合集。按照本發(fā)明提供的建立方法,權(quán)限關(guān)系指明了進程訪問進程虛擬文件系統(tǒng)中某個目錄的權(quán)限,權(quán)限關(guān)系包括只讀(R)、寫(W)、查找(S)、執(zhí)行(X)基本關(guān)系以及基本關(guān)系基礎上的組合關(guān)系。按照本發(fā)明提供的建立方法,擴展訪問規(guī)則指明了進程訪問“進程虛擬文件系統(tǒng)”中特定目錄和特定文件的限制,擴展訪問規(guī)則包括能訪問的具體文件和目錄、不能訪問的具體文件和目錄基本規(guī)則;擴展訪問規(guī)則支持正則表達式;擴展訪問規(guī)則為空時標明對特定目錄和特定文件無限制。按照本發(fā)明提供的建立方法,操作系統(tǒng)根據(jù)每一個“進程虛擬文件系統(tǒng)配置文件”信息在內(nèi)存中創(chuàng)建對應的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”;“進程虛擬文件系統(tǒng)配置表”包括進程虛擬文件系統(tǒng)配置表標識符、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針、進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)、進程虛擬文件系統(tǒng)配置關(guān)系表指針、下一個進程虛擬文件系統(tǒng)配置表指針、上一個進程虛擬文件系統(tǒng)配置表指針基本信息;“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”中存儲所有使用該“進程虛擬文件系統(tǒng)配置表”的進程標識符信息,進程總數(shù)由“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)標明;“進程虛擬文件系統(tǒng)配置關(guān)系表”中存儲進程虛擬文件系統(tǒng)根目錄與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;新的子目錄及文件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置關(guān)系表”中信息與對應的“進程虛擬文件系統(tǒng)配置文件”中數(shù)據(jù)一致。按照本發(fā)明提供的建立方法,操作系統(tǒng)中所有的“進程虛擬文件系統(tǒng)配置表”組成“進程虛擬文件系統(tǒng)配置表”鏈表,操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”指向“進程虛擬文件系統(tǒng)配置表”鏈表的第一個“進程虛擬文件系統(tǒng)配置表”的首地址;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”鏈表方式;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)配置關(guān)系表”,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表方式。按照本發(fā)明提供的建立方法,進程運行前、運行過程中都允許動態(tài)指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)重新設定該進程的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”,從而重新設定進程的進程虛擬文件系統(tǒng)與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。本發(fā)明的優(yōu)點和積極效果:本發(fā)明為每個進程都提供了一個虛擬文件系統(tǒng),即進程虛擬文件系統(tǒng);一方面由于進程虛擬文件系統(tǒng)由分散在操作系統(tǒng)中文件系統(tǒng)的多個目錄在邏輯上組成一個完整的虛擬文件系統(tǒng),從而為進程提供了一個客戶定制化的文件系統(tǒng);另一方面,進程之間的虛擬文件系統(tǒng)彼此隔離,從而能夠有效提高進程與操作系統(tǒng)的安全性,限制惡意進程對操作系統(tǒng)中全局文件系統(tǒng)的破壞力。
圖1是本發(fā)明中進程虛擬文件系統(tǒng)與操作系統(tǒng)中文件系統(tǒng)的對應關(guān)系示意圖。圖2是本發(fā)明中進程虛擬文件系統(tǒng)配置文件實例示意圖。圖3是本發(fā)明中進程虛擬文件系統(tǒng)配置表示意圖。圖4是本發(fā)明中進程虛擬文件系統(tǒng)配置表鏈表實例示意圖。圖5是本發(fā)明中進程虛擬文件系統(tǒng)配置關(guān)系表實例示意圖。圖6是本發(fā)明中進程虛擬文件系統(tǒng)配置關(guān)系表鏈表結(jié)構(gòu)示意圖。圖7是本發(fā)明中進程虛擬文件系統(tǒng)配置關(guān)系表鏈表實例示意圖。圖8是本發(fā)明中進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表實例示意圖。圖9是本發(fā)明中進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表鏈表示意圖。
具體實施例方式本發(fā)明提供了一種面向進程的虛擬文件系統(tǒng)的建立方法。該方法具體步驟如下:第1、建立進程的“進程虛擬文件系統(tǒng)配置文件” 100 ;“進程虛擬文件系統(tǒng)配置文件”給定了“進程虛擬文件系統(tǒng)”310的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)210的目錄及文件之間的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。第2、編輯“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)” 310的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)210的目錄及文件之間的映射關(guān)系(即虛擬目錄110和映射目錄120對應關(guān)系)、權(quán)限關(guān)系以及擴展訪問規(guī)則。第3、進程運行時需指定“進程虛擬文件系統(tǒng)配置文件” 100,操作系統(tǒng)在內(nèi)存中建立該進程的“進程虛擬文件系統(tǒng)配置表” 400,并導入該進程的“進程虛擬文件系統(tǒng)配置文件” 100的“進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;操作系統(tǒng)200在該進程300的全局控制塊中設定該“進程虛擬文件系統(tǒng)配置表”標識符,從而該進程所能訪問的文件系統(tǒng)為剛設定的“進程虛擬文件系統(tǒng)”;進程能直接訪問的文件系統(tǒng)是“進程虛擬文件系統(tǒng)”而不是操作系統(tǒng)中全局文件系統(tǒng)310。第4、進程300對“進程虛擬文件系統(tǒng)”進行文件操作時,操作系統(tǒng)200通過該進程的全局控制塊中的“進程虛擬文件系統(tǒng)配置表”標識符在內(nèi)存中找到對應的“進程虛擬文件系統(tǒng)配置表” 460,并進一步根據(jù)該“進程虛擬文件系統(tǒng)配置表” 460中存儲的映射關(guān)系,將進程300所要訪問的“進程虛擬文件系統(tǒng)”310中的文件操作轉(zhuǎn)化為對操作系統(tǒng)中全局文件系統(tǒng)的對應文件210的訪問操作。為能進一步了解本發(fā)明的技術(shù)內(nèi)容、特點及功效,茲列舉以下應用實例,并配合附圖詳細說明如下:按照本發(fā)明提供的建立方法,所述的“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱;“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱進程虛擬文件系統(tǒng)配置文件”至少要給定“進程虛擬文件系統(tǒng)”的根目錄與操作系統(tǒng)中全局文件系統(tǒng)的給定目錄的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置文件”中新的子目錄及文件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。如圖2所示,“進程虛擬文件系統(tǒng)配置文件”中給定進程虛擬文件系統(tǒng)根目錄、子目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。按照本發(fā)明提供的建立方法,每個進程對應一個“進程虛擬文件系統(tǒng)配置文件”;多個進程允許對應同一個“進程虛擬文件系統(tǒng)配置文件”,此時多個進程訪問的文件系統(tǒng)涉及到“進程虛擬文件系統(tǒng)配置文件”中所指明的目錄是同一個目錄、所指明的文件是同一文件。如圖2所示,“進程虛擬文件系統(tǒng)配置文件”可以對應多個進程,但每個進程只能對應一個“進程虛擬文件系統(tǒng)配置文件”。按照本發(fā)明提供的建立方法,映射關(guān)系指明了“進程虛擬文件系統(tǒng)”中目錄和操作系統(tǒng)中全局文件系統(tǒng)的目錄的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”中目錄簡稱為虛擬目錄,操作系統(tǒng)中全局文件系統(tǒng)的目錄簡稱為映射目錄;映射關(guān)系也支持“進程虛擬文件系統(tǒng)”的文件和操作系統(tǒng)中全局文件系統(tǒng)的文件的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”的文件簡稱為虛擬文件,操作系統(tǒng)中全局文件系統(tǒng)的文件簡稱為映射文件;映射關(guān)系的基本信息包括由虛擬目錄及文件和映射目錄及文件的二元組組成;“進程虛擬文件系統(tǒng)”中的有且唯一有一個虛擬根目錄,“進程虛擬文件系統(tǒng)”的虛擬根目錄為該“進程虛擬文件系統(tǒng)”中所有一級子目錄及文件和該“進程虛擬文件系統(tǒng)”所屬的“進程虛擬文件系統(tǒng)配置文件”中根目錄對應的映射目錄下所有一級子目錄及文件的合集。按照本發(fā)明提供的建立方法,權(quán)限關(guān)系指明了進程訪問進程虛擬文件系統(tǒng)中某個目錄的權(quán)限,權(quán)限關(guān)系包括只讀(R)、寫(W)、查找(S)、執(zhí)行(X)基本關(guān)系以及基本關(guān)系基礎上的組合關(guān)系。按照本發(fā)明提供的建立方法,擴展訪問規(guī)則指明了進程訪問“進程虛擬文件系統(tǒng)”中特定目錄和特定文件的限制,擴展訪問規(guī)則包括能訪問的具體文件和目錄、不能訪問的具體文件和目錄基本規(guī)則;擴展訪問規(guī)則支持正則表達式;擴展訪問規(guī)則為空時標明對特定目錄和特定文件無限制。如圖2所示,某進程所能訪問到的進程虛擬文件系統(tǒng)的根(/)目錄為操作系統(tǒng)上全局文件系統(tǒng)的/home/user 1/tmp目錄,且對除*.exe以外的文件有讀和寫權(quán)利,對*.exe文件不可見;某進程所能訪問到的進程虛擬文件系統(tǒng)的/bin目錄為操作系統(tǒng)上全局件系統(tǒng)的/usr/bin目錄,僅具有讀和執(zhí)行權(quán)利;某進程所能訪問到的進程虛擬文件系統(tǒng)的/Iib目錄為操作系統(tǒng)上全局文件系統(tǒng)的/usr/local/lib目錄,僅具對/lib*, so文件有讀權(quán)利,其它文件不可見。某進程除上述三個目錄外,不能訪問操作系統(tǒng)上真實文件系統(tǒng)的其它目錄,從而有效降低了某進程對操作系統(tǒng)上真實文件系統(tǒng)的破壞能力。按照本發(fā)明提供的建立方法,操作系統(tǒng)根據(jù)每一個“進程虛擬文件系統(tǒng)配置文件”信息在內(nèi)存中創(chuàng)建對應的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”;“進程虛擬文件系統(tǒng)配置表”包括進程虛擬文件系統(tǒng)配置表標識符、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針、進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)、進程虛擬文件系統(tǒng)配置關(guān)系表指針、下一個進程虛擬文件系統(tǒng)配置表指針、上一個進程虛擬文件系統(tǒng)配置表指針基本信息;“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”中存儲所有使用該“進程虛擬文件系統(tǒng)配置表”的進程標識符信息,進程總數(shù)由“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)標明;“進程虛擬文件系統(tǒng)配置關(guān)系表”中存儲進程虛擬文件系統(tǒng)根目錄與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;新的子目錄及文件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置關(guān)系表”中信息與對應的“進程虛擬文件系統(tǒng)配置文件”中數(shù)據(jù)一致。如圖3所示,“進程虛擬文件系統(tǒng)配置表”400包括進程虛擬文件系統(tǒng)配置表標識符、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針、進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)、進程虛擬文件系統(tǒng)配置關(guān)系表指針、下一個進程虛擬文件系統(tǒng)配置表指針、上一個進程虛擬文件系統(tǒng)配置表指針基本信息。進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針指向了“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”450。進程虛擬文件系統(tǒng)配置關(guān)系表指針指向了“進程虛擬文件系統(tǒng)配置關(guān)系表” 460。如圖4所示,進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”。該進程虛擬文件系統(tǒng)配置表的首地址為0X8E201000,進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)為4,進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針值為OxSEOOlOOO,進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)為3,進程虛擬文件系統(tǒng)配置關(guān)系表指針值為0X8E101000 ;該進程虛擬文件系統(tǒng)配置表下一個進程虛擬文件系統(tǒng)配置表指針值為0x8E201100,該進程虛擬文件系統(tǒng)配置表上一個進程虛擬文件系統(tǒng)配置表指針值為0x8E201200。按照本發(fā)明提供的建立方法,操作系統(tǒng)中所有的“進程虛擬文件系統(tǒng)配置表”組成“進程虛擬文件系統(tǒng)配置表”鏈表,操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”指向“進程虛擬文件系統(tǒng)配置表”鏈表的第一個“進程虛擬文件系統(tǒng)配置表”的首地址;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”鏈表方式;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)配置關(guān)系表”,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表方式。如圖4所示,操作系統(tǒng)中所有的“進程虛擬文件系統(tǒng)配置表”組成“進程虛擬文件系統(tǒng)配置表”鏈表,操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”指向“進程虛擬文件系統(tǒng)配置表”鏈表的第一個“進程虛擬文件系統(tǒng)配置表”的首地址。操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”的值為0x8E201000,該值為第一個“進程虛擬文件系統(tǒng)配置表”(其進程虛擬文件系統(tǒng)配置表標識符為I)的首地址;操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”找到第一個“進程虛擬文件系統(tǒng)配置表”(首地址為0X8E201000),該“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)配置表標識符為
I;由進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”中的下一個進程虛擬文件系統(tǒng)配置表指針值為0x8E201100,找到第二個“進程虛擬文件系統(tǒng)配置表”(首地址為0x8E201100),該“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)配置表標識符為2 ;由進程虛擬文件系統(tǒng)配置表標識符為2的“進程虛擬文件系統(tǒng)配置表”中的下一個進程虛擬文件系統(tǒng)配置表指針值為0x8E201200,找到第三個“進程虛擬文件系統(tǒng)配置表”(首地址為0x8E201200),該“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)配置表標識符為3 ;由進程虛擬文件系統(tǒng)配置表標識符為3的“進程虛擬文件系統(tǒng)配置表”中的下一個進程虛擬文件系統(tǒng)配置表指針值為0X8E201000,找到第一個“進程虛擬文件系統(tǒng)配置表”(首地址為0x8E201000),該“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)配置表標識符為1,從而遍歷了整個“進程虛擬文件系統(tǒng)配置表”鏈表;反之從任意一個“進程虛擬文件系統(tǒng)配置表”中的上一個進程虛擬文件系統(tǒng)配置表指針找,可以遍歷整個“進程虛擬文件系統(tǒng)配置表”鏈表。如圖5所示,進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”的“進程虛擬文件系統(tǒng)配置關(guān)系表”,即首地址為0x8E101000的“進程虛擬文件系統(tǒng)配置關(guān)系表”,它采用“進程虛擬文件系統(tǒng)配置關(guān)系表”數(shù)組方式實現(xiàn)?!斑M程虛擬文件系統(tǒng)配置關(guān)系表”存儲進程虛擬文件系統(tǒng)根目錄與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;新的子目錄和文件將覆蓋原目錄的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;首地址為0x8E101000的“進程虛擬文件系統(tǒng)配置關(guān)系表”460中信息與對應的“進程虛擬文件系統(tǒng)配置文件”100中數(shù)據(jù)一致,即與圖2 —致,詳細信息同“進程虛擬文件系統(tǒng)配置文件”,不贅述。如圖6所示,“進程虛擬文件系統(tǒng)配置關(guān)系表”也允許采用“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表方式實現(xiàn),此時“進程虛擬文件系統(tǒng)配置關(guān)系表”需包括虛擬目錄、映射目錄、權(quán)限關(guān)系、擴展訪問規(guī)則、下一個進程虛擬文件系統(tǒng)配置關(guān)系表指針和上一個進程虛擬文件系統(tǒng)配置關(guān)系表指針信息。如圖7所示,進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”的“進程虛擬文件系統(tǒng)配置關(guān)系表”,即首地址為0x8E101000的“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表,它的第一個“進程虛擬文件系統(tǒng)配置關(guān)系表”首地址為0X8E101000,第一個“進程虛擬文件系統(tǒng)配置關(guān)系表”的下一個進程虛擬文件系統(tǒng)配置關(guān)系表指針值為0X8E101200,從而找到第二個“進程虛擬文件系統(tǒng)配置關(guān)系表”;第二個“進程虛擬文件系統(tǒng)配置關(guān)系表”的下一個進程虛擬文件系統(tǒng)配置關(guān)系表指針值為0x8E101400,從而找到第三個“進程虛擬文件系統(tǒng)配置關(guān)系表”;第三個“進程虛擬文件系統(tǒng)配置關(guān)系表”的下一個進程虛擬文件系統(tǒng)配置關(guān)系表指針值為0X8E101000,從而找到第一個“進程虛擬文件系統(tǒng)配置關(guān)系表”,從而遍歷了整個“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表;反之從任意一個“進程虛擬文件系統(tǒng)配置關(guān)系表”中的上一個進程虛擬文件系統(tǒng)配置關(guān)系表指針找,可以遍歷整個“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表?!斑M程虛擬文件系統(tǒng)配置關(guān)系表”的總數(shù)在進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)標明。如圖8所示,進程虛擬文件系統(tǒng)配置表標識符為I的“進程虛擬文件系統(tǒng)配置表”的“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”,即首地址為OxSEOOlOOO的“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”,它采用“進程虛擬文件系統(tǒng)配置關(guān)系表”數(shù)組方式實現(xiàn)?!斑M程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”存儲所有使用該“進程虛擬文件系統(tǒng)配置表”的進程標識符信息,進程總數(shù)由“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)標明;首地址為OxSEOOlOOO的“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”450中存儲著三個進程的進程標識符101、122、96。如圖9所示,“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”也允許采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”鏈表方式實現(xiàn),此時“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”需包括進程標識符、下一個進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針和上一個進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針信息。按照本發(fā)明提供的建立方法,進程運行前、運行過程中都允許動態(tài)指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)重新設定該進程的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”,從而重新設定進程的進程虛擬文件系統(tǒng)與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。當進程運行前、運行過程中都允許動態(tài)指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)重新設定該進程的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”,如圖3、4所示。進程的后繼運行時所訪問的虛擬文件系統(tǒng)為操作系統(tǒng)最新設定的與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則??紤]到在此公開的對本發(fā)明的描述和特例的實施例,本發(fā)明的其他實施例對于本領域的技術(shù)人員來說是顯而意見的。這些說明和實施例僅作為例子來考慮,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種面向進程的虛擬文件系統(tǒng)構(gòu)建方法,其特征在于,所述方法包括具體步驟如下: 第1、建立進程的“進程虛擬文件系統(tǒng)配置文件”;“進程虛擬文件系統(tǒng)配置文件”給定了 “進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的目錄及文件之間的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則; 第2、編輯“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的目錄及文件之間的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則; 第3、進程運行時需指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)在內(nèi)存中建立該進程的“進程虛擬文件系統(tǒng)配置表”,并導入該進程的“進程虛擬文件系統(tǒng)配置文件”的“進程虛擬文件系統(tǒng)”的目錄及文件與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;操作系統(tǒng)在該進程的全局控制塊中設定該“進程虛擬文件系統(tǒng)配置表”標識符,從而該進程所能訪問的文件系統(tǒng)為剛設定的“進程虛擬文件系統(tǒng)”;進程能直接訪問的文件系統(tǒng)是“進程虛擬文件系統(tǒng)”而不是操作系統(tǒng)中全局文件系統(tǒng); 第4、進程對“進程虛擬文件系統(tǒng)”進行文件操作時,操作系統(tǒng)通過該進程的全局控制塊中的“進程虛擬文件系統(tǒng)配置表”標識符在內(nèi)存中找到對應的“進程虛擬文件系統(tǒng)配置表”,并進一步根據(jù)該“進程虛擬文件系統(tǒng)配置表”中存儲的映射關(guān)系,將進程所要訪問的“進程虛擬文件系統(tǒng)”中的文件操作轉(zhuǎn)化為對操作系統(tǒng)中全局文件系統(tǒng)的對應文件的訪問操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱;“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的目錄是“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的根目錄和“進程虛擬文件系統(tǒng)配置文件”中“進程虛擬文件系統(tǒng)”的子目錄的統(tǒng)稱;“進程虛擬文件系統(tǒng)配置文件”至少要給定“進程虛擬文件系統(tǒng)”的根目錄與操作系統(tǒng)中全局文件系統(tǒng)的給定目錄的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置文件”中新的子目錄及文 件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個進程對應一個“進程虛擬文件系統(tǒng)配置文件”;多個進程允許對應同一個“進程虛擬文件系統(tǒng)配置文件”,此時多個進程訪問的文件系統(tǒng)涉及到“進程虛擬文件系統(tǒng)配置文件”中所指明的目錄是同一個目錄、所指明的文件是同一文件。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的映射關(guān)系指明了“進程虛擬文件系統(tǒng)”中目錄和操作系統(tǒng)中全局文件系統(tǒng)的目錄的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”中目錄簡稱為虛擬目錄,操作系統(tǒng)中全局文件系統(tǒng)的目錄簡稱為映射目錄;映射關(guān)系也支持“進程虛擬文件系統(tǒng)”的文件和操作系統(tǒng)中全局文件系統(tǒng)的文件的對應關(guān)系,其中“進程虛擬文件系統(tǒng)”的文件簡稱為虛擬文件,操作系統(tǒng)中全局文件系統(tǒng)的文件簡稱為映射文件;映射關(guān)系的基本信息包括由虛擬目錄及文件和映射目錄及文件的二元組組成;“進程虛擬文件系統(tǒng)”中的有且唯一有一個虛擬根目錄,“進程虛擬文件系統(tǒng)”的虛擬根目錄為該“進程虛擬文件系統(tǒng)”中所有一級子目錄及文件和該“進程虛擬文件系統(tǒng)”所屬的“進程虛擬文件系統(tǒng)配置文件”中根目錄對應的映射目錄下所有一級子目錄及文件的合集。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的權(quán)限關(guān)系指明了進程訪問進程虛擬文件系統(tǒng)中某個目錄的權(quán)限,權(quán)限關(guān)系包括只讀(R)、寫(W)、查找(S)、執(zhí)行(X)基本關(guān)系以及基本關(guān)系基礎上的組合關(guān)系。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的擴展訪問規(guī)則指明了進程訪問“進程虛擬文件系統(tǒng)”中特定目錄和特定文件的限制,擴展訪問規(guī)則包括能訪問的具體文件和目錄、不能訪問的具體文件和目錄基本規(guī)則;擴展訪問規(guī)則支持正則表達式;擴展訪問規(guī)則為空時標明對特定目錄和特定文件無限制。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,操作系統(tǒng)根據(jù)每一個“進程虛擬文件系統(tǒng)配置文件”信息在內(nèi)存中創(chuàng)建對應的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”;“進程虛擬文件系統(tǒng)配置表”包括進程虛擬文件系統(tǒng)配置表標識符、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)、進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表指針、進程虛擬文件系統(tǒng)配置關(guān)系總數(shù)、進程虛擬文件系統(tǒng)配置關(guān)系表指針、下一個進程虛擬文件系統(tǒng)配置表指針、上一個進程虛擬文件系統(tǒng)配置表指針基本信息;“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”中存儲所有使用該“進程虛擬文件系統(tǒng)配置表”的進程標識符信息,進程總數(shù)由“進程虛擬文件系統(tǒng)配置表”的進程虛擬文件系統(tǒng)關(guān)聯(lián)進程總數(shù)標明;“進程虛擬文件系統(tǒng)配置關(guān)系表”中存儲進程虛擬文件系統(tǒng)根目錄與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;新的子目錄及文件將覆蓋原目錄及文件的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則;“進程虛擬文件系統(tǒng)配置關(guān)系表”中信息與對應的“進程虛擬文件系統(tǒng)配置文件”中數(shù)據(jù)一致。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,操作系統(tǒng)中所有的“進程虛擬文件系統(tǒng)配置表”組成“進程虛擬文件系統(tǒng)配置表”鏈表,操作系統(tǒng)中全局內(nèi)存變量“進程虛擬文件系統(tǒng)配置表首指針”指向“進程虛擬文件系統(tǒng)配置表”鏈表的第一個“進程虛擬文件系統(tǒng)配置表”的首地址;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”鏈表方式;對于屬于同一個“進程虛擬文件系統(tǒng)配置表”的所有“進程虛擬文件系統(tǒng)配置關(guān)系表”,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”數(shù)組方式,或者采用“進程虛擬文件系統(tǒng)配置關(guān)系表”鏈表方式。
9.根據(jù)權(quán)利要求7所述 的方法,其特征在于,進程運行前、運行過程中都允許動態(tài)指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)重新設定該進程的“進程虛擬文件系統(tǒng)配置表”、“進程虛擬文件系統(tǒng)關(guān)聯(lián)進程表”和“進程虛擬文件系統(tǒng)配置關(guān)系表”,從而重新設定進程的進程虛擬文件系統(tǒng)與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系、權(quán)限關(guān)系以及擴展訪問規(guī)則。
全文摘要
本發(fā)明公開了一種面向進程的虛擬文件系統(tǒng)構(gòu)建方法,屬于計算機領域。面向進程的虛擬文件系統(tǒng)構(gòu)建方法包括建立“進程虛擬文件系統(tǒng)配置文件”來存儲進程虛擬文件系統(tǒng)與操作系統(tǒng)中全局文件系統(tǒng)的映射關(guān)系;進程運行時需指定“進程虛擬文件系統(tǒng)配置文件”,操作系統(tǒng)在內(nèi)存中建立該進程的“進程虛擬文件系統(tǒng)配置表”,并導入該進程的“進程虛擬文件系統(tǒng)配置文件”的數(shù)據(jù);進程的文件操作由操作系統(tǒng)通過該進程的“進程虛擬文件系統(tǒng)配置表”的映射關(guān)系轉(zhuǎn)化為對操作系統(tǒng)中全局文件系統(tǒng)的對應文件的操作。本發(fā)明能夠有效地實現(xiàn)不同進程之間文件系統(tǒng)的邏輯或者物理隔離,從而降低進程對操作系統(tǒng)中全局文件系統(tǒng)的破壞程度,提高全局文件系統(tǒng)的安全性。
文檔編號G06F17/30GK103116612SQ201310030050
公開日2013年5月22日 申請日期2013年1月25日 優(yōu)先權(quán)日2013年1月25日
發(fā)明者李旭東 申請人:南開大學