基礎(chǔ)知識(shí)!嵌入式上根文件ROMFS哟忍、JFFS2狡门、NFS、CRAMFS锅很、YAFFS其馏、UBIFS...

姓名:袁永輝? ? ? 學(xué)號(hào):17101223423

轉(zhuǎn)載自:http://mp.weixin.qq.com/s/FGPdjMT1Rv7RHD2B6ORzQg

【嵌牛導(dǎo)讀】:Linux支持多種文件系統(tǒng)類(lèi)型,在嵌入式上常用有:ROMFS爆安、JFFS2叛复、NFS、CRAMFS、YAFFS褐奥、UBIFS等咖耘。

【嵌牛鼻子】: Linux ;文件系統(tǒng)

【嵌牛提問(wèn)】:ROMFS撬码、JFFS2儿倒、NFS、CRAMFS呜笑、YAFFS夫否、UBIFS文件系統(tǒng)的主要特點(diǎn)及適用操作是什么?

【嵌牛正文】:

1.JFFS文件系統(tǒng)

JFFS文件系統(tǒng)最早是由瑞典Axis Communications公司基于Linux2.0的內(nèi)核為嵌入式系統(tǒng)開(kāi)發(fā)的文件系統(tǒng)叫胁。JFFS2是RedHat公司基于JFFS開(kāi)發(fā)的閃存文件系統(tǒng)凰慈,最初是針對(duì)RedHat公司的嵌入式產(chǎn)品eCos開(kāi)發(fā)的嵌入式文件系統(tǒng),所以JFFS2也可以用在Linux, uCLinux中曹抬。

Jffs2: 日志閃存文件系統(tǒng)版本2 (Journalling Flash FileSystem v2)

主要用于NOR型閃存溉瓶,基于MTD驅(qū)動(dòng)層,特點(diǎn)是:可讀寫(xiě)的谤民、支持?jǐn)?shù)據(jù)壓縮的堰酿、基于哈希表的日志型文件系統(tǒng),并提供了崩潰/掉電安全保護(hù)张足,提供“寫(xiě)平衡”支持等触创。缺點(diǎn)主要是當(dāng)文件系統(tǒng)已滿(mǎn)或接近滿(mǎn)時(shí),因?yàn)槔占年P(guān)系而使jffs2的運(yùn)行速度大大放慢为牍。

目前jffs3正在開(kāi)發(fā)中哼绑。關(guān)于jffs系列文件系統(tǒng)的使用詳細(xì)文檔,可參考MTD補(bǔ)丁包中mtd-jffs-HOWTO.txt碉咆。

jffsx不適合用于NAND閃存主要是因?yàn)镹AND閃存的容量一般較大抖韩,這樣導(dǎo)致jffs為維護(hù)日志節(jié)點(diǎn)所占用的內(nèi)存空間迅速增大,另外疫铜,jffsx文件系統(tǒng)在掛載時(shí)需要掃描整個(gè)FLASH的內(nèi)容茂浮,以找出所有的日志節(jié)點(diǎn),建立文件結(jié)構(gòu)壳咕,對(duì)于大容量的NAND閃存會(huì)耗費(fèi)大量時(shí)間席揽。

yaffs:Yet Another Flash File System

yaffs/yaffs2是專(zhuān)為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計(jì)的一種日志型文件系統(tǒng)。與jffs2相比谓厘,它減少了一些功能(例如不支持?jǐn)?shù)據(jù)壓縮)幌羞,所以速度更快,掛載時(shí)間很短竟稳,對(duì)內(nèi)存的占用較小属桦。另外熊痴,它還是跨平臺(tái)的文件系統(tǒng),除了Linux和eCos地啰,還支持WinCE, pSOS和ThreadX等愁拭。

yaffs/yaffs2自帶NAND芯片的驅(qū)動(dòng),并且為嵌入式系統(tǒng)提供了直接訪問(wèn)文件系統(tǒng)的API亏吝,用戶(hù)可以不使用Linux中的MTD與VFS,直接對(duì)文件系統(tǒng)操作盏混。當(dāng)然蔚鸥,yaffs也可與MTD驅(qū)動(dòng)程序配合使用。

yaffs與yaffs2的主要區(qū)別在于许赃,前者僅支持小頁(yè)(512 Bytes) NAND閃存止喷,后者則可支持大頁(yè)(2KB) NAND閃存。同時(shí)混聊,yaffs2在內(nèi)存空間占用弹谁、垃圾回收速度、讀/寫(xiě)速度等方面均有大幅提升句喜。

Cramfs:Compressed ROM File System

Cramfs是Linux的創(chuàng)始人 Linus Torvalds參與開(kāi)發(fā)的一種只讀的壓縮文件系統(tǒng)预愤。它也基于MTD驅(qū)動(dòng)程序。

在cramfs文件系統(tǒng)中咳胃,每一頁(yè)(4KB)被單獨(dú)壓縮植康,可以隨機(jī)頁(yè)訪問(wèn),其壓縮比高達(dá)2:1,為嵌入式系統(tǒng)節(jié)省大量的Flash存儲(chǔ)空間展懈,使系統(tǒng)可通過(guò)更低容量的FLASH存儲(chǔ)相同的文件销睁,從而降低系統(tǒng)成本。

Cramfs文件系統(tǒng)以壓縮方式存儲(chǔ)存崖,在運(yùn)行時(shí)解壓縮冻记,所以不支持應(yīng)用程序以XIP方式運(yùn)行,所有的應(yīng)用程序要求被拷到RAM里去運(yùn)行来惧,但這并不代表比Ramfs需求的RAM空間要大一點(diǎn)冗栗,因?yàn)镃ramfs是采用分頁(yè)壓縮的方式存放檔案,在讀取檔案時(shí)违寞,不會(huì)一下子就耗用過(guò)多的內(nèi)存空間贞瞒,只針對(duì)目前實(shí)際讀取的部分分配內(nèi)存,尚沒(méi)有讀取的部分不分配內(nèi)存空間趁曼,當(dāng)我們讀取的檔案不在內(nèi)存時(shí)军浆,Cramfs文件系統(tǒng)自動(dòng)計(jì)算壓縮后的資料所存的位置,再即時(shí)解壓縮到RAM中挡闰。

另外乒融,它的速度快掰盘,效率高,其只讀的特點(diǎn)有利于保護(hù)文件系統(tǒng)免受破壞赞季,提高了系統(tǒng)的可靠性愧捕。

由于以上特性,Cramfs在嵌入式系統(tǒng)中應(yīng)用廣泛申钩。

但是它的只讀屬性同時(shí)又是它的一大缺陷次绘,使得用戶(hù)無(wú)法對(duì)其內(nèi)容對(duì)進(jìn)擴(kuò)充。

Cramfs映像通常是放在Flash中撒遣,但是也能放在別的文件系統(tǒng)里邮偎,使用loopback 設(shè)備可以把它安裝別的文件系統(tǒng)里。

Romfs

傳統(tǒng)型的Romfs文件系統(tǒng)是一種簡(jiǎn)單的义黎、緊湊的禾进、只讀的文件系統(tǒng),不支持動(dòng)態(tài)擦寫(xiě)保存廉涕,按順序存放數(shù)據(jù)泻云,因而支持應(yīng)用程序以XIP(eXecute In Place,片內(nèi)運(yùn)行)方式運(yùn)行狐蜕,在系統(tǒng)運(yùn)行時(shí)宠纯,節(jié)省RAM空間。uClinux系統(tǒng)通常采用Romfs文件系統(tǒng)馏鹤。

其他文件系統(tǒng):fat/fat32也可用于實(shí)際嵌入式系統(tǒng)的擴(kuò)展存儲(chǔ)器(例如PDA, Smartphone, 數(shù)碼相機(jī)等的SD卡)征椒,這主要是為了更好的與最流行的Windows桌面操作系統(tǒng)相兼容。ext2也可以作為嵌入式Linux的文件系統(tǒng)湃累,不過(guò)將它用于FLASH閃存會(huì)有諸多弊端勃救。

2. 基于RAM的文件系統(tǒng)

(1) Ramdisk

Ramdisk是將一部分固定大小的內(nèi)存當(dāng)作分區(qū)來(lái)使用。它并非一個(gè)實(shí)際的文件系統(tǒng)治力,而是一種將實(shí)際的文件系統(tǒng)裝入內(nèi)存的機(jī)制蒙秒,并且可以作為根文件系統(tǒng)。將一些經(jīng)常被訪問(wèn)而又不會(huì)更改的文件(如只讀的根文件系統(tǒng))通過(guò)Ramdisk放在內(nèi)存中宵统,可以明顯地提高系統(tǒng)的性能晕讲。

在Linux的啟動(dòng)階段,initrd提供了一套機(jī)制马澈,可以將內(nèi)核映像和根文件系統(tǒng)一起載入內(nèi)存瓢省。

(2)ramfs/tmpfs

Ramfs是Linus Torvalds開(kāi)發(fā)的一種基于內(nèi)存的文件系統(tǒng),工作于虛擬文件系統(tǒng)(VFS)層痊班,不能格式化勤婚,可以創(chuàng)建多個(gè),在創(chuàng)建時(shí)可以指定其最大能使用的內(nèi)存大小涤伐。(實(shí)際上馒胆,VFS本質(zhì)上可看成一種內(nèi)存文件系統(tǒng)缨称,它統(tǒng)一了文件在內(nèi)核中的表示方式,并對(duì)磁盤(pán)文件系統(tǒng)進(jìn)行緩沖祝迂。)

Ramfs/tmpfs文件系統(tǒng)把所有的文件都放在RAM中睦尽,所以讀/寫(xiě)操作發(fā)生在RAM中,可以用ramfs/tmpfs來(lái)存儲(chǔ)一些臨時(shí)性或經(jīng)常要修改的數(shù)據(jù)型雳,例如/tmp和/var目錄当凡,這樣既避免了對(duì)Flash存儲(chǔ)器的讀寫(xiě)損耗,也提高了數(shù)據(jù)讀寫(xiě)速度纠俭。

Ramfs/tmpfs相對(duì)于傳統(tǒng)的Ramdisk的不同之處主要在于:不能格式化宁玫,文件系統(tǒng)大小可隨所含文件內(nèi)容大小變化。

Tmpfs的一個(gè)缺點(diǎn)是當(dāng)系統(tǒng)重新引導(dǎo)時(shí)會(huì)丟失所有數(shù)據(jù)柑晒。

3. 網(wǎng)絡(luò)文件系統(tǒng)NFS (Network File System)

NFS是由Sun開(kāi)發(fā)并發(fā)展起來(lái)的一項(xiàng)在不同機(jī)器、不同操作系統(tǒng)之間通過(guò)網(wǎng)絡(luò)共享文件的技術(shù)眷射。在嵌入式Linux系統(tǒng)的開(kāi)發(fā)調(diào)試階段匙赞,可以利用該技術(shù)在主機(jī)上建立基于NFS的根文件系統(tǒng),掛載到嵌入式設(shè)備妖碉,可以很方便地修改根文件系統(tǒng)的內(nèi)容涌庭。

以上討論的都是基于存儲(chǔ)設(shè)備的文件系統(tǒng)(memory-based file system),它們都可用作Linux的根文件系統(tǒng)欧宜。實(shí)際上坐榆,Linux還支持邏輯的或偽文件系統(tǒng)(logical or pseudo file system),例如procfs(proc文件系統(tǒng))冗茸,用于獲取系統(tǒng)信息席镀,以及devfs(設(shè)備文件系統(tǒng))和sysfs,用于維護(hù)設(shè)備文件夏漱。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豪诲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挂绰,更是在濱河造成了極大的恐慌屎篱,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葵蒂,死亡現(xiàn)場(chǎng)離奇詭異交播,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)践付,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)秦士,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人荔仁,你說(shuō)我怎么就攤上這事伍宦⊙克溃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵次洼,是天一觀的道長(zhǎng)关贵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卖毁,這世上最難降的妖魔是什么揖曾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮亥啦,結(jié)果婚禮上炭剪,老公的妹妹穿的比我還像新娘。我一直安慰自己翔脱,他們只是感情好奴拦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著届吁,像睡著了一般错妖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疚沐,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天暂氯,我揣著相機(jī)與錄音,去河邊找鬼亮蛔。 笑死痴施,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的究流。 我是一名探鬼主播辣吃,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梯嗽!你這毒婦竟也來(lái)了齿尽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灯节,失蹤者是張志新(化名)和其女友劉穎循头,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體炎疆,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卡骂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了形入。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片全跨。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亿遂,靈堂內(nèi)的尸體忽然破棺而出浓若,到底是詐尸還是另有隱情渺杉,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布挪钓,位于F島的核電站是越,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏碌上。R本人自食惡果不足惜倚评,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馏予。 院中可真熱鬧天梧,春花似錦、人聲如沸霞丧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛹尝。三九已至敷燎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箩言,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工焕襟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陨收,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓鸵赖,卻偏偏與公主長(zhǎng)得像务漩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子它褪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容