嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件_第1頁
嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件_第2頁
嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件_第3頁
嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件_第4頁
嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

嵌入式linux系統(tǒng)中常用的文件系統(tǒng)嵌入式linux系統(tǒng)中常用的文件系統(tǒng)1嵌入式文件系統(tǒng):Ext2/Ext3RomfsRamdiskCramfsJffs/jffs2TmpfsYaffs用戶可以根據(jù)可靠性、健壯性和增強(qiáng)的功能的需求來選擇文件系統(tǒng)的類型。嵌入式文件系統(tǒng):要求文件系統(tǒng)在頻繁的文件操作(例如,新建,刪除,截?cái)啵┫履軌虮3州^高的讀寫性能,要求低碎片化。Linux下的日志文件系統(tǒng)(XFS,ReiserFS,Ext3等)能保持?jǐn)?shù)據(jù)的完整性,但消耗過多系統(tǒng)資源的弱點(diǎn)使之不能成為嵌入式系統(tǒng)中的主流應(yīng)用。并且這些都是專門為硬盤這類的存儲(chǔ)設(shè)備優(yōu)化,對(duì)于flash這類的存儲(chǔ)介質(zhì)并不適用。因?yàn)楝F(xiàn)有的嵌入式文件系統(tǒng)的碎片化的問題,大部分的嵌入式設(shè)備只給用戶提供了只讀文件系統(tǒng),給用戶帶來不便。嵌入式文件系統(tǒng)的載體是以Flash為主的存儲(chǔ)介質(zhì),所以為了延長Flash的使用壽命,應(yīng)該盡量減少對(duì)Flash的寫入操作。文件系統(tǒng)采用DirectI/O的話,使I/O效率明顯降低,增加了寫入次數(shù);但采用延時(shí)寫的話,雖然能夠降低碎片問題,如果加入日志系統(tǒng)的話,有不能保證數(shù)據(jù)的安全性。這是一個(gè)矛盾。Linux對(duì)文件系統(tǒng)的要求:要求文件系統(tǒng)在頻繁的文件操作(例如,新建,刪除,截?cái)啵┫履軌蜷W存類通常使用以下幾種文件系統(tǒng):CRAMFS、RAMFS、JFFS2、yaffs,有時(shí)也用EXT2,不過其效果欠佳。閃存類通常使用以下幾種文件系統(tǒng):CRAMFS、RAMFS、J第二版擴(kuò)展文件系統(tǒng)(Ext2fs)Ext2fs是Linux事實(shí)上的標(biāo)準(zhǔn)文件系統(tǒng),它已經(jīng)取代了它的前任—擴(kuò)展文件系統(tǒng)(或Extfs)。Extfs支持的文件大小最大為2GB,支持的最大文件名稱大小為255個(gè)字符—而且它不支持索引節(jié)點(diǎn)(包括數(shù)據(jù)修改時(shí)間標(biāo)記)。第二版擴(kuò)展文件系統(tǒng)(Ext2fs)Ext2fs是Linu它的優(yōu)點(diǎn)是:

Ext2fs支持達(dá)4TB的內(nèi)存。

Ext2fs文件名稱最長可以到1012個(gè)字符。

當(dāng)創(chuàng)建文件系統(tǒng)時(shí),管理員可以選擇邏輯塊的大小(通常大小可選擇1024、2048和4096字節(jié))。

Ext2fs了實(shí)現(xiàn)快速符號(hào)鏈接:不需要為此目的而分配數(shù)據(jù)塊,并且將目標(biāo)名稱直接存儲(chǔ)在索引節(jié)點(diǎn)(inode)表中。這使性能有所提高,特別是在速度上。

它的優(yōu)點(diǎn)是:

Ext2fs支持達(dá)4TB的內(nèi)存。

ERamdisk文件系統(tǒng)Ramdisk是通過將計(jì)算機(jī)的RAM用作設(shè)備來創(chuàng)建和掛裝文件系統(tǒng)的一種機(jī)制,它通常用于無盤系統(tǒng)(當(dāng)然包括微型嵌入式設(shè)備,它只包含作為永久存儲(chǔ)媒質(zhì)的閃存芯片)。用Ramdisk掛裝Ext2fs

通過使用Ramdisk的概念,可以在嵌入式設(shè)備中創(chuàng)建并掛裝Ext2文件系統(tǒng)(以及用于這一目的的任何文件系統(tǒng))。

Ramdisk文件系統(tǒng)Ramdisk是通過將計(jì)算機(jī)的RARomFS文件系統(tǒng)uClinux系統(tǒng)多采用Romfs文件系統(tǒng),Romfs是一種相對(duì)簡單、占用空間較少的文件系統(tǒng)。空間的節(jié)約來自于兩個(gè)方面:首先內(nèi)核支持Romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼;其次romfs文件系統(tǒng)相對(duì)簡單,在建立文件系統(tǒng)超級(jí)塊(Superblock)需要更少的存儲(chǔ)空間。Romfs是只讀的文件系統(tǒng),禁止寫操作,因此系統(tǒng)同時(shí)需要虛擬盤(RAMDISK)支持臨時(shí)文件和數(shù)據(jù)文件的存儲(chǔ)。

只讀文件系統(tǒng),可以放在ROM空間,也可以在系統(tǒng)的RAM中,嵌入式linux中常用來作根文件系統(tǒng)。RomFS文件系統(tǒng)uClinux系統(tǒng)多采用Romfs文件系統(tǒng)CRAMFS文件系統(tǒng)CRAMFS中的數(shù)據(jù)已被壓縮,屬于只讀性文件系統(tǒng),不能在閃存中修改。用戶想獲取數(shù)據(jù)時(shí),CRAMFS先把數(shù)據(jù)送到RAM中,用戶從RAM中讀取。一般CRAMFS的上層為RAMFS文件系統(tǒng),經(jīng)修改過的文件都保存在RAM中。RAMFS和CRAMFS結(jié)合的缺陷在于,一旦出現(xiàn)掉電等特殊情況,保存在RAMFS中的修改數(shù)據(jù)將全部丟失。CRAMFS文件系統(tǒng)CRAMFS中的數(shù)據(jù)已被壓縮,屬于只讀性為此Linux采用了新的文件系統(tǒng)-JFFS2,它允許在閃存中直接進(jìn)行修改,在掉電時(shí)會(huì)自動(dòng)保存數(shù)據(jù)。JFFS2的數(shù)據(jù)壓縮方式和CRAMFS一樣,其數(shù)據(jù)可存放在全部的閃存區(qū)域中,數(shù)據(jù)的寫入和刪除分布在很大一片區(qū)域中以防止同樣的塊會(huì)被重復(fù)使用。為此Linux采用了新的文件系統(tǒng)-JFFS2,它允許在閃存中MTD設(shè)備與JFFS文件系統(tǒng)JFFS2是比較常用的嵌入式日志文件系統(tǒng)。JFFS2因?yàn)橛幸韵逻@些優(yōu)點(diǎn)而在無盤嵌入式設(shè)備中越來越受歡迎:JFFS2在扇區(qū)級(jí)別上執(zhí)行閃存擦除/寫/讀操作要比Ext2文件系統(tǒng)好。JFFS2提供了比Ext2fs更好的崩潰/掉電安全保護(hù)。當(dāng)需要更改少量數(shù)據(jù)時(shí),Ext2文件系統(tǒng)將整個(gè)扇區(qū)復(fù)制到內(nèi)存(DRAM)中,在內(nèi)存中合并新數(shù)據(jù),并寫回整個(gè)扇區(qū)。這意味著為了更改單個(gè)字,必須對(duì)整個(gè)扇區(qū)(64KB)執(zhí)行讀/擦除/寫例程―這樣做的效率非常低。要是運(yùn)氣差,當(dāng)正在DRAM中合并數(shù)據(jù)時(shí),發(fā)生了電源故障或其它事故,那么將丟失整個(gè)數(shù)據(jù)集合,因?yàn)樵趯?shù)據(jù)讀入DRAM后就擦除了閃存扇區(qū)。JFFS2附加文件而是重寫整個(gè)扇區(qū),并且具有崩潰/掉電安全保護(hù)這一功能。MTD設(shè)備與JFFS文件系統(tǒng)JFFS2是比較常用的嵌入式日志MTD設(shè)備與JFFS文件系統(tǒng)這可能是最重要的一點(diǎn):JFFS2是專門為象閃存芯片那樣的嵌入式設(shè)備創(chuàng)建的,所以它的整個(gè)設(shè)計(jì)提供了更好的閃存管理。除了JFFS2之外,另外一種的嵌入式文件系統(tǒng)的選擇是YAFFS2。MTD設(shè)備與JFFS文件系統(tǒng)這可能是最重要的一點(diǎn):JFFS2Yaffs與jffs2文件系統(tǒng)比較Nand上yaffs文件系統(tǒng)的優(yōu)勢(shì)

?專門為Nandflash設(shè)計(jì)的日志文件系統(tǒng),提供磨損平衡和調(diào)電恢復(fù)的魯棒性。Yaffs將文件組織成固定大?。?12B)的數(shù)據(jù)段,在進(jìn)行文件修改時(shí),總是先寫入新的數(shù)據(jù)塊,然后將舊的的數(shù)據(jù)塊從文件中刪除。jffs/jffs2文件系統(tǒng)的缺點(diǎn):?不適合大容量的Nandflash?jffs的日志通過jffs_node建立在RAM中,占用RAM空間:對(duì)于128MB的Nand大概需要4MB的空間來維護(hù)節(jié)點(diǎn)?啟動(dòng)的時(shí)候需要掃描日志節(jié)點(diǎn),不適合大容量的Nandflash?FAT系統(tǒng)沒有日志

Yaffs與jffs2文件系統(tǒng)比較Nand上yaffs文件系嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件tmpfs文件系統(tǒng)當(dāng)Linux運(yùn)行于嵌入式設(shè)備上時(shí),設(shè)備就成為功能齊全的單元,許多守護(hù)進(jìn)程會(huì)在后臺(tái)運(yùn)行并生成許多日志消息。另外,所有內(nèi)核日志記錄機(jī)制,象syslogd、dmesg和klogd,會(huì)在/var和/tmp目錄下生成許多消息。由于這些進(jìn)程產(chǎn)生了大量數(shù)據(jù),所以允許將所有這些寫操作都發(fā)生在閃存是不可取的。由于在重新引導(dǎo)時(shí)這些消息不需要持久存儲(chǔ),所以這個(gè)問題的解決方案是使用tmpfs。tmpfs文件系統(tǒng)當(dāng)Linux運(yùn)行于嵌入式設(shè)備上時(shí),設(shè)tmpfs是基于內(nèi)存的文件系統(tǒng),它主要用于減少對(duì)系統(tǒng)的不必要的閃存寫操作這一唯一目的。因?yàn)閠mpfs駐留在RAM中,所以寫/讀/擦除的操作發(fā)生在RAM中而不是在閃存中。因此,日志消息寫入RAM而不是閃存中,在重新引導(dǎo)時(shí)不會(huì)保留它們。tmpfs還使用磁盤交換空間來存儲(chǔ),并且當(dāng)為存儲(chǔ)文件而請(qǐng)求頁面時(shí),使用虛擬內(nèi)存(VM)子系統(tǒng)。

tmpfs是基于內(nèi)存的文件系統(tǒng),它主要用于減少對(duì)系統(tǒng)的不必tmpfs的優(yōu)點(diǎn)包括:

a)動(dòng)態(tài)文件系統(tǒng)大小—文件系統(tǒng)大小可以根據(jù)被復(fù)制、創(chuàng)建或刪除的文件或目錄的數(shù)量來縮放。使得能夠最理想地使用內(nèi)存。

b)速度—因?yàn)閠mpfs駐留在RAM,所以讀和寫幾乎都是瞬時(shí)的。即使以交換的形式存儲(chǔ)文件,I/O操作的速度仍非??臁?/p>

tmpfs的一個(gè)缺點(diǎn)是當(dāng)系統(tǒng)重新引導(dǎo)時(shí)會(huì)丟失所有數(shù)據(jù)。因此,重要的數(shù)據(jù)不能存儲(chǔ)在tmpfs上。tmpfs的優(yōu)點(diǎn)包括:

a)動(dòng)態(tài)文件系統(tǒng)大小—文件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)嵌入式linux系統(tǒng)中常用的文件系統(tǒng)23嵌入式文件系統(tǒng):Ext2/Ext3RomfsRamdiskCramfsJffs/jffs2TmpfsYaffs用戶可以根據(jù)可靠性、健壯性和增強(qiáng)的功能的需求來選擇文件系統(tǒng)的類型。嵌入式文件系統(tǒng):要求文件系統(tǒng)在頻繁的文件操作(例如,新建,刪除,截?cái)啵┫履軌虮3州^高的讀寫性能,要求低碎片化。Linux下的日志文件系統(tǒng)(XFS,ReiserFS,Ext3等)能保持?jǐn)?shù)據(jù)的完整性,但消耗過多系統(tǒng)資源的弱點(diǎn)使之不能成為嵌入式系統(tǒng)中的主流應(yīng)用。并且這些都是專門為硬盤這類的存儲(chǔ)設(shè)備優(yōu)化,對(duì)于flash這類的存儲(chǔ)介質(zhì)并不適用。因?yàn)楝F(xiàn)有的嵌入式文件系統(tǒng)的碎片化的問題,大部分的嵌入式設(shè)備只給用戶提供了只讀文件系統(tǒng),給用戶帶來不便。嵌入式文件系統(tǒng)的載體是以Flash為主的存儲(chǔ)介質(zhì),所以為了延長Flash的使用壽命,應(yīng)該盡量減少對(duì)Flash的寫入操作。文件系統(tǒng)采用DirectI/O的話,使I/O效率明顯降低,增加了寫入次數(shù);但采用延時(shí)寫的話,雖然能夠降低碎片問題,如果加入日志系統(tǒng)的話,有不能保證數(shù)據(jù)的安全性。這是一個(gè)矛盾。Linux對(duì)文件系統(tǒng)的要求:要求文件系統(tǒng)在頻繁的文件操作(例如,新建,刪除,截?cái)啵┫履軌蜷W存類通常使用以下幾種文件系統(tǒng):CRAMFS、RAMFS、JFFS2、yaffs,有時(shí)也用EXT2,不過其效果欠佳。閃存類通常使用以下幾種文件系統(tǒng):CRAMFS、RAMFS、J第二版擴(kuò)展文件系統(tǒng)(Ext2fs)Ext2fs是Linux事實(shí)上的標(biāo)準(zhǔn)文件系統(tǒng),它已經(jīng)取代了它的前任—擴(kuò)展文件系統(tǒng)(或Extfs)。Extfs支持的文件大小最大為2GB,支持的最大文件名稱大小為255個(gè)字符—而且它不支持索引節(jié)點(diǎn)(包括數(shù)據(jù)修改時(shí)間標(biāo)記)。第二版擴(kuò)展文件系統(tǒng)(Ext2fs)Ext2fs是Linu它的優(yōu)點(diǎn)是:

Ext2fs支持達(dá)4TB的內(nèi)存。

Ext2fs文件名稱最長可以到1012個(gè)字符。

當(dāng)創(chuàng)建文件系統(tǒng)時(shí),管理員可以選擇邏輯塊的大?。ㄍǔ4笮】蛇x擇1024、2048和4096字節(jié))。

Ext2fs了實(shí)現(xiàn)快速符號(hào)鏈接:不需要為此目的而分配數(shù)據(jù)塊,并且將目標(biāo)名稱直接存儲(chǔ)在索引節(jié)點(diǎn)(inode)表中。這使性能有所提高,特別是在速度上。

它的優(yōu)點(diǎn)是:

Ext2fs支持達(dá)4TB的內(nèi)存。

ERamdisk文件系統(tǒng)Ramdisk是通過將計(jì)算機(jī)的RAM用作設(shè)備來創(chuàng)建和掛裝文件系統(tǒng)的一種機(jī)制,它通常用于無盤系統(tǒng)(當(dāng)然包括微型嵌入式設(shè)備,它只包含作為永久存儲(chǔ)媒質(zhì)的閃存芯片)。用Ramdisk掛裝Ext2fs

通過使用Ramdisk的概念,可以在嵌入式設(shè)備中創(chuàng)建并掛裝Ext2文件系統(tǒng)(以及用于這一目的的任何文件系統(tǒng))。

Ramdisk文件系統(tǒng)Ramdisk是通過將計(jì)算機(jī)的RARomFS文件系統(tǒng)uClinux系統(tǒng)多采用Romfs文件系統(tǒng),Romfs是一種相對(duì)簡單、占用空間較少的文件系統(tǒng)??臻g的節(jié)約來自于兩個(gè)方面:首先內(nèi)核支持Romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼;其次romfs文件系統(tǒng)相對(duì)簡單,在建立文件系統(tǒng)超級(jí)塊(Superblock)需要更少的存儲(chǔ)空間。Romfs是只讀的文件系統(tǒng),禁止寫操作,因此系統(tǒng)同時(shí)需要虛擬盤(RAMDISK)支持臨時(shí)文件和數(shù)據(jù)文件的存儲(chǔ)。

只讀文件系統(tǒng),可以放在ROM空間,也可以在系統(tǒng)的RAM中,嵌入式linux中常用來作根文件系統(tǒng)。RomFS文件系統(tǒng)uClinux系統(tǒng)多采用Romfs文件系統(tǒng)CRAMFS文件系統(tǒng)CRAMFS中的數(shù)據(jù)已被壓縮,屬于只讀性文件系統(tǒng),不能在閃存中修改。用戶想獲取數(shù)據(jù)時(shí),CRAMFS先把數(shù)據(jù)送到RAM中,用戶從RAM中讀取。一般CRAMFS的上層為RAMFS文件系統(tǒng),經(jīng)修改過的文件都保存在RAM中。RAMFS和CRAMFS結(jié)合的缺陷在于,一旦出現(xiàn)掉電等特殊情況,保存在RAMFS中的修改數(shù)據(jù)將全部丟失。CRAMFS文件系統(tǒng)CRAMFS中的數(shù)據(jù)已被壓縮,屬于只讀性為此Linux采用了新的文件系統(tǒng)-JFFS2,它允許在閃存中直接進(jìn)行修改,在掉電時(shí)會(huì)自動(dòng)保存數(shù)據(jù)。JFFS2的數(shù)據(jù)壓縮方式和CRAMFS一樣,其數(shù)據(jù)可存放在全部的閃存區(qū)域中,數(shù)據(jù)的寫入和刪除分布在很大一片區(qū)域中以防止同樣的塊會(huì)被重復(fù)使用。為此Linux采用了新的文件系統(tǒng)-JFFS2,它允許在閃存中MTD設(shè)備與JFFS文件系統(tǒng)JFFS2是比較常用的嵌入式日志文件系統(tǒng)。JFFS2因?yàn)橛幸韵逻@些優(yōu)點(diǎn)而在無盤嵌入式設(shè)備中越來越受歡迎:JFFS2在扇區(qū)級(jí)別上執(zhí)行閃存擦除/寫/讀操作要比Ext2文件系統(tǒng)好。JFFS2提供了比Ext2fs更好的崩潰/掉電安全保護(hù)。當(dāng)需要更改少量數(shù)據(jù)時(shí),Ext2文件系統(tǒng)將整個(gè)扇區(qū)復(fù)制到內(nèi)存(DRAM)中,在內(nèi)存中合并新數(shù)據(jù),并寫回整個(gè)扇區(qū)。這意味著為了更改單個(gè)字,必須對(duì)整個(gè)扇區(qū)(64KB)執(zhí)行讀/擦除/寫例程―這樣做的效率非常低。要是運(yùn)氣差,當(dāng)正在DRAM中合并數(shù)據(jù)時(shí),發(fā)生了電源故障或其它事故,那么將丟失整個(gè)數(shù)據(jù)集合,因?yàn)樵趯?shù)據(jù)讀入DRAM后就擦除了閃存扇區(qū)。JFFS2附加文件而是重寫整個(gè)扇區(qū),并且具有崩潰/掉電安全保護(hù)這一功能。MTD設(shè)備與JFFS文件系統(tǒng)JFFS2是比較常用的嵌入式日志MTD設(shè)備與JFFS文件系統(tǒng)這可能是最重要的一點(diǎn):JFFS2是專門為象閃存芯片那樣的嵌入式設(shè)備創(chuàng)建的,所以它的整個(gè)設(shè)計(jì)提供了更好的閃存管理。除了JFFS2之外,另外一種的嵌入式文件系統(tǒng)的選擇是YAFFS2。MTD設(shè)備與JFFS文件系統(tǒng)這可能是最重要的一點(diǎn):JFFS2Yaffs與jffs2文件系統(tǒng)比較Nand上yaffs文件系統(tǒng)的優(yōu)勢(shì)

?專門為Nandflash設(shè)計(jì)的日志文件系統(tǒng),提供磨損平衡和調(diào)電恢復(fù)的魯棒性。Yaffs將文件組織成固定大?。?12B)的數(shù)據(jù)段,在進(jìn)行文件修改時(shí),總是先寫入新的數(shù)據(jù)塊,然后將舊的的數(shù)據(jù)塊從文件中刪除。jffs/jffs2文件系統(tǒng)的缺點(diǎn):?不適合大容量的Nandflash?jffs的日志通過jffs_node建立在RAM中,占用RAM空間:對(duì)于128MB的Nand大概需要4MB的空間來維護(hù)節(jié)點(diǎn)?啟動(dòng)的時(shí)候需要掃描日志節(jié)點(diǎn),不適合大容量的Nandflash?FAT系統(tǒng)沒有日志

Yaffs與jffs2文件系統(tǒng)比較Nand上yaffs文件系嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式linux系統(tǒng)中常用的文件系統(tǒng)課件嵌入式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論