專利名稱:一種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及跨存儲(chǔ)器及運(yùn)行環(huán)境的文件系統(tǒng)管理。
背景技術(shù):
很多小型智能設(shè)備具備一些小容量存儲(chǔ)部件,可以用來存儲(chǔ)少量信息,例如儲(chǔ)存卡、U盤、移動(dòng)硬盤等。 這些存儲(chǔ)部件的信息一般需要組織成文件系統(tǒng),但由于文件系統(tǒng)本身的復(fù)雜性和存儲(chǔ)技術(shù)的差異,實(shí)現(xiàn)一個(gè)文件系統(tǒng)的代價(jià)相對(duì)較高。另外如果文件系統(tǒng)需要遷移到其他的系統(tǒng)上運(yùn)行,則通常需要具備與文件系統(tǒng)向同樣或兼容的運(yùn)行環(huán)境,遷移成本也很高昂。為解決復(fù)雜文件系統(tǒng)在不同運(yùn)行環(huán)境不同存儲(chǔ)技術(shù)之間的遷移和移植問題,需要一種合理將各種差異隔離的設(shè)計(jì)方法。
發(fā)明內(nèi)容
基于此,本發(fā)明的目的是提供一種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,該方法提供抽象邏輯存儲(chǔ)器能夠?qū)⑽募到y(tǒng)的各種差異隔離,便于文件系統(tǒng)的遷移和移植。
因此,本發(fā)明針對(duì)所要解決的技術(shù)問題通過一個(gè)抽象層將存儲(chǔ)器的差異隔離,在此抽象層上實(shí)現(xiàn)一個(gè)小型文件系統(tǒng),保持較好的可移植性,同時(shí)滿足在不同運(yùn)行環(huán)境上遷移的需要。 本發(fā)明的另一個(gè)目的在于提供一種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,該方法具有較高的存儲(chǔ)效率,能夠降低文件遷移和移植成本。
基于此,本發(fā)明是這樣實(shí)現(xiàn)的 —種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,該方法將邏輯存儲(chǔ)器設(shè)計(jì)為3層結(jié)構(gòu),底層為物理存儲(chǔ)器訪問層,該層提供到物理存儲(chǔ)器的訪問方法;中間層為抽象邏輯存儲(chǔ)器層,該層向上層提供一個(gè)線性的邏輯存儲(chǔ)塊列表,并提供讀寫操作;上層是文件系統(tǒng)的實(shí)現(xiàn)層,包括磁盤、分區(qū)、目錄、文件形成的樹形結(jié)構(gòu)。 該物理存儲(chǔ)器訪問層向上層提供一個(gè)統(tǒng)一的抽象為塊設(shè)備接口,包含查詢物理存儲(chǔ)信息,讀取/寫入一個(gè)物理塊等操作。 不同的物理存儲(chǔ)系統(tǒng)可采用不同的技術(shù)實(shí)現(xiàn)此接口,例如flash存儲(chǔ)器使用
Flash控制器的命令來實(shí)現(xiàn),而磁盤存儲(chǔ)器則可使用BIOS中的IO操作來實(shí)現(xiàn)。 在具體應(yīng)用中,并不要求三層都同時(shí)運(yùn)行在同一環(huán)境中,完全可以根據(jù)實(shí)際需要
通過代理的方式將具體層次分布到不同的運(yùn)行環(huán)境。 抽象邏輯存儲(chǔ)器使用物理存儲(chǔ)器訪問層提供的抽象塊設(shè)備接口,向上層提供一個(gè)邏輯上線性連續(xù)的、固定塊大小的、可隨機(jī)訪問的虛擬存儲(chǔ)器。塊的大小可以自由定義,和物理塊大小無關(guān),從而可以根據(jù)具體應(yīng)用環(huán)境調(diào)整以達(dá)到較高的存儲(chǔ)效率;并定義邏輯塊和物理塊之間的映射關(guān)系,以及緩沖策略。 本發(fā)明采用抽象層將存儲(chǔ)器的差異隔離,在此抽象層上實(shí)現(xiàn)一個(gè)小型文件系統(tǒng),
3保持較好的可移植性,同時(shí)滿足在不同運(yùn)行環(huán)境上遷移的需要,解決了復(fù)雜文件系統(tǒng)在不 同運(yùn)行環(huán)境不同存儲(chǔ)技術(shù)之間的遷移和移植問題。
圖1為本發(fā)明構(gòu)成邏輯存儲(chǔ)器的框圖,
圖2為本發(fā)明所實(shí)現(xiàn)的文件系統(tǒng)存儲(chǔ)結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施作詳細(xì)說明。 圖1所示,本發(fā)明首先設(shè)計(jì)3層的邏輯存儲(chǔ)器,其中底層是物理存儲(chǔ)器訪問層,該 物理存儲(chǔ)器訪問層向上層提供一個(gè)統(tǒng)一的抽象為塊設(shè)備接口 ,包含查詢物理存儲(chǔ)信息,讀 取/寫入一個(gè)物理塊等操作。 作為一種最簡單的實(shí)現(xiàn)示例,我們可定義上述塊設(shè)備的接口操作如下
A、初始化設(shè)備此操作完成設(shè)備的初始化或重置; B、獲取塊設(shè)備信息包括設(shè)備含多少塊、每塊多少字節(jié)、第一個(gè)可用塊的索引(可
以只使用實(shí)際存儲(chǔ)器的部分來做文件系統(tǒng));
C、讀取一個(gè)塊中的數(shù)據(jù);
D、寫入數(shù)據(jù)到一個(gè)塊中。 不同的物理存儲(chǔ)系統(tǒng)可采用不同的技術(shù)實(shí)現(xiàn)此接口,例如flash存儲(chǔ)器使用 Flash控制器的命令來實(shí)現(xiàn),而磁盤存儲(chǔ)器則可使用BIOS中的10操作來實(shí)現(xiàn)。
重新實(shí)現(xiàn)該接口可達(dá)到在不同的物理存儲(chǔ)器和存儲(chǔ)技術(shù)之間移植本系統(tǒng)的目 的。由于采用抽象接口,實(shí)際的存儲(chǔ)器不必是真正的塊設(shè)備。通過通信協(xié)議實(shí)現(xiàn)的該層可 以完成跨設(shè)備、跨系統(tǒng)的文件存儲(chǔ),例如將文件系統(tǒng)運(yùn)行在PC上而物理存儲(chǔ)建立在手持 設(shè)備中。例如在我們現(xiàn)有的一個(gè)應(yīng)用中,文件系統(tǒng)和抽象邏輯存儲(chǔ)器層都運(yùn)行于PC上的 Windows操作系統(tǒng)中,而物理訪問層則是運(yùn)行于基于ARM的嵌入式系統(tǒng),兩者之間通過USB 接口通信,PC側(cè)不需要了解嵌入式系統(tǒng)具體的存儲(chǔ)器件(目前使用的是Nand Flash)類型 和操作方式,只需要按協(xié)議將塊設(shè)備接口操作命令通過USB通道封包傳送即可。同樣的方 式也可以實(shí)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)。 中間層是抽象邏輯存儲(chǔ)器,抽象邏輯存儲(chǔ)器使用物理存儲(chǔ)器訪問層提供的抽象塊 設(shè)備接口,向上層提供一個(gè)邏輯上線性連續(xù)的、固定塊大小的、可隨機(jī)訪問的虛擬存儲(chǔ)器。
塊的大小可以在此層自由定義,和物理塊大小無關(guān),從而可以根據(jù)具體應(yīng)用環(huán)境調(diào)整以達(dá) 到較高的存儲(chǔ)效率。 該中間層內(nèi)部定義邏輯塊和物理塊之間的映射關(guān)系,此映射關(guān)系的不同實(shí)現(xiàn)策略 可用來完成諸如寫均衡等物理存儲(chǔ)器保護(hù)技術(shù)以及其他特別的機(jī)制。 另外此層還定義了緩沖策略,可實(shí)現(xiàn)按需加載物理數(shù)據(jù),同時(shí)可靈活定義緩沖提 交到物理存儲(chǔ)器的策略,達(dá)到對(duì)物理存儲(chǔ)器的最小訪問,提高整個(gè)系統(tǒng)的性能。對(duì)于安全性 較高的系統(tǒng),此層可實(shí)現(xiàn)加密存儲(chǔ)。 上層是文件系統(tǒng)的實(shí)現(xiàn)層,包括磁盤、分區(qū)、目錄、文件形成的樹形結(jié)構(gòu);抽象邏輯 存儲(chǔ)器向上層提供一個(gè)線性的邏輯存儲(chǔ)塊列表,并提供讀寫操作。
具體的文件系統(tǒng)構(gòu)成如圖2所示,文件系統(tǒng)基于邏輯存儲(chǔ)器的線性塊設(shè)備存儲(chǔ)模 型建立自己的文件管理系統(tǒng)。 首先,文件系統(tǒng)按照磁盤一分區(qū)一目錄一文件的層次組成邏輯樹狀結(jié)構(gòu)。 一個(gè)邏 輯存儲(chǔ)器被當(dāng)作一個(gè)磁盤,文件系統(tǒng)在該磁盤上的存儲(chǔ)結(jié)構(gòu)如下在邏輯存儲(chǔ)器的第一個(gè) 塊頭部存放文件系統(tǒng)頭,緊跟著若干個(gè)分區(qū)索引頭; 邏輯存儲(chǔ)器被定義為若干分區(qū),分區(qū)被定義成若干各連續(xù)的塊,分區(qū)索引頭中包 含該分區(qū)的起始和終止塊編號(hào);在分區(qū)起始?jí)K中包含分區(qū)信息; 分區(qū)信息包含分區(qū)頭、根目錄及空閑塊信息;如果格式化,空閑塊在格式化時(shí)被組 織成單向鏈表結(jié)構(gòu),可快速分配和釋放; 根目錄有包括有目錄頭及若干登記表項(xiàng),目錄頭包含目錄的首個(gè)存儲(chǔ)塊編號(hào)及名 稱時(shí)間戳等信息,后面跟隨一個(gè)子目錄或文件的登記表項(xiàng),每個(gè)登記表項(xiàng)中都包含指向一 個(gè)子目錄或文件的第一個(gè)存儲(chǔ)塊編號(hào),如果子目錄或文件過多,無法在一個(gè)塊內(nèi)存儲(chǔ)所有 的登記表項(xiàng),則將該塊中存儲(chǔ)的最后一個(gè)登記表項(xiàng)標(biāo)記為一個(gè)鏈接,其中塊編號(hào)表示存儲(chǔ) 文件登記表的下一個(gè)塊;文件存儲(chǔ)采用和目錄類似的結(jié)構(gòu),只是其中的登記表項(xiàng)每一項(xiàng)都 表示一個(gè)數(shù)據(jù)存儲(chǔ)塊編號(hào)。 該實(shí)施方式,設(shè)立了抽象邏輯存儲(chǔ)器和抽象接口 ,將存儲(chǔ)器的差異隔離,通過通信 協(xié)議實(shí)現(xiàn)的該層可以完成跨設(shè)備、跨系統(tǒng)的文件存儲(chǔ),使復(fù)雜文件系統(tǒng)在不同運(yùn)行環(huán)境不 同存儲(chǔ)技術(shù)之間都具有良好的遷移性和移植性。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于該方法將邏輯存儲(chǔ)器設(shè)置為三層,底層為物理訪問層,對(duì)上層提供一個(gè)統(tǒng)一的塊設(shè)備接口;中間層為邏輯線性塊設(shè)備抽象層,向上層提供隨機(jī)訪問存儲(chǔ)能力,并定義各種映射/緩沖策略;上層為文件系統(tǒng),采用樹狀存儲(chǔ)結(jié)構(gòu)管理磁盤、分區(qū)、目錄及文件。
2. 如權(quán)利要求1所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于物理存儲(chǔ)器訪問層向上層提供一個(gè)統(tǒng)一的抽象為塊設(shè)備接口 ,包含查詢物理存儲(chǔ)信息,讀取/寫入一個(gè)物理塊等操作。
3. 如權(quán)利要求1所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于抽象邏輯存儲(chǔ)器使用物理存儲(chǔ)器訪問層提供的抽象塊設(shè)備接口,向上層提供一個(gè)邏輯上線性連續(xù)的、固定塊大小的、可隨機(jī)訪問的虛擬存儲(chǔ)器。
4. 如權(quán)利要求3所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于塊的大小可以自由定義,并定義邏輯塊和物理塊之間的映射關(guān)系,以及緩沖策略。
5. 如權(quán)利要求1所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于邏輯存儲(chǔ)器被定義為若干分區(qū),分區(qū)被定義成若干各連續(xù)的塊,分區(qū)索引頭中包含該分區(qū)的起始和終止塊編號(hào);在分區(qū)起始?jí)K中包含分區(qū)信息;分區(qū)信息包含分區(qū)頭、根目錄及空閑塊信息;如果格式化,空閑塊在格式化時(shí)被組織成單向鏈表結(jié)構(gòu)。
6. 如權(quán)利要求5所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于根目錄有包括有目錄頭及若干登記表項(xiàng),目錄頭包含目錄的首個(gè)存儲(chǔ)塊編號(hào)及名稱時(shí)間戳信息,后面跟隨一個(gè)子目錄或文件的登記表項(xiàng),每個(gè)登記表項(xiàng)中都包含指向一個(gè)子目錄或文件的第一個(gè)存儲(chǔ)塊編號(hào),如果子目錄或文件過多,無法在一個(gè)塊內(nèi)存儲(chǔ)所有的登記表項(xiàng),則將該塊中存儲(chǔ)的最后一個(gè)登記表項(xiàng)標(biāo)記為一個(gè)鏈接,其中塊編號(hào)表示存儲(chǔ)文件登記表的下一個(gè)塊;文件存儲(chǔ)采用和目錄類似的結(jié)構(gòu),只是其中的登記表項(xiàng)每一項(xiàng)都表示一個(gè)數(shù)據(jù)存儲(chǔ)塊編號(hào)。
7. 如權(quán)利要求1所述的用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,其特征在于上層是文件系統(tǒng)的實(shí)現(xiàn)層,包括磁盤、分區(qū)、目錄、文件形成的樹形結(jié)構(gòu);抽象邏輯存儲(chǔ)器向上層提供一個(gè)線性的邏輯存儲(chǔ)塊列表,并提供讀寫操作。
全文摘要
本發(fā)明是一種用于邏輯存儲(chǔ)器的文件系統(tǒng)管理方法,該方法將邏輯存儲(chǔ)器設(shè)計(jì)為三層結(jié)構(gòu),底層為物理存儲(chǔ)器訪問層,該層提供到物理存儲(chǔ)器的訪問方法;中間層為抽象邏輯存儲(chǔ)器層,該層向上層提供一個(gè)線性的邏輯存儲(chǔ)塊列表,并提供讀寫操作;上層是文件系統(tǒng)的實(shí)現(xiàn)層,包括磁盤、分區(qū)、目錄、文件形成的樹形結(jié)構(gòu)。
文檔編號(hào)G06F17/30GK101706787SQ20091010979
公開日2010年5月12日 申請(qǐng)日期2009年11月20日 優(yōu)先權(quán)日2009年11月20日
發(fā)明者管小鵬 申請(qǐng)人:深圳市中興移動(dòng)通信有限公司