YAFFS檔案系統簡介

來源:互聯網
上載者:User

YAFFS檔案系統簡介

   YAFFS(Yet Another Flash Filing System)是第一個專門為NAND Flash儲存空間設計的嵌入式檔案系統,適用於大容量的存放裝置;並且是在GPL(General Public License)協議下發布的,可在其網站免費獲得原始碼。

YAFFS 是基於日誌的檔案系統,提供磨損平衡和掉電恢複的健壯性。它還為大容量的Flash 晶片做了很好的調整,針對啟動時間和RAM 的使用做了最佳化。它適用於大容量的存放裝置,已經在Linux 和WinCE 商業產品中使用。

詳細內容

   YAFFS中,檔案是以固定大小的資料區塊進行儲存的,塊的大小可以是512位元組、1 024位元組或者2 048位元組。這種實現依賴於它能夠將一個資料區塊頭和每個資料區塊關聯起來。每個檔案(包括目錄)都有一個資料區塊頭與之相對應,資料區塊頭中儲存了 ECC(Error Correction Code)和檔案系統的組織資訊,用於錯誤偵測和壞塊處理。充分考慮了NAND Flash的特點,YAFFS把這個資料區塊頭儲存在Flash的16位元組備用空間中。當檔案系統被掛載時,只須掃描儲存空間的備用空間就能將檔案系統資訊讀入記憶體,並且駐留在記憶體中,不僅加快了檔案系統的載入速度,也提高了檔案的訪問速度,但是增加了記憶體的消耗。

  為了在節省記憶體的同時提高檔案資料區塊的尋找速度,YAFFS利用更高效的映射結構把檔案位置映 射到物理位置。檔案的資料區段被組織成樹型結構,這個樹型結構具有32位元組的節點,每個內部節點都包括8個指向其他節點的指標,分葉節點包括16個2位元組的指 向物理地址的指標。YAFFS在檔案進行改寫時總是先寫入新的資料區塊,然後將舊的資料區塊從檔案中刪除。這樣即使在修改檔案時意外掉電,丟失的也只是這一次修改資料的最小寫入單位,從而實現了掉電保護,保證了資料完整性。

  結合貪心演算法的高效性和隨機播放的平均性,YAFFS實現了兼顧損耗平均和減小系統開銷的目的。當滿足特定的小機率條件時,就會嘗試隨機播放一個可回收的頁面;而在其他情況下,則使用貪心演算法來回收最“髒”的塊[2]。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.