什么是LinuxMTD設備文件系統(tǒng)

這篇文章給大家介紹什么是Linux MTD設備文件系統(tǒng),內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創(chuàng)新互聯(lián)公司企業(yè)建站,十年網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于做網站、成都網站設計中不同領域進行深入了解和探索,創(chuàng)新互聯(lián)在網站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網頁中充分展現,通過對客戶行業(yè)精準市場調研,為客戶提供的解決方案。

1. 文件系統(tǒng)簡介

文件系統(tǒng)是一種存儲和組織計算機數據的方法,它使得對其訪問和查找變得容易,文件系統(tǒng)使用文件和樹形目錄的抽象邏輯概念代替了硬盤和光盤等物理設備使用數據塊的概念,用戶使用文件系統(tǒng)來保存數據不必關心數據實際保存在硬盤(或者光盤)的地址為多少的數據塊上,只需要記住這個文件的所屬目錄和文件名。在寫入新數據之前,用戶不必關心硬盤上的那個塊地址沒有被使用,硬盤上的存儲空間管理(分配和釋放)功能由文件系統(tǒng)自動完成,用戶只需要記住數據被寫入到了哪個文件中。

文件系統(tǒng)通常使用硬盤和光盤這樣的存儲設備,并維護文件在設備中的物理位置。但是,實際上文件系統(tǒng)也可能僅僅是一種訪問數據的界面而已,實際的數據是通過網絡協(xié)議(如NFS、SMB、9P等)提供的或者內存上,甚至可能根本沒有對應的文件(如proc文件系統(tǒng))。

嚴格地說,文件系統(tǒng)是一套實現了數據的存儲、分級組織、訪問和獲取等操作的抽象數據類型(Abstract data type)。

2. 存儲設備和文件系統(tǒng)的關系

在嵌入式系統(tǒng)中,與文件系統(tǒng)相關的存儲設備包括硬盤、Flash存儲器等。Flash存儲器又分為Flash芯片設備(Raw Flash device,也叫MTD設備)和帶Flash控制器的設備(Flash Translation Layer device, FTL設備),兩者的關鍵區(qū)別是是否帶有Flash控制器,這也直接決定了文件系統(tǒng)分為不同的兩類。

其中MTD設備包括NOR Flash、NAND Flash等,FTL設備包括SD、eMMC、SSD、USB大容量存儲設備等。JFFS2、YAFFS2、UBIF、LogFS支持MTD設備,FAT、EXT3/4、XFS和Btrfs支持 FTL設備和硬盤(HDD)。MTD設備對應的設備文件為/dev/mtd,FTL設備對應的設備文件可為/dev/mtdblock。

3. MTD設備文件系統(tǒng)

3.1.1   JFFS2

JFFS意為“Journaling Flash File System”,該文件系統(tǒng)是瑞典Axis通信公司開發(fā)的一種基于Flash存儲器的日志文件系統(tǒng)。該公司于1999年在GNU/Linux上發(fā)行了第一版JFFS文件系統(tǒng),后來經過Redhat公司的發(fā)展,發(fā)行了第二個版本的JFFS2。JFFS2 是一個日志結構(log-structured)的文件系統(tǒng),將文件系統(tǒng)的數據和原數據以節(jié)點的形式存儲在閃存上。主要用于NOR型閃存,基于MTD驅動層,特點是:可讀寫的、支持數據壓縮的、基于哈希表的日志型文件系統(tǒng),并提供了崩潰/掉電安全保護,提供“寫平衡”支持等。缺點主要是當文件系統(tǒng)已滿或接近滿時,因為垃圾收集的關系而使JFFS2的運行速度大大放慢。

JFFS2的缺點包括:掛載時間過長;對芯片存儲塊讀寫不均衡;擴展性較差等。JFFS2不適合用于NAND閃存主要是因為NAND閃存的容量一般較大,這樣導致JFFS2為維護日志節(jié)點所占用的內存空間迅速增大,另外,JFFS2文件系統(tǒng)在掛載時需要掃描整個FLASH的內容,以找出所有的日志節(jié)點,建立文件結構,對于大容量的NAND閃存會耗費大量時間。

3.1.2   YAFFS2

YAFFS/YAFFS2是專為嵌入式系統(tǒng)使用NAND型閃存而設計的一種日志型文件系統(tǒng)。與JFFS2相比,它減少了一些功能(例如不支持數據壓縮),所以速度更快,掛載時間很短,對內存的占用較小。另外,它還是跨平臺的文件系統(tǒng)。

    YAFFS/YAFFS2自帶NAND芯片的驅動,并且為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API,用戶可以不使用Linux中的MTD與VFS,直接對文件系統(tǒng)操作。當然,YAFFS也可與MTD驅動程序配合使用。這方便了其跨平臺移植。

YAFFS與YAFFS2的主要區(qū)別在于,前者僅支持小頁(512 Bytes)NAND閃存,后者則可支持大頁(2KB) NAND閃存。同時,YAFFS2在內存空間占用、垃圾回收速度、讀/寫速度等方面均有大幅提升。

3.1.3   UBIFS

UBIFS(Unsorted Block Image File System)最早在2006年由IBM與Nokia的工程師Thomas Gleixner,Artem Bityutskiy所設計,專門為了解決MTD(Memory Technology Device)設備所遇到的瓶頸。由于NAND Flash容量的暴漲,YAFFS等皆無法再去控制NAND Flash的空間。UBIFS通過子系統(tǒng)UBI處理與MTD device之間的動作。與JFFS2一樣,UBIFS 建構于MTD device 之上,因而與一般的block device不兼容。

UBIFS在設計與性能上均較YAFFS2、JFFS2更適合NAND Flash,例如:UBIFS 支持 write-back, 其寫入的數據會被cache, 直到有必要寫入時才寫到Flash,大地降低分散小區(qū)塊數量并提高I/O效率。UBIFS文件系統(tǒng)目錄存儲在Flash上,UBIFS mount時不需要scan整個Flash的數據來重新創(chuàng)建文件目錄。支持on-the-flight壓縮文件數據,而且可選擇性壓縮部份文件。另外UBIFS使用日志(journal),可減少對Flash index的更新頻率。

3.1.4   總結

當前主流的選擇是UBIFS和YAFFS2,如果是非Linux系統(tǒng)可以選用移植性較好的YAFFS2。

關于什么是Linux MTD設備文件系統(tǒng)就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

文章題目:什么是LinuxMTD設備文件系統(tǒng)
轉載來源:http://bm7419.com/article44/igcgee.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、軟件開發(fā)、Google、動態(tài)網站自適應網站、定制網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司