專利名稱:一種閃存中的flash文件的管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種文件管理方法及系統(tǒng),特別涉及一種閃存中的FLASH文件的管理方法及系統(tǒng)。
背景技術(shù):
FLASH文件系統(tǒng),顧名思義就是采用閃存FLASH作為外存儲(chǔ)器實(shí)現(xiàn)的文件系統(tǒng)。因此,F(xiàn)LASH文件系統(tǒng)的實(shí)現(xiàn)就必須考慮閃存存儲(chǔ)器的特點(diǎn)。閃存存儲(chǔ)器由于具有存儲(chǔ)容量大、掉電數(shù)據(jù)不丟失以及可多次擦寫(xiě)等許多優(yōu)點(diǎn),正逐步取代其它半導(dǎo)體存儲(chǔ)器件而廣泛應(yīng)用于移動(dòng)電話、個(gè)人數(shù)字助理以及數(shù)碼相機(jī)等移動(dòng)電子產(chǎn)品中。其作為存儲(chǔ)數(shù)據(jù)和應(yīng)用程序的存儲(chǔ)體,可以將大量數(shù)據(jù)方便、快捷地移動(dòng)和交換。
FLASH文件系統(tǒng)多用于文件數(shù)量不多且操作簡(jiǎn)單的場(chǎng)合,如手機(jī)、通信設(shè)備等。在此類應(yīng)用上,文件數(shù)量不多,規(guī)模也較小,但是也需要有基本的文件操作功能,在這種需求下,產(chǎn)生了FLASH簡(jiǎn)單文件系統(tǒng)。FLASH文件系統(tǒng)的概念和一般意義上的文件系統(tǒng)沒(méi)有什么不同,用戶可以方便的打開(kāi)、關(guān)閉、讀、寫(xiě)文件數(shù)據(jù)。但是,F(xiàn)LASH文件系統(tǒng)所管理的空間和文件數(shù)量都遠(yuǎn)遠(yuǎn)小于一般操作系統(tǒng)所帶文件系統(tǒng),因此其實(shí)現(xiàn)應(yīng)該本著簡(jiǎn)單、實(shí)用、穩(wěn)定的原則。
現(xiàn)有技術(shù)在使用FLASH文件時(shí),一種是采用操作系統(tǒng)所帶的文件系統(tǒng)。但是它的不足在于不是所有操作系統(tǒng)所帶的文件系統(tǒng)都可以適用于閃存;同時(shí)由于FLASH文件需要?jiǎng)討B(tài)分配文件空間,易產(chǎn)生空間碎片,這是因?yàn)殚W存的底層技術(shù)不允許閃存中的任意地址空間被刪除,而是按照扇區(qū)為單位刪除,為此在刪除一個(gè)文件的時(shí)候,暫時(shí)沒(méi)有把整個(gè)文件所占的空間刪除,僅僅是在文件頭的標(biāo)識(shí)里作一個(gè)刪除標(biāo)識(shí),并保留在閃存中。這樣,被刪除文件積累到一定的數(shù)量時(shí),就會(huì)占用相當(dāng)大的空間。需要整理文件系統(tǒng)閃存空間,使被刪除文件占用的空間重新使用。所以這種技術(shù)方案需要額外的管理開(kāi)銷,這對(duì)于文件數(shù)量很少的應(yīng)用來(lái)說(shuō)既不必要又不穩(wěn)定。
現(xiàn)有技術(shù)的另一種技術(shù)方案是不使用文件系統(tǒng),直接調(diào)用FLASH文件驅(qū)動(dòng)的讀寫(xiě)接口操作數(shù)據(jù)。但這種方案下存在的不足是使用不方便,而且缺少很多文件操作的功能;由于直接調(diào)用FLASH文件底層的驅(qū)動(dòng)接口,對(duì)閃存的安全性也存有潛在威脅。
發(fā)明內(nèi)容
本發(fā)明提供了一種閃存中的FLASH文件的管理方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中存在的FLASH文件需要?jiǎng)討B(tài)分配文件空間,易產(chǎn)生空間碎片,導(dǎo)致因額外管理而帶來(lái)的不必要也不穩(wěn)定的問(wèn)題,還進(jìn)一步解決現(xiàn)有技術(shù)中FLASH文件使用不方便、不靈活,而且缺少很多文件操作的功能的不足;還解決由于直接調(diào)用FLASH文件底層的驅(qū)動(dòng)接口,對(duì)閃存的安全性存有的潛在威脅。
本發(fā)明提供的閃存中的FLASH文件的管理方法包括如下步驟根據(jù)FLASH文件第一屬性建立索引;用戶通過(guò)所述索引對(duì)FLASH文件進(jìn)行操作。
較佳地,所述FLASH文件第一屬性是文件長(zhǎng)度和/或文件名和/或起始地址和/或目錄名。
較佳地,所述索引在代碼中靜態(tài)規(guī)劃建立,和/或在文件系統(tǒng)初始化之前建立。
較佳地,進(jìn)一步包括如下步驟根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄,根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;所述用戶通過(guò)所述索引中的用戶基本句柄獲得對(duì)FLASH文件進(jìn)行操作的權(quán)限后,根據(jù)所述索引中的文件基本句柄對(duì)FLASH文件進(jìn)行操作。
較佳地,所述第二屬性是實(shí)際長(zhǎng)度和/或鎖標(biāo)志和/或用戶數(shù)和/或用戶標(biāo)識(shí)數(shù)組和/或緩存區(qū)指針和/或FLASH標(biāo)志。
較佳地,所述第三屬性是任務(wù)標(biāo)志和/或用戶標(biāo)識(shí)和/或訪問(wèn)模式和/或文件指針。
較佳地,進(jìn)一步包括如下步驟將FLASH文件中不需永久保存的數(shù)據(jù)保存至隨機(jī)存取存儲(chǔ)器。
較佳地,進(jìn)一步包括如下步驟為FLASH文件封裝文件操作驅(qū)動(dòng)接口;用戶通過(guò)所述驅(qū)動(dòng)接口對(duì)FLASH文件進(jìn)行操作。
較佳地,所述文件操作是創(chuàng)建文件、和/或打開(kāi)文件、和/或關(guān)閉文件、和/或讀文件、和/或?qū)懳募?、?或查找文件、和/或重定位文件指針、和/或刪除文件、和/或文件重命名、和/或獲取文件長(zhǎng)度。
較佳地,所述寫(xiě)文件操作是將文件寫(xiě)入閃存后返回,或立即返回后在后臺(tái)起一個(gè)任務(wù)用于將文件寫(xiě)入閃存。
本發(fā)明還提供了一種閃存中的FLASH文件的管理系統(tǒng),包括檢測(cè)模塊,檢測(cè)閃存中的FLASH文件屬性;索引模塊,根據(jù)FLASH文件第一屬性建立索引,用戶通過(guò)所述索引對(duì)FLASH文件進(jìn)行操作。
較佳地,所述索引模塊進(jìn)一步包括第一索引單元,用于根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄;第二索引單元,用于根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;所述用戶通過(guò)所述索引中的用戶基本句柄獲得對(duì)FLASH文件進(jìn)行操作的權(quán)限后,根據(jù)所述索引中的文件基本句柄對(duì)FLASH文件進(jìn)行操作。
較佳地,進(jìn)一步包括存儲(chǔ)模塊,用于將FLASH文件中不需永久保存的數(shù)據(jù)保存至隨機(jī)存取存儲(chǔ)器。
較佳地,進(jìn)一步包括接口封裝模塊,用于為FLASH文件封裝文件操作驅(qū)動(dòng)接口;用戶通過(guò)所述驅(qū)動(dòng)接口對(duì)FLASH文件進(jìn)行操作。
本發(fā)明有益效果如下由于本發(fā)明中采用了索引的方式,使得閃存空間能夠進(jìn)行靜態(tài)的劃分,不需要?jiǎng)討B(tài)管理,因此具有很好的穩(wěn)定性,避免了FLASH文件需要?jiǎng)討B(tài)分配文件空間,易產(chǎn)生空間碎片,導(dǎo)致因額外管理而帶來(lái)的不穩(wěn)定的不足。
本發(fā)明中還進(jìn)一步的將FLASH文件與用隨機(jī)存取存儲(chǔ)器RAM做的內(nèi)存文件空間統(tǒng)一管理,從而具有良好的靈活性。
本發(fā)明中還提供了標(biāo)準(zhǔn)文件訪問(wèn)接口,因此應(yīng)用不需要為此做特殊的改變;本發(fā)明中還通過(guò)封裝閃存底層驅(qū)動(dòng)來(lái)增加了FLASH文件的安全性和可靠性;顯然,在本發(fā)明中文件系統(tǒng)設(shè)計(jì)簡(jiǎn)單、實(shí)用,沒(méi)有多余的功能,穩(wěn)定性好;同時(shí)也具有良好的通用性,可以應(yīng)用于很多使用閃存作為文件存儲(chǔ)的場(chǎng)合。
圖1為實(shí)施例中所述閃存中FLASH文件管理方法的實(shí)施流程示意圖;圖2為實(shí)施例中所述FLASH文件空間結(jié)構(gòu)示意圖;圖3為實(shí)施例中所述文件索引表的結(jié)構(gòu)示意圖;圖4為實(shí)施例中所述文件句柄示意圖;圖5為實(shí)施例中所述FLASH文件接口示意圖;圖6為實(shí)施例中所述閃存中FLASH文件管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明根據(jù)閃存上的應(yīng)用簡(jiǎn)化實(shí)現(xiàn)方案,靜態(tài)規(guī)劃閃存上所有文件的空間,統(tǒng)一管理,從而達(dá)到簡(jiǎn)單、實(shí)用、穩(wěn)定的目的。本發(fā)明還將提供所有文件系統(tǒng)所具備的基本功能,包括文件的創(chuàng)建、打開(kāi)、關(guān)閉、讀、寫(xiě)、刪除、查找、定位等。下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施作出說(shuō)明。
圖1為本發(fā)明閃存中的FLASH文件的管理方法的實(shí)施流程示意圖,如圖所示,實(shí)施的流程為S101、檢測(cè)閃存中的FLASH文件;在該步驟中主要是收集閃存上所有必須的文件,并根據(jù)文件的使用需求確定文件的最大長(zhǎng)度,以此作為該文件在閃存上的空間劃分。為現(xiàn)在未曾使用、將來(lái)可能使用的文件預(yù)留空間,為以后升級(jí)等可能出現(xiàn)的要求做準(zhǔn)備。圖2為FLASH文件空間結(jié)構(gòu)示意圖,閃存的空間劃分如圖所示,文件在閃存上的存儲(chǔ)分兩部分,一部分是文件標(biāo)志頭,記錄文件是否存在、文件長(zhǎng)度等,另一部分為文件本身。
優(yōu)選實(shí)施中,可以將FLASH文件中不需保存的數(shù)據(jù)保存至RAM。這是考慮到某些文件不要長(zhǎng)期保存,只用于臨時(shí)存放,規(guī)劃一塊用RAM的內(nèi)存區(qū)作為文件管理系統(tǒng)空間的一部分,和閃存一起做統(tǒng)一管理。這是因?yàn)殚W存存儲(chǔ)器的寫(xiě)操作則和一般的存儲(chǔ)器有所不同,閃存的寫(xiě)操作必須先按存儲(chǔ)塊擦除(寫(xiě)入0xff到要擦除的存儲(chǔ)單元塊中),再按頁(yè)順序?qū)懭?,由于閃存存儲(chǔ)器擦除耗時(shí)較長(zhǎng),所以閃存存儲(chǔ)器寫(xiě)入的時(shí)間主要在于閃存存儲(chǔ)器內(nèi)部的擦除操作等,而內(nèi)存區(qū)文件可以頻繁擦寫(xiě),具有閃存不具備的優(yōu)點(diǎn),不過(guò)它不能永久保存,因此對(duì)于FLASH文件中使用到的臨時(shí)解壓文件、上下載過(guò)渡文件等具有效用。將FLASH文件和內(nèi)存文件結(jié)合進(jìn)行統(tǒng)一的空間管理,使得本發(fā)明具備了良好的靈活性。
S102、根據(jù)FLASH文件第一屬性建立索引;
由于建立索引的方式是多種多樣的,比如通過(guò)映射關(guān)系、建立索引庫(kù)、建立連接對(duì)應(yīng)關(guān)系等等,所以僅以文件索引表來(lái)建立索引為例進(jìn)行說(shuō)明。設(shè)計(jì)文件索引表是根據(jù)閃存中的FLASH文件第一屬性,第一屬性可以包括文件的最大長(zhǎng)度、目錄名、文件名、FLASH起始地址等參數(shù)。通過(guò)文件索引表可以查找文件,獲取文件屬性。由于本發(fā)明是靜態(tài)分配閃存空間的,所以此索引表不保存到閃存中每次動(dòng)態(tài)讀取,因?yàn)閯?dòng)態(tài)讀取索引表存在潛在的危險(xiǎn),因此文件索引表可以在代碼中靜態(tài)規(guī)劃,也可以通過(guò)在文件系統(tǒng)初始化之前重新分配來(lái)實(shí)現(xiàn)。圖3是文件索引表的結(jié)構(gòu)示意圖,實(shí)施例中文件索引表結(jié)構(gòu)如圖所示,包括了最大長(zhǎng)度、起始地址、文件名、目錄名、文件句柄。其中文件句柄是在另一優(yōu)選實(shí)施方式中使用的,在下面將會(huì)對(duì)文件句柄的具體實(shí)施方式
進(jìn)行說(shuō)明。
S103、根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄;S104、根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;在上述文件句柄中包括文件基本句柄與用戶基本句柄,在設(shè)計(jì)文件基本句柄和用戶基本句柄時(shí)分別根據(jù)第二屬性和第三屬性,文件基本句柄和文件的第二屬性一一對(duì)應(yīng),記錄文件的一切重要屬性,包括文件長(zhǎng)度、鎖標(biāo)志、緩存、用戶標(biāo)識(shí)等等。用戶基本句柄對(duì)應(yīng)于用戶的第三屬性,每個(gè)文件可以被多個(gè)用戶同時(shí)打開(kāi),用戶基本句柄用于保證多個(gè)用戶不沖突的訪問(wèn)文件。操作文件都從獲得句柄開(kāi)始,句柄機(jī)制保障了對(duì)文件的操作安全合法。創(chuàng)建文件和打開(kāi)文件就是分配句柄的接口,而關(guān)閉文件是釋放句柄的接口。圖4為文件句柄示意圖,文件句柄結(jié)構(gòu)如圖4所示,其中文件基本句柄內(nèi)容包括文件實(shí)際長(zhǎng)度、鎖標(biāo)志、用戶數(shù)、用戶標(biāo)識(shí)數(shù)組、緩存區(qū)指針、FLASH標(biāo)志等等,用戶基本句柄內(nèi)容則包括任務(wù)標(biāo)志、用戶標(biāo)識(shí)、訪問(wèn)模式、文件指針等內(nèi)容。
S105、為FLASH文件封裝文件操作驅(qū)動(dòng)接口;
封裝FLASH文件操作驅(qū)動(dòng)接口是為了提供文件操作的接口,提高它的易用性與通用性,這些操作包括創(chuàng)建文件、打開(kāi)文件、關(guān)閉文件、讀文件、寫(xiě)文件、查找文件、重定位文件指針、刪除文件、文件的重命名、獲取文件長(zhǎng)度等等。其中,寫(xiě)文件操作采用緩存機(jī)制,既可以用阻塞式(寫(xiě)入閃存后才返回),也可以采用非阻塞式(立即返回,后臺(tái)起一個(gè)任務(wù)用于寫(xiě)閃存)。可以根據(jù)應(yīng)用的不同做相應(yīng)選擇。圖5為FLASH文件接口示意圖,如圖所示,簡(jiǎn)單文件系統(tǒng)對(duì)外提供的接口可以有創(chuàng)建文件(SFS_Create)、打開(kāi)文件(SFS_Open)、關(guān)閉文件(SFS_Close)、讀文件(SFS_Read)、寫(xiě)文件(SFS_Write)、查找文件(SFS_Find)、重定位文件指針(SFS_Lseek)、刪除文件(SFS_Deletefile)、文件重命名(SFS_Rename)、獲取文件長(zhǎng)度(SFS_Filelength)、查找第一個(gè)文件(SFS_Findfirst)、查找下一個(gè)文件(SFS_Findnext)、查找并關(guān)閉打開(kāi)的文件(SFS_Findclose)、移動(dòng)文件(SFS_Movefile)、獲取文件打開(kāi)模式(SFS_Getfilemode)、獲取文件屬性(SFS_Fsattrib)等接口。用戶通過(guò)這些驅(qū)動(dòng)接口就可以很容易的對(duì)FLASH文件進(jìn)行操作了。
基于同樣的發(fā)明構(gòu)思,本發(fā)明還提供了一種閃存中的FLASH文件的管理系統(tǒng),下面結(jié)合附圖對(duì)本系統(tǒng)的實(shí)施作出說(shuō)明。
圖6為本發(fā)明閃存中FLASH文件管理系統(tǒng)的結(jié)構(gòu)示意圖,如圖所示,系統(tǒng)中包括檢測(cè)模塊601、索引模塊602、存儲(chǔ)模塊603、接口封裝模塊604,在索引模塊602中還可以進(jìn)一步包括第一索引單元、第二索引單元。下面對(duì)各模塊的具體實(shí)施作出說(shuō)明。
檢測(cè)模塊檢測(cè)閃存中的FLASH文件屬性后,索引模塊根據(jù)FLASH文件第一屬性建立索引,用戶通過(guò)索引對(duì)FLASH文件進(jìn)行操作。
收集閃存上所有必須的文件,并根據(jù)文件的使用需求確定文件的最大長(zhǎng)度,以此作為該文件在閃存上的空間劃分。為現(xiàn)在未曾使用、將來(lái)可能使用的文件預(yù)留空間,為以后升級(jí)等可能出現(xiàn)的要求做準(zhǔn)備。文件在閃存上的存儲(chǔ)分兩部分,一部分是文件標(biāo)志頭,記錄文件是否存在、文件長(zhǎng)度等,另一部分為文件本身。
由于建立索引的方式是多種多樣的,所以以下同樣僅以文件索引表來(lái)建立索引為例進(jìn)行說(shuō)明。設(shè)計(jì)文件索引表是根據(jù)所記錄的文件第一屬性,第一屬性可以包括最大長(zhǎng)度、目錄名、文件名、FLASH起始地址等參數(shù)。通過(guò)文件索引表可以查找文件,獲取文件屬性。由于本發(fā)明是靜態(tài)分配閃存空間的,所以此索引表不保存到閃存中每次動(dòng)態(tài)讀取,因?yàn)閯?dòng)態(tài)讀取索引表存在潛在的危險(xiǎn),因此文件索引表可以在代碼中靜態(tài)規(guī)劃,也可以在文件系統(tǒng)初始化之前重新分配。實(shí)施例中文件索引表結(jié)構(gòu)包括了最大長(zhǎng)度、起始地址、文件名、目錄名、文件句柄。其中文件句柄是在優(yōu)選實(shí)施方式中使用的,在下面將會(huì)對(duì)文件句柄的具體實(shí)施方式
進(jìn)行說(shuō)明。
優(yōu)選實(shí)施中,索引模塊中第一索引單元用于根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄;第二索引單元用于根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;用戶通過(guò)索引中的用戶基本句柄獲得對(duì)FLASH文件進(jìn)行操作的權(quán)限后,根據(jù)索引中的文件基本句柄對(duì)FLASH文件進(jìn)行操作。
在上述文件句柄中包括文件基本句柄與用戶基本句柄,在設(shè)計(jì)文件基本句柄和用戶基本句柄時(shí)分別根據(jù)第二屬性和第三屬性,文件基本句柄和文件的第二屬性一一對(duì)應(yīng),記錄文件的重要屬性,包括文件長(zhǎng)度、鎖標(biāo)志、緩存、用戶標(biāo)識(shí)等等。用戶基本句柄對(duì)應(yīng)于用戶的第三屬性,每個(gè)文件可以被多個(gè)用戶同時(shí)打開(kāi),用戶基本句柄用于保證多個(gè)用戶不沖突的訪問(wèn)文件。操作文件都從獲得句柄開(kāi)始,句柄機(jī)制保障了對(duì)文件的操作安全合法。創(chuàng)建文件和打開(kāi)文件就是分配句柄的接口,而關(guān)閉文件是釋放句柄的接口。其中文件基本句柄內(nèi)容包括文件實(shí)際長(zhǎng)度、鎖標(biāo)志、用戶數(shù)、用戶標(biāo)識(shí)數(shù)組、緩存區(qū)指針、FLASH標(biāo)志等等,用戶基本句柄內(nèi)容則包括任務(wù)標(biāo)志、用戶標(biāo)識(shí)、訪問(wèn)模式、文件指針等內(nèi)容。
優(yōu)選實(shí)施中,存儲(chǔ)模塊用于將FLASH文件中不需保存的數(shù)據(jù)保存至隨機(jī)存取存儲(chǔ)器RAM。
可以將FLASH文件中不需保存的數(shù)據(jù)保存至RAM。這是考慮到某些文件不要長(zhǎng)期保存,只用于臨時(shí)存放,規(guī)劃一塊用RAM的內(nèi)存區(qū)作為文件管理系統(tǒng)空間的一部分,和閃存一起做統(tǒng)一管理。這是因?yàn)殚W存存儲(chǔ)器的寫(xiě)操作則和一般的存儲(chǔ)器有所不同,閃存的寫(xiě)操作必須先按存儲(chǔ)塊擦除(寫(xiě)入0xff到要擦除的存儲(chǔ)單元塊中),再按頁(yè)順序?qū)懭?,由于閃存存儲(chǔ)器擦除耗時(shí)較長(zhǎng),所以閃存存儲(chǔ)器寫(xiě)入的時(shí)間主要在于閃存存儲(chǔ)器內(nèi)部的擦除操作等,而內(nèi)存區(qū)文件可以頻繁擦寫(xiě),具有閃存不具備的優(yōu)點(diǎn),不過(guò)它不能永久保存,因此對(duì)于臨時(shí)解壓文件、上下載過(guò)渡文件等具有效用。將FLASH文件和內(nèi)存文件結(jié)合進(jìn)行統(tǒng)一的空間管理,使得本發(fā)明具備了良好的靈活性。
優(yōu)選實(shí)施中,還可以進(jìn)一步包括接口封裝模塊用于為FLASH文件封裝文件操作驅(qū)動(dòng)接口;用戶通過(guò)驅(qū)動(dòng)接口對(duì)FLASH文件進(jìn)行操作。
封裝FLASH文件操作驅(qū)動(dòng)接口是為了提供文件操作的接口,提高它的易用性與通用性,這些操作包括創(chuàng)建文件、打開(kāi)文件、關(guān)閉文件、讀文件、寫(xiě)文件、查找文件、重定位文件指針、刪除文件、文件的重命名、獲取文件長(zhǎng)度等等。其中,寫(xiě)文件操作采用緩存機(jī)制,既可以用阻塞式(寫(xiě)入閃存后才返回),也可以采用非阻塞式(立即返回,后臺(tái)起一個(gè)任務(wù)用于寫(xiě)閃存)??梢愿鶕?jù)應(yīng)用的不同做相應(yīng)選擇。簡(jiǎn)單文件系統(tǒng)對(duì)外提供的接口可以有創(chuàng)建文件(SFS_Create)、打開(kāi)文件(SFS_Open)、關(guān)閉文件(SFS_Close)、讀文件(SFS_Read)、寫(xiě)文件(SFS_Write)、查找文件(SFS_Find)、重定位文件指針(SFS_Lseek)、刪除文件(SFS_Deletefile)、文件重命名(SFS_Rename)、獲取文件長(zhǎng)度(SFS_Filelength)、查找第一個(gè)文件(SFS_Findfirst)、查找下一個(gè)文件(SFS_Findnext)、查找并關(guān)閉打開(kāi)的文件(SFS_Findclose)、移動(dòng)文件(SFS_Movefile)、獲取文件打開(kāi)模式(SFS_Getfilemode)、獲取文件屬性(SFS_Fsattrib)等接口。用戶通過(guò)這些驅(qū)動(dòng)接口就可以很容易的對(duì)FLASH文件進(jìn)行操作了。
由上述實(shí)施,可以看出本發(fā)明中提供標(biāo)準(zhǔn)文件訪問(wèn)接口,應(yīng)用不需要為此做特殊的改變;封裝FLASH底層驅(qū)動(dòng),增加安全性和可靠性;文件系統(tǒng)設(shè)計(jì)簡(jiǎn)單、實(shí)用,沒(méi)有多余的功能,穩(wěn)定性好;通用性好,可以應(yīng)用于很多使用閃存作為文件存儲(chǔ)的場(chǎng)合。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種閃存中的FLASH文件的管理方法,其特征在于,包括如下步驟根據(jù)FLASH文件第一屬性建立索引;用戶根據(jù)所述索引對(duì)FLASH文件進(jìn)行操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述FLASH文件第一屬性是文件長(zhǎng)度和/或文件名和/或起始地址和/或目錄名。
3.如權(quán)利要求1所述的方法,其特征在于,所述索引在代碼中靜態(tài)規(guī)劃建立,和/或在文件系統(tǒng)初始化之前建立。
4.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄,根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;所述用戶根據(jù)所述索引中的用戶基本句柄獲得對(duì)FLASH文件進(jìn)行操作的權(quán)限后,根據(jù)所述索引中的文件基本句柄對(duì)FLASH文件進(jìn)行操作。
5.如權(quán)利要求4所述的方法,其特征在于,所述第二屬性是實(shí)際長(zhǎng)度和/或鎖標(biāo)志和/或用戶數(shù)和/或用戶標(biāo)識(shí)數(shù)組和/或緩存區(qū)指針和/或FLASH標(biāo)志。
6.如權(quán)利要求4所述的方法,其特征在于,所述第三屬性是任務(wù)標(biāo)志和/或用戶標(biāo)識(shí)和/或訪問(wèn)模式和/或文件指針。
7.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括如下步驟將FLASH文件中不需永久保存的數(shù)據(jù)保存至隨機(jī)存取存儲(chǔ)器。
8.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括如下步驟為FLASH文件封裝文件操作驅(qū)動(dòng)接口;用戶通過(guò)所述驅(qū)動(dòng)接口對(duì)FLASH文件進(jìn)行操作。
9.如權(quán)利要求8所述的方法,其特征在于,所述文件操作是創(chuàng)建文件、和/或打開(kāi)文件、和/或關(guān)閉文件、和/或讀文件、和/或?qū)懳募?、?或查找文件、和/或重定位文件指針、和/或刪除文件、和/或文件重命名、和/或獲取文件長(zhǎng)度。
10.如權(quán)利要求9所述的方法,其特征在于,所述寫(xiě)文件操作是將文件寫(xiě)入閃存后返回,或立即返回后在后臺(tái)起一個(gè)任務(wù)用于將文件寫(xiě)入閃存。
11.一種閃存中的FLASH文件的管理系統(tǒng),其特征在于,包括索引模塊,根據(jù)FLASH文件第一屬性建立索引,用戶通過(guò)所述索引對(duì)FLASH文件進(jìn)行操作。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述索引模塊進(jìn)一步包括第一索引單元,用于根據(jù)每個(gè)FLASH文件的第二屬性為每個(gè)FLASH文件在所述索引中建立文件基本句柄;第二索引單元,用于根據(jù)每個(gè)FLASH文件的第三屬性為每個(gè)FLASH文件在所述索引中建立用戶基本句柄;所述用戶通過(guò)所述索引中的用戶基本句柄獲得對(duì)FLASH文件進(jìn)行操作的權(quán)限后,根據(jù)所述索引中的文件基本句柄對(duì)FLASH文件進(jìn)行操作。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,進(jìn)一步包括存儲(chǔ)模塊,用于將FLASH文件中不需永久保存的數(shù)據(jù)保存至隨機(jī)存取存儲(chǔ)器。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于,進(jìn)一步包括接口封裝模塊,用于為FLASH文件封裝文件操作驅(qū)動(dòng)接口;用戶通過(guò)所述驅(qū)動(dòng)接口對(duì)FLASH文件進(jìn)行操作。
全文摘要
本發(fā)明公開(kāi)了一種閃存中的FLASH文件的管理方法及系統(tǒng),包括根據(jù)FLASH文件第一屬性建立索引;用戶根據(jù)索引對(duì)FLASH文件進(jìn)行操作。本發(fā)明解決了現(xiàn)有技術(shù)中存在的FLASH文件需要?jiǎng)討B(tài)分配文件空間,易產(chǎn)生空間碎片,導(dǎo)致因額外管理而帶來(lái)的不必要也不穩(wěn)定的問(wèn)題,還進(jìn)一步解決現(xiàn)有技術(shù)中FLASH文件使用不方便、不靈活,而且缺少很多文件操作的功能的不足;還解決了由于直接調(diào)用FLASH文件底層的驅(qū)動(dòng)接口,對(duì)閃存的安全性存有的潛在威脅。本發(fā)明文件系統(tǒng)設(shè)計(jì)簡(jiǎn)單、實(shí)用,沒(méi)有多余的功能,穩(wěn)定性好;同時(shí)也具有良好的通用性,可以應(yīng)用于很多使用閃存作為文件存儲(chǔ)的場(chǎng)合。
文檔編號(hào)G06F17/30GK1908937SQ200610104289
公開(kāi)日2007年2月7日 申請(qǐng)日期2006年8月9日 優(yōu)先權(quán)日2006年8月9日
發(fā)明者董平, 孫皓 申請(qǐng)人:華為技術(shù)有限公司