




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
四、
嵌入式Linux文件系統(tǒng)Linux中一切皆文件!是指:在Linux系統(tǒng)中,各個部分都可把它看成是一個文件包括了所有的硬盤分區(qū)、目錄、軟盤、CD-ROM光盤和其他存儲介質(zhì),以及顯示器和打印機等硬件設(shè)備都可被看成一個文件。
從本質(zhì)上而言,用戶的一切工作就是對文件的操作。4.1.通用文件系統(tǒng)概述4.2.嵌入式閃存文件系統(tǒng)4.3.閃存文件系統(tǒng)體系結(jié)構(gòu)4.4Linux平臺中的VFS機制4.5MTD技術(shù)4.6如何構(gòu)建嵌入式Linux文件系統(tǒng)4.1.通用文件系統(tǒng)概述4.1.1文件、目錄與文件系統(tǒng)4.1.2常見的文件系統(tǒng)4.1.1文件、目錄與文件系統(tǒng)文件:是指具有符號名的數(shù)據(jù)信息的集合。
命名了的字符串集合例如,在UNIX系統(tǒng)中,文件系統(tǒng)從物理上將每個文件僅僅看成是由一系列字符串組成。命名了的相關(guān)記錄集合例如一個命名為“學(xué)生登記表”的文件是一個學(xué)生情況記錄的集合,每個學(xué)生情況的記錄是由姓名、性別、年齡等數(shù)據(jù)項組成,而姓名、年齡、性別等數(shù)據(jù)項則由若干個字符組成。
文件的分類按文件用途分類系統(tǒng)文件、庫文件、用戶文件按文件中數(shù)據(jù)分類源文件、目標(biāo)文件、可執(zhí)行文件按文件保護(hù)方式分類只讀文件、讀寫文件、不保護(hù)文件按文件保存時間分類臨時文件、永久文件文件的操作文件系統(tǒng)不應(yīng)要求用戶必須了解文件的物理組織才能使用文件,而應(yīng)方便用戶,提供給用戶按其邏輯組織形式來使用文件。一個文件系統(tǒng)至少要提供用戶以下的文件操作功能打開、關(guān)閉、建立、撤消、復(fù)制文件,文件換名、文件列表讀、寫、修改、插入、刪除數(shù)據(jù)項操作目錄的概念目錄:文件系統(tǒng)層次結(jié)構(gòu)的一個非終結(jié)節(jié)點,一個目錄通常包含有許多目錄項,每個目錄項可以是一個文件或目錄。而文件是文件系統(tǒng)層次結(jié)構(gòu)的一個終結(jié)節(jié)點,即在文件下不可能再包含文件或目錄。目錄的層次結(jié)構(gòu)文件系統(tǒng):是指在一個物理設(shè)備上的任何文件組織和目錄,它構(gòu)成了Linux系統(tǒng)上所有數(shù)據(jù)的基礎(chǔ),Linux程序、庫、系統(tǒng)文件和用戶文件都駐留其中;
向用戶或程序提供一個使用文件的統(tǒng)一界面,從而能夠使對文件的各類操作能夠在更抽象、更簡單的層次上進(jìn)行。
其引入通常有以下目的:滿足用戶管理數(shù)據(jù)的需要(進(jìn)行數(shù)據(jù)存儲和操作);盡可能保證文件中數(shù)據(jù)的有效性;性能優(yōu)化,以提高系統(tǒng)的吞吐量和響應(yīng)速度;提供不同類型的存儲設(shè)備的I/0支持;消除或降低數(shù)據(jù)丟失(遭破壞)的可性;提供一個標(biāo)準(zhǔn)的I/O界面;在多用戶系統(tǒng)中,為每一個用戶提供必要支持等;文件系統(tǒng)4.1.2常見的文件系統(tǒng)FAT(文件分配表):
使用:
最早是MS-DOS操作系統(tǒng)中采用的,而后在Windows操作系統(tǒng)中也使用了它。早期的FAT文件系由因統(tǒng)采用16位的文件分配表(簡稱FAT16),主要使用于DOS,Window3.x/95中;FAT16文件系統(tǒng)外,只能管理2GB以下的硬盤。新增了對FAT16文件系統(tǒng)的增強版本FAT32文件系統(tǒng),它采用32位的文件分配表,能有效地管理2GB以上的硬盤。但速度運行較采用FAT16系統(tǒng)慢。NTFS(NewTechnologyFileSystem)
使用:
是WINDOWSNT和WINDOWS2000中所使用的標(biāo)準(zhǔn)文件系統(tǒng),它適合更大的磁盤和分區(qū),支持安全性,是更為完善和靈活的文件系統(tǒng)。
優(yōu)點:
安全性好,使用事務(wù)日志自動記錄所有文件夾和文件更新,其分區(qū)對用戶權(quán)限做出了非常嚴(yán)格的限制,每個用戶只能在自己權(quán)限下進(jìn)行操作
缺點:NTFS為保障安全,系統(tǒng)的開銷較大,使用的最小分區(qū)為50MB,并且兼容性也不是很好。EXT(擴(kuò)展文件系統(tǒng)):主要包括EXT,EXT2.EXT3,
使用:GNU/Linux系統(tǒng)中標(biāo)準(zhǔn)的文件系統(tǒng),
優(yōu)點:
存取文件的性能極好,對中小型的文件更顯示出優(yōu)勢;
在速度和CPU利用率上較為突出;EXT3是EXT2的格式之下再加上了日志功能;
缺點:EXT在穩(wěn)定性、速度和兼容性上存在許多缺陷;EXT2在系統(tǒng)崩潰時可能造成文件系統(tǒng)處于不一致的狀態(tài);EXT3在安全性上沒有現(xiàn)代文件系統(tǒng)所具有的能提高文件數(shù)據(jù)處理速度與解壓的高性能;日志文件:在var/log下NFS(NetworkFileSystem):由Sun微系統(tǒng)公司設(shè)計發(fā)表的。
其本質(zhì):
為適應(yīng)INTERNET環(huán)境而產(chǎn)生的文件協(xié)議,并被普遍應(yīng)用于UNIX系統(tǒng)中。從用戶角度看來,在這些遠(yuǎn)程的文件操作和本地的文件操作沒有什么區(qū)別。缺點:
它的認(rèn)證機制是基于IP地址的,因而容易被攻擊。SMB(SystemMessageBlock)
是一種基于網(wǎng)絡(luò)的文件系統(tǒng),又稱之為CIFS(Common
InternetFileSystem)。
使用:
Windows系統(tǒng)中“網(wǎng)上鄰居”就是采用的該文件系統(tǒng)協(xié)議實現(xiàn)的;
另外Unix/Linux系統(tǒng)中的Samba也是根據(jù)這個協(xié)議實現(xiàn)的;
缺點:
但此文件系統(tǒng)一般只適用于同一個子網(wǎng)中的結(jié)點來共享文件的能力,不能用于大規(guī)模的網(wǎng)絡(luò)應(yīng)用環(huán)境。4.2.嵌入式閃存文件系統(tǒng)4.2.1嵌入式閃存文件系統(tǒng)的需求分析4.2.2針對閃存芯片的文件系統(tǒng)4.2.1嵌入式閃存文件系統(tǒng)的需求分析上文介紹了一些通用文件系統(tǒng),在嵌入式系統(tǒng)中不直接使用通用文件系統(tǒng),為什么?原因是:與嵌入式環(huán)境有一定關(guān)系,主要問題在于:1.一般來說,嵌入式系統(tǒng)的應(yīng)用條件遠(yuǎn)比通用計算機使用的環(huán)境惡劣,通用的文件系統(tǒng)的計算機應(yīng)對這些條件時,往往在可靠性上面設(shè)計考慮不足。2.通用文件系統(tǒng)是針對系統(tǒng)資源非常豐富的計算機平臺,依靠運算速度較快的CPU系統(tǒng),同時其使用速度較慢的磁盤驅(qū)動器,因此它們常常大量使用緩存技術(shù),要耗費比較多的系統(tǒng)資源。這些對于嵌入式系統(tǒng)中系統(tǒng)資源十分有限的應(yīng)用狀況是格格不入。3.嵌入式系統(tǒng)中層次存儲
關(guān)鍵的數(shù)據(jù)資料和系統(tǒng)配置腳本,需要在設(shè)計的時候保證其完整性的,
一般的數(shù)據(jù)又允許一定程度的誤碼損傷,不必需要嚴(yán)格保證存儲的正確性。
通用的文件系統(tǒng)是無法考慮這種有層次存儲的.4.嵌入式系統(tǒng)存儲時一般不使用硬盤,大多數(shù)是使用閃存來存放代碼和數(shù)據(jù),而且從成本考慮使用的閃存容量又極為有限,可是通用文件系統(tǒng)資源占用量大如:NTFS最小使用條件是50MB,這當(dāng)然無法用于輕便級的嵌入式系統(tǒng)了。一般來說嵌入式閃存文件系統(tǒng)要達(dá)到如下性能:1.掉電安全性(crash/powerdown-safe):
嵌入式系統(tǒng)的運行環(huán)境一般來說比較惡劣,這就對于閃存文件系統(tǒng)提出較高的要求,無論程序崩潰或系統(tǒng)掉電,都應(yīng)該不會影響文件系統(tǒng)的一致性和完整性。2.扇區(qū)平均使用(wear-leveling):
由于閃存芯片的擦除次數(shù)是有限制的,文件系統(tǒng)對閃存使用時必須充分考慮這個特性,因此最好能均勻使用閃存芯片的每個扇片,以延長閃存的使用壽命。3.高效率垃圾回收(garbagecollection):
任何存儲器在分配使用一段時間后,都會出現(xiàn)空區(qū)和碎片,這必然需要進(jìn)行碎片回收,以保證存儲器空間的高效使用。而閃存擦除是以扇區(qū)為單位的,因此碎片回收也應(yīng)以扇區(qū)為單位,先移動扇區(qū)數(shù)據(jù),再擦除扇區(qū)。4.低空間消耗(lowoverhead):overhead是用來指示文件系統(tǒng)管理結(jié)構(gòu)的空間消耗。這個空間是用于文件系統(tǒng)的建立,不用于實際數(shù)據(jù)的存儲。由于一般嵌入式系統(tǒng)中閃存空間是有限的,低overhead必然可以提高有用數(shù)據(jù)的存儲空間。4.2.2針對閃存芯片的文件系統(tǒng)目前支持閃存的文件系統(tǒng)主要有以下幾種:TFS(TinyFileSystem):
由原朗訊公司EdSutter開發(fā)的嵌入式系統(tǒng)引導(dǎo)平臺Umon的一部分。
Umon平臺是一個綜合的軟件包,目的是為嵌入式應(yīng)用提供一個通用引導(dǎo)平臺,文件系統(tǒng)是其中的一個功能。
優(yōu)點:
提供了掉電安全機制與垃圾回收機制,
缺點:
為保證掉電安全,需要增加額外的輔助空間;
文件需要較大的運行開銷,即使是很小的修改,也要回寫整個文件;
它的回收機制不僅浪費兩個扇區(qū),增加了復(fù)雜性。(2)ROMFS,FFS,CRAMFS等:
這些文件系統(tǒng)是在嵌入式小型開發(fā)時常見的,多用于早期小容量閃存設(shè)備,系統(tǒng)功能比較簡單,僅能提供基本的接口,都屬于只讀文件系統(tǒng)。(3)JFFS,JFFS2,YAFFS:
這幾種文件系統(tǒng)都是開源的,其中JFFS/JFFS2可以使用于原始(未經(jīng)初始化和包裝)的NAND閃存芯片和SM卡上,也可以使用支持CFI接口的NOR閃存芯片中,并已經(jīng)在Linux內(nèi)核中有相應(yīng)的模塊。
YAFFS目前只支持NAND.閃存,但它運行的速度比JFFS快,相對占用內(nèi)存資源較小,可是它沒有象JFFS2上使用壓縮技術(shù),因此一般使用在存儲壓縮較小的場合。4.3.閃存文件系統(tǒng)體系結(jié)構(gòu)閃存文件系統(tǒng)體系結(jié)構(gòu)嵌入式閃存文件系統(tǒng)對文件的操作是通過層次結(jié)構(gòu)來實現(xiàn)的。
首先對于用戶應(yīng)用程序來說,文件是邏輯文件,即有結(jié)構(gòu)的文件,用戶應(yīng)用程序通過使用標(biāo)準(zhǔn)函數(shù)庫中的一系列文件1/0函數(shù)調(diào)用對文件進(jìn)行操作。嵌入式閃存文件系統(tǒng)是嵌入式操作系統(tǒng)的一個組成部分,它的任務(wù)是對邏輯文件進(jìn)行管理,其工作包括提供對邏輯文件的操作(查找、增加、修改、刪除、拷貝等)接口,方便用戶操作文件和目錄。閃存文件系統(tǒng):是不能直接對物理設(shè)備進(jìn)行控制的,對物理設(shè)備的控制是通過存儲設(shè)備的驅(qū)動程序?qū)崿F(xiàn)的,如通過MTD驅(qū)動(MemoryTechnologyDrivers)或FTL驅(qū)動(FlashTranslationLayer)。設(shè)備驅(qū)動層:向上將閃存設(shè)備抽象成邏輯設(shè)備(邏輯塊與邏輯頁),為文件系統(tǒng)提供對物理設(shè)備操作的接口;向下實現(xiàn)對物理閃存設(shè)備的讀寫、擦除、校驗等工作;4.4Linux平臺中的VFS機制4.4.1VFS機制的描述4.4.2VFS的功能與操作4.4.3Linux中的文件類型與結(jié)構(gòu)4.4.1VFS機制的描述
Linux操作系統(tǒng)的一大特色:能夠支持多種文件系統(tǒng),并且隨著內(nèi)核的升級發(fā)展,還會有新的文件系統(tǒng)得到相應(yīng)的支持。然而每一種文件系統(tǒng)都有著自身的獨特組織結(jié)構(gòu)和相應(yīng)的操作方法,因此給系統(tǒng)的統(tǒng)一管理帶來了一定的麻煩!
Linux系統(tǒng)怎樣統(tǒng)一管理不同的文件系統(tǒng)?
VFS(VirtualFileSystem虛擬文件系統(tǒng))機制來支持多種文件系統(tǒng)的統(tǒng)一管理。
VFS只存在于內(nèi)存中,它在系統(tǒng)啟動時創(chuàng)建,在系統(tǒng)關(guān)閉時注銷;
作用是對各類不同文件系統(tǒng)作進(jìn)一步抽象,最終實現(xiàn)各類文件系統(tǒng)展現(xiàn)用戶面前的是一個統(tǒng)一的操作界面,并且能夠提供一個統(tǒng)一的應(yīng)用程序編程接口;VFS是物理(實際)文件系統(tǒng)和上層系統(tǒng)服務(wù)之間的邏輯接口,對文件系統(tǒng)內(nèi)部的實現(xiàn)細(xì)節(jié)進(jìn)行了抽象,向操作系統(tǒng)內(nèi)的其他部分提供了一個對文件操作的統(tǒng)一接口;通過使用VFS機制,將實際的文件系統(tǒng)與系統(tǒng)服務(wù)分離,為操作系統(tǒng)的擴(kuò)充帶來了很大的方便。使編程人員可以根據(jù)需要來設(shè)計新的文件系統(tǒng),然后使用
VFS來支持它;
新設(shè)計的文件系統(tǒng)必須為VFS提供對應(yīng)的接口才能讓
VFS順利地訪問文件;VFS,需要底層文件系統(tǒng)提供的接口包括超級塊(不同文件系統(tǒng)定義不同)、索引節(jié)點、文件操作函數(shù)等;
當(dāng)一個系統(tǒng)進(jìn)程發(fā)布了一個面向文件的系統(tǒng)調(diào)用,內(nèi)核將調(diào)用VFS中對應(yīng)的函數(shù),定位到實際文件系統(tǒng)中對應(yīng)函數(shù)操作,并通過這些操作訪問物理設(shè)備;4.4.2VFS的功能與操作Linux文件系統(tǒng)管理層次圖采用緩存區(qū)目的:增加系統(tǒng)的訪問速度。描述:1.當(dāng)應(yīng)用程序發(fā)出對文件的系統(tǒng)調(diào)用時,操作系統(tǒng)將對應(yīng)的文件系統(tǒng)調(diào)用(如open,read,write等)轉(zhuǎn)成對VFS的操作;2.在VFS中,查找該文件所在的實際文件系統(tǒng)并且
轉(zhuǎn)換成相對應(yīng)實際文件系統(tǒng)的操作。3.文件系統(tǒng)(實際)內(nèi)部實現(xiàn)了文件的物理和邏輯組織,并通過驅(qū)動程序提供的接口訪問實際物理設(shè)備。VFS的主要功能包括:1.對實際文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行抽象,以統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)進(jìn)行管理。2.在內(nèi)核層提供統(tǒng)一的文件處理形式,方便上層系統(tǒng)調(diào)用使用。3.接受其他內(nèi)核子系統(tǒng)的操作請求。4.支持多種實際文件系統(tǒng)之間的相互訪問。5.將對VFS文件系統(tǒng)(VFS)的操作映射到實際文件系統(tǒng)中對應(yīng)的操作。VFS原理簡述:文件系統(tǒng)初始化時,需要在VFS中登記,而且這些過程要在系統(tǒng)啟動操作系統(tǒng)初始化時完成。Linux運行時所支持的文件系統(tǒng)都維護(hù)在一個文件系統(tǒng)注冊鏈表中。該鏈表的每一個節(jié)點對應(yīng)一個文件系統(tǒng),其中包含了文件系統(tǒng)類型等信息,并且維護(hù)了一個指針用于指向下一個文件系統(tǒng)節(jié)點。文件系統(tǒng)類型的注冊和注銷的兩種途徑:一種:是在編譯內(nèi)核時確定是否將實際的文件系統(tǒng)內(nèi)建到內(nèi)核中,并且在系統(tǒng)初始化時通過內(nèi)嵌的函數(shù)調(diào)用向注冊鏈表登記;另外一種:利用Linux的模塊掛載(mount)/卸載(umount)
機制來實現(xiàn)。(如實驗中的NFS掛載)4.4.3Linux中的文件類型與結(jié)構(gòu)
VFS最終是與實際的文件系統(tǒng)相接口,實際文Linux中有三種不同類型的文件,它們是:
磁盤文件
設(shè)備文件
特殊文件磁盤文件:就是通常意義上的文件,一般以磁盤為
存儲介質(zhì)。
例如:ROMFS采用EPROM之類的介質(zhì);
RAMDISK是用在內(nèi)存中模擬磁盤介質(zhì);
嵌入式系統(tǒng)中則采用閃存作為存儲介質(zhì);這些文件包含兩個部分:
一是存儲的數(shù)據(jù)本身;
二是有關(guān)該文件的組織和管理信息;其中:與組織和管理有關(guān)的信息主要存儲在文件的索引節(jié)點(inode數(shù)據(jù)結(jié)構(gòu))和目錄項(dentry
數(shù)據(jù)結(jié)構(gòu))中。設(shè)備文件:同樣包含用于組織和管理的信息,同樣有存儲介質(zhì)上的索引節(jié)點與目錄項,但是卻不一定有存儲著的數(shù)據(jù)。根據(jù)設(shè)備類型和性質(zhì)的不同,它可以是用于存儲/讀出的(如字符設(shè)備與塊設(shè)備),可以是用于接收/發(fā)送的(如網(wǎng)絡(luò)設(shè)備),還可以是供采集/控制的(如機電傳感設(shè)備),甚至可以是多種設(shè)備類型的組合。特殊文件:
一般都與外部設(shè)備無關(guān),所涉及的介質(zhì)通常就是內(nèi)存以及CPU本身,在內(nèi)存中也有inode數(shù)據(jù)結(jié)構(gòu)和dentry數(shù)據(jù)結(jié)構(gòu)。Linux中/proc目錄下的一系統(tǒng)文件就是屬于這種特殊文件(相當(dāng)于windows下的控制面板,用于查看設(shè)備狀態(tài))4.5MTD技術(shù)在嵌入式設(shè)備中:往往沒有IDE接口的硬盤設(shè)備!那么嵌入式Linux系統(tǒng)如何來管理閃存芯片來實施數(shù)據(jù)存儲的呢?
MTD技術(shù)來管理閃存數(shù)據(jù)的存儲!
Linux系統(tǒng):使用MTD(MemoryTechnologyDevice)技術(shù)來支持多種閃存技術(shù)。
MTD設(shè)備:就是閃存芯片、小型閃存卡、記憶棒之類的設(shè)備;這類設(shè)備在嵌入式系統(tǒng)中使用是越來越頻繁。
MTD驅(qū)動程序:就是針對以上設(shè)備在Linux系統(tǒng)下嵌入式環(huán)境中使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海農(nóng)林職業(yè)技術(shù)學(xué)院《學(xué)前兒童五大領(lǐng)域教育及活動設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年中學(xué)語文教師資格證考試試卷及答案
- 心理健康教育與2025年相關(guān)考核題目及答案
- 網(wǎng)絡(luò)技術(shù)與應(yīng)用2025年考試試卷及答案
- 2025年中學(xué)教師資格考試試題及答案
- 山東省濟(jì)南市實驗中學(xué)2025年高三第四次模擬考試:歷史試題試卷含解析
- 江蘇省句容市崇明中學(xué)2025年初三中考適應(yīng)性月考數(shù)學(xué)試題(一)含解析
- 2025年注冊會計師考試試卷及答案呈現(xiàn)
- 內(nèi)蒙古科技職業(yè)學(xué)院《AutoCAD1》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市豐華中學(xué)2024-2025學(xué)年高三下學(xué)期第一次月考-生物試題含解析
- 中國產(chǎn)教融合行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報告(2024-2030版)
- 2025年山西焦煤集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 人教版五年級數(shù)學(xué)下冊全套試卷附完整答案
- 踝關(guān)節(jié)骨折的護(hù)理查房課件
- 第六屆“四川工匠杯”職業(yè)技能大賽(健康照護(hù)賽項)理論參考試題庫(含答案)
- 2024-2030年中國生姜及深加工市場發(fā)展動態(tài)及前景規(guī)劃研究報告
- 消防中控室操作人員培訓(xùn)
- 急診一病一品
- 學(xué)前教育法培訓(xùn)
- 公司員工手冊(最完整)
- 2025年發(fā)展對象考試題庫含答案
評論
0/150
提交評論