




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第5章嵌入式文件系統(tǒng)5.1嵌入式文件系統(tǒng)1第5章嵌入式文件系統(tǒng)5.1嵌入式文件系統(tǒng)15.1文件系統(tǒng)簡介文件系統(tǒng)的定義文件系統(tǒng)是操作系統(tǒng)中組織、存儲和命名文件的結構,是操作系統(tǒng)中統(tǒng)一管理信息資源的一種方式,可以管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,方便用戶使用。大部分應用程序都是基于文件系統(tǒng)進行操作,在不同的文件系統(tǒng)上是不能工作的。文件系統(tǒng)的存儲媒質(zhì):磁盤、光盤、FLASH盤等FAT(文件分配表)系統(tǒng)是最常用的文件系統(tǒng),主要優(yōu)點是可以允許多種操作系統(tǒng)訪問。25.1文件系統(tǒng)簡介文件系統(tǒng)的定義25.1文件系統(tǒng)簡介文件系統(tǒng)主要功能方便的文件訪問和控制:以符號名稱作為文件標識,便于用戶使用;并發(fā)文件訪問和控制:在多道程系統(tǒng)中支持對文件的并發(fā)訪問和控制;統(tǒng)一的用戶接口:在不同設備上提供同樣的接口,方便用戶操作和編程;多種文件訪問權限:在多用戶系統(tǒng)中的不同用戶對同一文件會有不同的訪問權限;優(yōu)化性能:存儲效率、檢索性能、讀寫性能;差錯恢復:能夠驗證文件的正確性,并具有一定的差錯恢復能力;35.1文件系統(tǒng)簡介文件系統(tǒng)主要功能35.1文件系統(tǒng)簡介文件系統(tǒng)的結構45.1文件系統(tǒng)簡介文件系統(tǒng)的結構45.1文件系統(tǒng)簡介文件系統(tǒng)的主要內(nèi)容:文件的格式目錄的格式磁盤的分配回收訪問方式和權限目錄也是一個特殊的文件。55.1文件系統(tǒng)簡介文件系統(tǒng)的主要內(nèi)容:5DOS1.0(1981)DOS3.0(1984)Win95(1995)Win95Osr2(1996)Win98(1998)Win3.1(1992)FAT12FAT16VFATFAT32FAT文件系統(tǒng)FAT文件系統(tǒng)的發(fā)展6DOS1.0(1981)DOS3.0(1984)WiFAT12FAT16FAT32SizeofFATentry12bits16bits32bitsMaxnumofclusters4,08665,526268,435,456Clustersizeused0.5KB-4KB2KB-32KB4KB-32KB最大磁盤容量16,736,256
(16M)2,147,123,200
(2G)about2^41
(2T)FAT12/FAT16/FAT32比較7FAT12FAT16FAT32SizeofFATentFAT文件系統(tǒng)由下面四部分組成保留區(qū)Reservedregion存放引導記錄,BIOS信息等FAT區(qū)FAT信息列表
(12/16/32bits)根目錄區(qū)目錄信息列表
(32bytes)文件和目錄數(shù)據(jù)區(qū)存放簇信息reservedFAT(p)FAT(b)RootdirFileanddirectory……FAT文件系統(tǒng)基本結構8FAT文件系統(tǒng)由下面四部分組成reservedFAT(p)引導記錄基本信息
……引導代碼BIOS參數(shù)塊
(BPB)字節(jié)/扇區(qū)(512,1024,2048,4096)扇區(qū)/簇(1,2,4,8,16,32,64,128)根目錄數(shù)總扇區(qū)值介質(zhì)類型
(硬盤,軟盤,F(xiàn)LASH)reservedFAT(p)FAT(b)RootdirFileanddirectory……保留區(qū)ReservedRegion
9引導記錄reservedFAT(p)FAT(b)Rootd通常有FAT(P)(primary)和FAT(B)(backup)每一個簇都有一個對應的FAT表項Cluster2Cluster3Clustern-1Clustern……FAT數(shù)據(jù)區(qū)reservedFAT(p)FAT(b)RootdirFileanddirectory………FAT區(qū)10通常有FAT(P)(primary)和FAT(B)(bacFAT鏈表(以FAT16為例)……目錄樹11FAT鏈表(以FAT16為例)……目錄樹115.2嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)與桌面文件系統(tǒng)有較大區(qū)別:嵌入式文件系統(tǒng)要為嵌入式系統(tǒng)的設計目的而服務的,不同用途的嵌入式操作系統(tǒng)下的文件系統(tǒng)在許多方面各不相同。嵌入式Linux常用文件系統(tǒng):第二版擴展文件系統(tǒng)(Ext2ft)、JFFS、YAFFS125.2嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)與桌面文件系統(tǒng)有較大區(qū)別嵌入式Linux常用文件系統(tǒng)FlashMemory簡介FlashMemory上的兩種技術NAND:串行;順序讀??;適合大容量;通常需MTDNOR:并行;隨機讀??;適合數(shù)據(jù)或程序存儲;XIP;Xsbase開發(fā)平臺上所使用的閃存IntelStrataFlashMemory28F128J3A
Ext2fs、JFFS和YAFFSext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等13嵌入式Linux常用文件系統(tǒng)FlashMemory簡介嵌入式Linux常用文件系統(tǒng)第二版擴展文件系統(tǒng)(Ext2fs)的優(yōu)點Ext2fs支持達4TB的內(nèi)存(Ext是2G)。Ext2fs文件名稱最長可以到1012個字符。當創(chuàng)建文件系統(tǒng)時,管理員可以選擇邏輯塊的大?。ㄍǔ4笮】蛇x擇1024、2048和4096字節(jié))。Ext2fs實現(xiàn)快速符號鏈接:不需要為此目的而分配數(shù)據(jù)塊,并且將目標名稱直接存儲在索引節(jié)點表中,這使性能有所提高,特別是在速度上。14嵌入式Linux常用文件系統(tǒng)第二版擴展文件系統(tǒng)(Ext2fs
基于FLASH的嵌入式文件系統(tǒng)
嵌入式系統(tǒng)中常使用FLASH作為存儲介質(zhì),有其特定的結構特點:基本存儲單位是Page,每個Page有512+16個字節(jié);32個Page為一個Block;所有的Block組成一個Device,代表整個存儲體。主要有兩種技術:NAND和NOR三星K9F2808U0A-YCB0FLASH(NAND技術)有16M字節(jié)的存儲容量:有1024個Block,Device的總容量是:528Bytes*32Pages*1024Blocks=132MbitsIntel公司的28F128J3AFlash(NOR技術)15基于FLASH的嵌入式文件系統(tǒng)嵌入式系統(tǒng)中常使NAND和NOR兩種技術比較16NAND和NOR兩種技術比較16FLASH的存儲結構17FLASH的存儲結構17FLASH的讀寫特點和FAT組織讀寫特點:(1)必須以Page為單位進行讀寫;(2)寫之前必須先擦除原有內(nèi)容;(3)擦除操作必須對Block進行,即一次至少擦除一個Block的內(nèi)容FAT組織將Flash的一個Page定為1個扇區(qū),2個Block-64個扇區(qū)定為一個簇(也可以定義32個扇區(qū)為一個簇),這樣,簇的容量剛好為512*64=32K,滿足FAT16對簇大小的要求。18FLASH的讀寫特點和FAT組織讀寫特點:18FLASH文件系統(tǒng)的特殊要求(1)掉電安全:
嵌入式系統(tǒng)的運行環(huán)境一般比較惡劣,但同時又要求有較高的可靠性。這就對FLASH文件系統(tǒng)進出了較高的要求,無論程序崩潰或系統(tǒng)掉電,都不能影響文件系統(tǒng)的一致性和完整性,文件系統(tǒng)的寫入、垃圾回收等操作對系統(tǒng)異常中止都非常敏感,極易造成數(shù)據(jù)丟失和數(shù)據(jù)垃圾,在文件系統(tǒng)設計和選用時應考慮;(2)平均使用(wear-leveling):
由于FLASH扇區(qū)的擦除次數(shù)有限制,要求能夠均勻使用各扇區(qū),以延長FLASH的使用壽命;19FLASH文件系統(tǒng)的特殊要求(1)掉電安全:19(3)高效垃圾回收(garbagecollection):任何存儲器在分配使用一段時間后,都會出現(xiàn)空區(qū)和碎片數(shù)據(jù),為保證存儲空間的使用率。方法是先移動扇區(qū)數(shù)據(jù),再擦除整個扇區(qū);(4)低空間消耗(lowoverhead):指文件系統(tǒng)管理結構在FLASH存儲器上的空間消耗,該空間用于FS建立,而不能用于實際數(shù)據(jù)的存儲,可以提高有用數(shù)據(jù)的存儲空間。FLASH文件系統(tǒng)的特殊要求20(3)高效垃圾回收(garbagecollection):(1)集中管理文件系統(tǒng)特點:存儲器空間的使用信息集中存放在存儲器的某個地方,存儲器的其它區(qū)域用于存放數(shù)據(jù),數(shù)據(jù)必須依賴關鍵信息區(qū)才能被索引和使用缺點:需要大量緩存空間,當某扇區(qū)需要更新時,先將扇區(qū)數(shù)據(jù)備份到RAM中,再進行擦除操作,最后將修改后的備份寫入FLASH,缺點是難以保證掉電安全,不能均勻使用存儲器空間,特別是關鍵信息區(qū),對文件系統(tǒng)的使用都會改寫該區(qū),導致FLASH快速損壞;FLASH文件系統(tǒng)的分類21(1)集中管理文件系統(tǒng)FLASH文件系統(tǒng)的分類21FLASH文件系統(tǒng)的分類(2)線性文件系統(tǒng)概述:每個文件相關的信息都連續(xù)存放在存儲器中,實現(xiàn)簡單,讀寫快速,文件系統(tǒng)的關鍵信息分布存放;優(yōu)點:安全性好;能保證存儲器的平均使用,延長了FLASH的使用壽命;缺點:對文件操作效率低,不易實現(xiàn)添加、插入、剪切等操作;22FLASH文件系統(tǒng)的分類(2)線性文件系統(tǒng)22(3)日志文件系統(tǒng)基本思想:跟蹤文件系統(tǒng)的變化而不是文件系統(tǒng)的內(nèi)容概述:日志結構的文件系統(tǒng)使用順序的、只增的日志作為磁盤上唯一的組織文件系統(tǒng)數(shù)據(jù)的結構,文件的描述可以仍采用傳統(tǒng)的索引組織方式。方法是在內(nèi)存中將幾次FS的修改匯集成一個大的日志條目(被稱為段映像),然后動態(tài)分配磁盤空間并通過一次寫操作寫到磁盤上的一個連續(xù)的、固定大小的日志段(Segment)中。并定時或當系統(tǒng)發(fā)出同步寫請求時保證日志同步寫到磁盤上FLASH文件系統(tǒng)的分類23(3)日志文件系統(tǒng)FLASH文件系統(tǒng)的分類23系統(tǒng)紀錄(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登記表(FRT,FileRegisterTable)數(shù)據(jù)區(qū)域(DataArea)典型FLASH文件系統(tǒng)的結構(1)系統(tǒng)記錄(SR,SystemRecord)
存放媒質(zhì)信息和最重要的文件系統(tǒng)信息。媒質(zhì)信息諸如Flash存儲器的類型、容量,劃分成多少個區(qū)塊,每區(qū)塊包含多少個頁面等。文件系統(tǒng)信息包括版本信息、保留區(qū)塊的數(shù)目和位置、文件分配表和文件登記表所在的位置和大小、數(shù)據(jù)區(qū)域的位置和大小等。(2)文件分配表(FAT,F(xiàn)ileAllocationTable)
存放著Flash存儲器上所有區(qū)塊的占用與空閑情況以及每個文件的存儲連接結構,采用FAT16文件格式。24系統(tǒng)紀錄文件分配表文件登記表數(shù)據(jù)區(qū)域典型FLASH文件系統(tǒng)(3)文件登記表(FRT,F(xiàn)ileRegisterTable)存放著Flash文件系統(tǒng)中每一個文件的文件代號、文件長度、文件屬性以及該文件的存儲鏈在文件分配表中的入口。(4)數(shù)據(jù)區(qū)域(DataArea)用于存放文件的數(shù)據(jù)內(nèi)容。本Flash文件系統(tǒng)中,數(shù)據(jù)分配的最小單位是Flash存儲器的一個基本擦除單元,即一個物理區(qū)塊(Block)。系統(tǒng)紀錄(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登記表(FRT,FileRegisterTable)數(shù)據(jù)區(qū)域(DataArea)25(3)文件登記表(FRT,F(xiàn)ileRegisterTabLBABlock/Page長度內(nèi)容說明00/0512字節(jié)MBR=BPB+ExcutableCode+55AA1~20/1~0/21024字節(jié)FAT區(qū)(第一份FAT)3~40/3~0/41024字節(jié)FAT區(qū)備份(第二份FAT)5~39H0/5~0/3130K字節(jié)目錄區(qū)(在BPB中調(diào)整目錄項數(shù),使其剛好占盡本block)40H1/1512字節(jié)數(shù)據(jù)區(qū)(因目錄區(qū)占盡一個簇,故數(shù)據(jù)區(qū)始于新block首page)FLASH的前兩個BLOCK26LBABlock/Page長度內(nèi)容說明00/0512字節(jié)MBFILE結構體typedefstruct{ U8Buffer[BLOCK_SIZE]; //文件緩沖區(qū) U32fileblock; //文件當前的簇的位置 U32filemode; //打開文件的模式 U32filebufnum;//文件緩沖區(qū)中已經(jīng)讀取/寫入的字節(jié)數(shù) U32fileCurpos; //讀寫的當前位置 U32filesize; //文件的大小}FILE;27FILE結構體typedefstruct{27與FLASH存儲器的接口函數(shù)塊擦除:unsignedcharErase_Cluster(unsignedintcluster)頁寫入:intWritePage(unsignedintblock,unsignedintpage,unsignedchar*pPage)頁讀出:voidReadPage(unsignedintblock,unsignedintpage,unsignedchar*pPage)28與FLASH存儲器的接口函數(shù)塊擦除:unsignedcha文件系統(tǒng)的相關API函數(shù)始始化文件系統(tǒng):voidinitOSFile()以讀取或者寫入模式打開文件:File*OpenOSFile(Charfilename[],U32OpenMode)讀文件到緩沖區(qū):U32ReadOSFile(FILE*pfile,U8*ReadBuffer,U32nReadbyte)把緩沖區(qū)內(nèi)容寫入文件:U32WriteOSFile(FILE*pfile,U8*WriteBuffer,U32nWritebyte)關閉文件,釋放緩沖區(qū):voidCloseOSFile(FILE*Pfile)29文件系統(tǒng)的相關API函數(shù)始始化文件系統(tǒng):voidinitOpenOSFile的工作的流程圖30OpenOSFile的工作的流程圖30ReadOSFile函數(shù)的程序流程圖31ReadOSFile函數(shù)的程序流程圖31WriteOSFile函數(shù)的程序流程圖32WriteOSFile函數(shù)的程序流程圖32否CloseOSFile函數(shù)的程序流程圖33否CloseOSFile函數(shù)的程序流程圖335.3常用的基于Flash文件系統(tǒng)1、JFFS文件系統(tǒng)
2000年Axis公司發(fā)布了他們開發(fā)的日志式Flash文件系統(tǒng)JFFS文件系統(tǒng)是開放源代碼的文件系統(tǒng),可以說是專門用于嵌入式Linux等系統(tǒng)的
JFFS是直接在Flash設備上實現(xiàn)的文件系統(tǒng)JFFS2沒有為Flash設備專門設計一個轉換層來模擬普通的文件系統(tǒng),而是直接對Flash進行操作345.3常用的基于Flash文件系統(tǒng)1、JFFS文件系統(tǒng)34主要針對NORFlash設計,是一種基于Flash的JFFS文件系統(tǒng)日志文件系統(tǒng)JFFS的底層驅(qū)動(MTD)主要完成文件系統(tǒng)對Flash芯片的訪問控制,如讀、寫、擦除操作JFFS2是JFFS的改進版,35主要針對NORFlash設計,是一種基于Flash的JJFFSJFFS2MTD驅(qū)動(MemoryTechnologyDevices)NAND閃存或NOR閃存等MTD驅(qū)動:為JFFS或JFFS2提供對NAND閃存或NOR閃存芯片進行各種操作的驅(qū)動程序基于NOR閃存的Flash的JFFS2文件系統(tǒng)已很成熟JFFS文件系統(tǒng)層次圖36JFFSJFFS2MTD驅(qū)動NAND閃存或NOR閃存等MYAFFS主要針對NANDFlash設計,和JFFS相比它將少了一些功能。自帶NAND芯片驅(qū)動,且為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的APIYAFFS2時YAFFS的改進版本2、YAFFS文件系統(tǒng)37YAFFS主要針對NANDFlash設計,和JFFS相比(1)JFFS是一種日志文件系統(tǒng),通過日志機制保證文件系統(tǒng)的穩(wěn)定性。YAFFS僅僅借鑒了日志系統(tǒng)的思想,不提供日志機能,所以穩(wěn)定性不如JAFFS,但是資源占用少。
(2)JFFS中使用多級鏈表管理需要回收的臟塊,并且使用系統(tǒng)生成偽隨機變量決定要回收的塊,通過這種方法能提供較好的寫均衡,在YAFFS中是從頭到尾對塊搜索,所以在垃圾收集上JFFS的速度慢,但是能延長NAND的壽命。
兩種文件系統(tǒng)的比較38(1)JFFS是一種日志文件系統(tǒng),通過日志機制保證文件系統(tǒng)的兩種文件系統(tǒng)的比較(3)JFFS支持文件壓縮,適合存儲容量較小的系統(tǒng);YAFFS不支持壓縮,更適合存儲容量大的系統(tǒng)。
(4)YAFFS還帶有NAND芯片驅(qū)動,并為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API,用戶可以不使用Linux中的MTD和VFS,直接對文件進行操作。39兩種文件系統(tǒng)的比較(3)JFFS支持文件壓縮,適合存儲容量較習題1、教材第六章習題1,習題2,習題340習題1、教材第六章習題1,習題2,習題340第5章嵌入式文件系統(tǒng)5.1嵌入式文件系統(tǒng)41第5章嵌入式文件系統(tǒng)5.1嵌入式文件系統(tǒng)15.1文件系統(tǒng)簡介文件系統(tǒng)的定義文件系統(tǒng)是操作系統(tǒng)中組織、存儲和命名文件的結構,是操作系統(tǒng)中統(tǒng)一管理信息資源的一種方式,可以管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,方便用戶使用。大部分應用程序都是基于文件系統(tǒng)進行操作,在不同的文件系統(tǒng)上是不能工作的。文件系統(tǒng)的存儲媒質(zhì):磁盤、光盤、FLASH盤等FAT(文件分配表)系統(tǒng)是最常用的文件系統(tǒng),主要優(yōu)點是可以允許多種操作系統(tǒng)訪問。425.1文件系統(tǒng)簡介文件系統(tǒng)的定義25.1文件系統(tǒng)簡介文件系統(tǒng)主要功能方便的文件訪問和控制:以符號名稱作為文件標識,便于用戶使用;并發(fā)文件訪問和控制:在多道程系統(tǒng)中支持對文件的并發(fā)訪問和控制;統(tǒng)一的用戶接口:在不同設備上提供同樣的接口,方便用戶操作和編程;多種文件訪問權限:在多用戶系統(tǒng)中的不同用戶對同一文件會有不同的訪問權限;優(yōu)化性能:存儲效率、檢索性能、讀寫性能;差錯恢復:能夠驗證文件的正確性,并具有一定的差錯恢復能力;435.1文件系統(tǒng)簡介文件系統(tǒng)主要功能35.1文件系統(tǒng)簡介文件系統(tǒng)的結構445.1文件系統(tǒng)簡介文件系統(tǒng)的結構45.1文件系統(tǒng)簡介文件系統(tǒng)的主要內(nèi)容:文件的格式目錄的格式磁盤的分配回收訪問方式和權限目錄也是一個特殊的文件。455.1文件系統(tǒng)簡介文件系統(tǒng)的主要內(nèi)容:5DOS1.0(1981)DOS3.0(1984)Win95(1995)Win95Osr2(1996)Win98(1998)Win3.1(1992)FAT12FAT16VFATFAT32FAT文件系統(tǒng)FAT文件系統(tǒng)的發(fā)展46DOS1.0(1981)DOS3.0(1984)WiFAT12FAT16FAT32SizeofFATentry12bits16bits32bitsMaxnumofclusters4,08665,526268,435,456Clustersizeused0.5KB-4KB2KB-32KB4KB-32KB最大磁盤容量16,736,256
(16M)2,147,123,200
(2G)about2^41
(2T)FAT12/FAT16/FAT32比較47FAT12FAT16FAT32SizeofFATentFAT文件系統(tǒng)由下面四部分組成保留區(qū)Reservedregion存放引導記錄,BIOS信息等FAT區(qū)FAT信息列表
(12/16/32bits)根目錄區(qū)目錄信息列表
(32bytes)文件和目錄數(shù)據(jù)區(qū)存放簇信息reservedFAT(p)FAT(b)RootdirFileanddirectory……FAT文件系統(tǒng)基本結構48FAT文件系統(tǒng)由下面四部分組成reservedFAT(p)引導記錄基本信息
……引導代碼BIOS參數(shù)塊
(BPB)字節(jié)/扇區(qū)(512,1024,2048,4096)扇區(qū)/簇(1,2,4,8,16,32,64,128)根目錄數(shù)總扇區(qū)值介質(zhì)類型
(硬盤,軟盤,F(xiàn)LASH)reservedFAT(p)FAT(b)RootdirFileanddirectory……保留區(qū)ReservedRegion
49引導記錄reservedFAT(p)FAT(b)Rootd通常有FAT(P)(primary)和FAT(B)(backup)每一個簇都有一個對應的FAT表項Cluster2Cluster3Clustern-1Clustern……FAT數(shù)據(jù)區(qū)reservedFAT(p)FAT(b)RootdirFileanddirectory………FAT區(qū)50通常有FAT(P)(primary)和FAT(B)(bacFAT鏈表(以FAT16為例)……目錄樹51FAT鏈表(以FAT16為例)……目錄樹115.2嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)與桌面文件系統(tǒng)有較大區(qū)別:嵌入式文件系統(tǒng)要為嵌入式系統(tǒng)的設計目的而服務的,不同用途的嵌入式操作系統(tǒng)下的文件系統(tǒng)在許多方面各不相同。嵌入式Linux常用文件系統(tǒng):第二版擴展文件系統(tǒng)(Ext2ft)、JFFS、YAFFS525.2嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)與桌面文件系統(tǒng)有較大區(qū)別嵌入式Linux常用文件系統(tǒng)FlashMemory簡介FlashMemory上的兩種技術NAND:串行;順序讀?。贿m合大容量;通常需MTDNOR:并行;隨機讀??;適合數(shù)據(jù)或程序存儲;XIP;Xsbase開發(fā)平臺上所使用的閃存IntelStrataFlashMemory28F128J3A
Ext2fs、JFFS和YAFFSext、ext2、xia、vfat、minix、msdos、umsdos、proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等53嵌入式Linux常用文件系統(tǒng)FlashMemory簡介嵌入式Linux常用文件系統(tǒng)第二版擴展文件系統(tǒng)(Ext2fs)的優(yōu)點Ext2fs支持達4TB的內(nèi)存(Ext是2G)。Ext2fs文件名稱最長可以到1012個字符。當創(chuàng)建文件系統(tǒng)時,管理員可以選擇邏輯塊的大?。ㄍǔ4笮】蛇x擇1024、2048和4096字節(jié))。Ext2fs實現(xiàn)快速符號鏈接:不需要為此目的而分配數(shù)據(jù)塊,并且將目標名稱直接存儲在索引節(jié)點表中,這使性能有所提高,特別是在速度上。54嵌入式Linux常用文件系統(tǒng)第二版擴展文件系統(tǒng)(Ext2fs
基于FLASH的嵌入式文件系統(tǒng)
嵌入式系統(tǒng)中常使用FLASH作為存儲介質(zhì),有其特定的結構特點:基本存儲單位是Page,每個Page有512+16個字節(jié);32個Page為一個Block;所有的Block組成一個Device,代表整個存儲體。主要有兩種技術:NAND和NOR三星K9F2808U0A-YCB0FLASH(NAND技術)有16M字節(jié)的存儲容量:有1024個Block,Device的總容量是:528Bytes*32Pages*1024Blocks=132MbitsIntel公司的28F128J3AFlash(NOR技術)55基于FLASH的嵌入式文件系統(tǒng)嵌入式系統(tǒng)中常使NAND和NOR兩種技術比較56NAND和NOR兩種技術比較16FLASH的存儲結構57FLASH的存儲結構17FLASH的讀寫特點和FAT組織讀寫特點:(1)必須以Page為單位進行讀寫;(2)寫之前必須先擦除原有內(nèi)容;(3)擦除操作必須對Block進行,即一次至少擦除一個Block的內(nèi)容FAT組織將Flash的一個Page定為1個扇區(qū),2個Block-64個扇區(qū)定為一個簇(也可以定義32個扇區(qū)為一個簇),這樣,簇的容量剛好為512*64=32K,滿足FAT16對簇大小的要求。58FLASH的讀寫特點和FAT組織讀寫特點:18FLASH文件系統(tǒng)的特殊要求(1)掉電安全:
嵌入式系統(tǒng)的運行環(huán)境一般比較惡劣,但同時又要求有較高的可靠性。這就對FLASH文件系統(tǒng)進出了較高的要求,無論程序崩潰或系統(tǒng)掉電,都不能影響文件系統(tǒng)的一致性和完整性,文件系統(tǒng)的寫入、垃圾回收等操作對系統(tǒng)異常中止都非常敏感,極易造成數(shù)據(jù)丟失和數(shù)據(jù)垃圾,在文件系統(tǒng)設計和選用時應考慮;(2)平均使用(wear-leveling):
由于FLASH扇區(qū)的擦除次數(shù)有限制,要求能夠均勻使用各扇區(qū),以延長FLASH的使用壽命;59FLASH文件系統(tǒng)的特殊要求(1)掉電安全:19(3)高效垃圾回收(garbagecollection):任何存儲器在分配使用一段時間后,都會出現(xiàn)空區(qū)和碎片數(shù)據(jù),為保證存儲空間的使用率。方法是先移動扇區(qū)數(shù)據(jù),再擦除整個扇區(qū);(4)低空間消耗(lowoverhead):指文件系統(tǒng)管理結構在FLASH存儲器上的空間消耗,該空間用于FS建立,而不能用于實際數(shù)據(jù)的存儲,可以提高有用數(shù)據(jù)的存儲空間。FLASH文件系統(tǒng)的特殊要求60(3)高效垃圾回收(garbagecollection):(1)集中管理文件系統(tǒng)特點:存儲器空間的使用信息集中存放在存儲器的某個地方,存儲器的其它區(qū)域用于存放數(shù)據(jù),數(shù)據(jù)必須依賴關鍵信息區(qū)才能被索引和使用缺點:需要大量緩存空間,當某扇區(qū)需要更新時,先將扇區(qū)數(shù)據(jù)備份到RAM中,再進行擦除操作,最后將修改后的備份寫入FLASH,缺點是難以保證掉電安全,不能均勻使用存儲器空間,特別是關鍵信息區(qū),對文件系統(tǒng)的使用都會改寫該區(qū),導致FLASH快速損壞;FLASH文件系統(tǒng)的分類61(1)集中管理文件系統(tǒng)FLASH文件系統(tǒng)的分類21FLASH文件系統(tǒng)的分類(2)線性文件系統(tǒng)概述:每個文件相關的信息都連續(xù)存放在存儲器中,實現(xiàn)簡單,讀寫快速,文件系統(tǒng)的關鍵信息分布存放;優(yōu)點:安全性好;能保證存儲器的平均使用,延長了FLASH的使用壽命;缺點:對文件操作效率低,不易實現(xiàn)添加、插入、剪切等操作;62FLASH文件系統(tǒng)的分類(2)線性文件系統(tǒng)22(3)日志文件系統(tǒng)基本思想:跟蹤文件系統(tǒng)的變化而不是文件系統(tǒng)的內(nèi)容概述:日志結構的文件系統(tǒng)使用順序的、只增的日志作為磁盤上唯一的組織文件系統(tǒng)數(shù)據(jù)的結構,文件的描述可以仍采用傳統(tǒng)的索引組織方式。方法是在內(nèi)存中將幾次FS的修改匯集成一個大的日志條目(被稱為段映像),然后動態(tài)分配磁盤空間并通過一次寫操作寫到磁盤上的一個連續(xù)的、固定大小的日志段(Segment)中。并定時或當系統(tǒng)發(fā)出同步寫請求時保證日志同步寫到磁盤上FLASH文件系統(tǒng)的分類63(3)日志文件系統(tǒng)FLASH文件系統(tǒng)的分類23系統(tǒng)紀錄(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登記表(FRT,FileRegisterTable)數(shù)據(jù)區(qū)域(DataArea)典型FLASH文件系統(tǒng)的結構(1)系統(tǒng)記錄(SR,SystemRecord)
存放媒質(zhì)信息和最重要的文件系統(tǒng)信息。媒質(zhì)信息諸如Flash存儲器的類型、容量,劃分成多少個區(qū)塊,每區(qū)塊包含多少個頁面等。文件系統(tǒng)信息包括版本信息、保留區(qū)塊的數(shù)目和位置、文件分配表和文件登記表所在的位置和大小、數(shù)據(jù)區(qū)域的位置和大小等。(2)文件分配表(FAT,F(xiàn)ileAllocationTable)
存放著Flash存儲器上所有區(qū)塊的占用與空閑情況以及每個文件的存儲連接結構,采用FAT16文件格式。64系統(tǒng)紀錄文件分配表文件登記表數(shù)據(jù)區(qū)域典型FLASH文件系統(tǒng)(3)文件登記表(FRT,F(xiàn)ileRegisterTable)存放著Flash文件系統(tǒng)中每一個文件的文件代號、文件長度、文件屬性以及該文件的存儲鏈在文件分配表中的入口。(4)數(shù)據(jù)區(qū)域(DataArea)用于存放文件的數(shù)據(jù)內(nèi)容。本Flash文件系統(tǒng)中,數(shù)據(jù)分配的最小單位是Flash存儲器的一個基本擦除單元,即一個物理區(qū)塊(Block)。系統(tǒng)紀錄(SR,SystemRecord)文件分配表(FAT,FileAllocationTable)文件登記表(FRT,FileRegisterTable)數(shù)據(jù)區(qū)域(DataArea)65(3)文件登記表(FRT,F(xiàn)ileRegisterTabLBABlock/Page長度內(nèi)容說明00/0512字節(jié)MBR=BPB+ExcutableCode+55AA1~20/1~0/21024字節(jié)FAT區(qū)(第一份FAT)3~40/3~0/41024字節(jié)FAT區(qū)備份(第二份FAT)5~39H0/5~0/3130K字節(jié)目錄區(qū)(在BPB中調(diào)整目錄項數(shù),使其剛好占盡本block)40H1/1512字節(jié)數(shù)據(jù)區(qū)(因目錄區(qū)占盡一個簇,故數(shù)據(jù)區(qū)始于新block首page)FLASH的前兩個BLOCK66LBABlock/Page長度內(nèi)容說明00/0512字節(jié)MBFILE結構體typedefstruct{ U8Buffer[BLOCK_SIZE]; //文件緩沖區(qū) U32fileblock; //文件當前的簇的位置 U32filemode; //打開文件的模式 U32filebufnum;//文件緩沖區(qū)中已經(jīng)讀取/寫入的字節(jié)數(shù) U32fileCurpos; //讀寫的當前位置 U32filesize; //文件的大小}FILE;67FILE結構體typedefstruct{27與FLASH存儲器的接口函數(shù)塊擦除:unsignedcharErase_Cluster(unsignedintcluster)頁寫入:intWritePage(unsignedintblock,unsignedintpage,unsignedchar*pPage)頁讀出:voidReadPage(unsignedintblock,unsignedintpage,unsignedchar*pPage)68與FLASH存儲器的接口函數(shù)塊擦除:unsignedcha文件系統(tǒng)的相關API函數(shù)始始化文件系統(tǒng):voidinitOSFile()以讀取或者寫入模式打開文件:File*OpenOSFile(Charfilename[],U32OpenMode)讀文件到緩沖區(qū):U32ReadOSFile(FILE*pfile,U8*ReadBuffer,U32nReadb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑勞務清包合同
- 園林綠化工程施工合同
- 展廳裝修施工合同協(xié)議書
- 中介房屋買賣合同大全年
- 醫(yī)療健康領域醫(yī)療資源分布統(tǒng)計表
- 導購員聘用合同協(xié)議書
- 2025年潮州貨運上崗證模擬考試0題
- 2025年部編版小學三年級下冊課外閱讀專項復習題(有答案)
- ic芯片購銷合同范本
- 制動氣室市場分析及競爭策略分析報告
- 一年級美術課后輔導方案-1
- 新法律援助基礎知識講座
- 《鍛造安全生產(chǎn)》課件
- 小學數(shù)學1-6年級(含奧數(shù))找規(guī)律專項及練習題附詳細答案
- 《同濟大學簡介》課件
- 《建筑攝影5構》課件
- 機電安裝工程質(zhì)量控制
- 愛自己是終身浪漫的開始 心理課件
- 新房房屋買賣合同
- 地鐵出入口雨棚施工工藝
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學
評論
0/150
提交評論