嵌入式文件系統(tǒng)
導(dǎo)讀:嵌入式文件系統(tǒng)是什么?對嵌入式文件系統(tǒng)有什么要求?目前常用的嵌入式文件系統(tǒng)又有哪些呢?
本文引用地址:http://www.ex-cimer.com/article/283736.htm一、嵌入式文件系統(tǒng)是什么
嵌入式文件系指的是嵌入式系統(tǒng)所應(yīng)用的文件系統(tǒng)。嵌入式文件系統(tǒng)與我們通常所用的文件系統(tǒng)有較大的區(qū)別:我們平時所用的文件系統(tǒng)大致都是相同的,但嵌入式文件系統(tǒng)要為嵌入式系統(tǒng)的設(shè)計目的服務(wù),不同用途的嵌入式操作系統(tǒng)下的文件系統(tǒng)在許多方面各不相同。目前大多數(shù)嵌入式系統(tǒng)采用的都是Linux,而嵌入式Linux常用的文件系統(tǒng)有Ext2fs第二版擴展文件系統(tǒng)、JFFS文件系統(tǒng)、YAFFS文件系統(tǒng)等。
二、對嵌入式文件系統(tǒng)的要求
1、由于嵌入式文件系統(tǒng)的載體是以Flash為主的存儲介質(zhì),F(xiàn)lash的擦除次數(shù)是有限的,所以為了延長Flash的使用壽命,應(yīng)該盡量減少對Flash的寫入操作,盡量使對Flash的寫入操作均勻分布在整個Flash上;
2、由于各種存儲器在分配使用一段時間后,會出現(xiàn)空缺和碎片數(shù)據(jù),這就需要進(jìn)行垃圾回收以保證存儲器空間高效使用。Flash存儲器以扇區(qū)為單位,垃圾回收也應(yīng)該以扇區(qū)為單位,嵌入式Flash文件系統(tǒng)回收要先移動扇區(qū)數(shù)據(jù),再擦除整個扇區(qū);
3、要求文件系統(tǒng)在頻繁的文件操作(例如:新建、刪除、截斷等)下能夠保持較高的讀寫性能,要求低碎片化;
4、要求掉電安全,無數(shù)據(jù)的丟失現(xiàn)象。
三、各嵌入式文件系統(tǒng)比較
Ramfs是Linus Torvalds開發(fā)的,Ramfs把所用文件都放在RAM里運行,通常存放一些臨時或經(jīng)常要修改的數(shù)據(jù)。不像ramdisk的固定大小,Ramfs的大小可調(diào)。
Tmpfs是基于內(nèi)存的文件系統(tǒng),由于它駐留在RAM中,所以讀寫都在RAM中,因此讀寫瞬間完成。文件系統(tǒng)大小可變,但是重新引導(dǎo)數(shù)據(jù)丟失。
JFFS2是RedHat基于JFFS開發(fā)的閃存文件系統(tǒng),是一種可讀、可壓縮的日志型文件系統(tǒng),提供崩潰/掉電安全保護(hù),使用了基于哈希表的日志節(jié)點結(jié)構(gòu),加快了對節(jié)點操作速度,支持?jǐn)?shù)據(jù)壓縮,提供“寫平衡”支持,是目前最流行的文件系統(tǒng)。缺點是由于碎片收集的問題使得文件系統(tǒng)已滿或者接近已滿時,JFFS2運行變慢。
Yaffs是一種和jffs2類似的閃存文件系統(tǒng),專為嵌入式系統(tǒng)使用Nand型閃存而設(shè)計的一種日志文件系統(tǒng)。比jffs2少了一個功能,因此速度更快,對內(nèi)存要求比較小。自帶Nand芯片驅(qū)動,提供了直接訪問文件系統(tǒng)的API。用戶可以直接對文件系統(tǒng)操作。
嵌入式文件系統(tǒng)相關(guān)文章推薦閱讀:
評論