色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>JFFS2文件系統及新特性簡析

JFFS2文件系統及新特性簡析

2017-11-02 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

JFFS2 是一個開放源碼的項目(www.infradead.org)。 它是在閃存上使用非常廣泛的讀/寫文件系統,在嵌入式系統中被普遍的應用。這篇文章首先分析了在閃存上使用 JFFS2 的必要性,然后詳細的闡述了 JFFS2 實現的內部機制,包括日志結構的文件系統,關鍵的數據結構,掛載過程和垃圾收集機制。同時也指出了 JFFS2 的局限性,并介紹了最新的針對 JFFS2 的不足進行改進的補丁程序。最后對 JFFS3 的設計思想和現在的開發狀況給予了簡單的介紹。
  1. 為什么需要 JFFS2
  這一小節首先介紹了閃存相對于磁盤介質的特別之處,然后分析了將磁盤文件系統運行在閃存上的不足,同時也給出了我們使用 JFFS2 的理由。
  1.1 閃存(Flash Memory) 的特性和限制
  這里所介紹的閃存的特性和限制都是從上層的文件系統的角度來看的,而不會涉及到具體的物理特性。總的來說,有兩種類型的 flash memory: NOR flash 和 NAND flash. 先介紹一下這兩種閃存所具有的共同特性。
  A) 閃存的最小尋址單位是字節(byte),而不是磁盤上的扇區(sector)。這意味著我們可以從一塊閃存的任意偏移(offset)讀數據,但并不表明對閃存寫操作也是以字節為單位進行的。我們會在下面的闡述中找到答案。
  B) 當一塊閃存處在干凈的狀態時(被擦寫過,但是還沒有寫操作發生),在這塊flash上的每一位(bit)都是邏輯1。
  C) 閃存上的每一位(bit)可以被寫操作置成邏輯0。 可是把邏輯 0 置成邏輯 1 卻不能按位(bit)來操作,而只能按擦寫塊(erase block)為單位進行擦寫操作。擦寫塊的大小從 4K 到128K 不等。從上層來看,擦寫所完成的功能就是把擦寫塊內的每一位都重設置(reset)成邏輯 1。
  D) 閃存的使用壽命是有限的。具體來說,閃存的使用壽命是由擦寫塊的最大可擦寫次數來決定的。超過了最大可擦寫次數,這個擦寫塊就成為壞塊(bad block)了。因此為了避免某個擦寫塊被過度擦寫,以至于它先于其他的擦寫塊達到最大可擦寫次數,我們應該在盡量小的影響性能的前提下,使擦寫操作均勻的分布在每個擦寫塊上。這個過程叫做磨損平衡(wear leveling)。
  NOR flash 與 NAND flash 的不同之處:
  A) NOR flash 讀/寫操作的基本單位是字節;而 NAND flash 又把擦寫塊分成頁(page), 頁是寫操作的基本單位,一般一個頁的大小是 512 或 2K 個字節。對于一個頁的重復寫操作次數是有限制的,不同廠商生產的 NAND flash 有不同的限制,有些是一次,有些是四次,六次或十次。
  B) 按照現在的技術水平,一般來說NOR flash擦寫塊的最大可擦寫次數在十萬次左右,NAND flash擦寫塊的最大可擦寫次數在百萬次左右。
  1.2 閃存轉換層
  將磁盤文件系統(ext2, FAT)運行在閃存上的很自然的方法就是在文件系統和閃存之間提供一個閃存轉換層(Flash Translation Layer), 它的功能就是將底層的閃存模擬成一個具有 512字節扇區大小的標準塊設備(block device)。對于文件系統來說,就像工作在一個普通的塊設備上一樣,沒有任何的差別。
  圖一
  JFFS2文件系統及新特性簡析
  一個閃存轉換層的最簡單的實現就是將模擬的塊設備一對一的映射到閃存上。舉例來說,當上層的文件系統要寫一個塊設備的扇區時,閃存轉換層要做下面的操作來完成這個寫請求:
  1 將這個扇區所在擦寫塊地數據讀到內存中,放在緩存(buffer)中
  2 將緩存中與這個扇區對應的內容用新的內容替換掉
  3 對該擦寫塊執行擦寫操作
  4 將緩沖中的數據寫回該擦寫塊
  這種實現方式的缺點是很明顯的:
  1 效率低,對一個扇區的更新要重寫整個擦寫塊上的數據,造成數據帶寬很大的浪費。
  2 沒有提供磨損平衡,那些被頻繁更新的數據所在擦寫塊將首先變成壞塊。
  3 非常不安全,很容易引起數據的丟失。如果在上面的第三步和第四步之間發生了突然掉電(power loss),那么整個擦寫塊中的數據就全部丟失了。這在突然掉電經常發生的嵌入式系統中是不能接受的。
  MTD 中的內核模塊 mtdblock 就是基于這種機制實現的,同時還作了一些優化。只有當文件系統的寫請求超過了一個擦寫塊的邊界的時候,它才會執行對閃存的擦寫,寫回操作。
  因此,為了解決上面這種實現方式的問題,閃存轉換層需要做更多的事情。閃存轉換層不能只實現這種一對一的映射,而需要將模擬塊設備的扇區存儲在閃存的不同位置,并且維持扇區到閃存的映射關系。更進一步,閃存轉換層還必須能理解上層文件系統的語義,否則閃存轉換層沒辦法做垃圾回收(Garbage Collection)。這樣實現最大的問題就是效率不高,具體來說,閃存轉換層為了能理解上層文件系統的語義,必須對文件系統的每個寫請求進行解析,這勢必帶來寫操作性能的下降。另外要求文件系統下面的一層去理解文件系統的語義,很顯然這不是最好的解決方式。我們還有很好的解決問題的方法,就是實現一個特別針對閃存的文件系統。而 JFFS2 就是一個這樣的文件系統。
  2. JFFS2
  有 JFFS2 就要有 JFFS v1,沒錯,JFFS v1 最初是由瑞典的 Axis Communications AB 公司開發的,使用在他們的嵌入式設備中,并且在 1999 年末基于 GNU GPL 發布出來。最初的發布版本基于 Linux 內核 2.0,后來 RedHat 將它移植到 Linux 內核 2.2,做了大量的測試和 bug fix 的工作使它穩定下來,并且對簽約客戶提供商業支持。但是在使用的過程中,JFFS v1 設計中的局限被不斷的暴露出來。于是在 2001 年初的時候,RedHat 決定實現一個新的閃存文件系統,這就是現在的 JFFS2。下面將詳細介紹 JFFS2 設計中主要的思想,關鍵的數據結構和垃圾收集機制。這將為我們實現一個閃存上的文件系統提供很好的啟示。首先,JFFS2 是一個日志結構(log-structured)的文件系統,包含數據和原數據(meta-data)的節點在閃存上順序的存儲。JFFS2 之所以選擇日志結構的存儲方式,是因為對閃存的更新應該是 out-of-place 的更新方式,而不是對磁盤的 in-place 的更新方式。在閃存上 in-place 更新方式的問題我們已經在閃存轉換層一節描述過了。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲国产综合另类视频| 中文字幕人成人乱码亚洲影视| 久久艹综合| 插我一区二区在线观看| 亚洲性夜色噜噜噜网站2258KK| 欧美影院在线观看完整版 mp4 | 高H各种PLAY全肉NP| 一级做a爰片久久毛片免费 | 97视频免费观看2区| 羞羞漫画免费漫画页面在线看漫画秋蝉| 老头狠狠挺进小莹体内视频| 国产久青青青青在线观看| 99久久re6热精品首页| 一级做a爰片久久毛片苍井优| 小妇人电影免费完整观看2021| 青青久在线| 欧美成人无码A区在线观看免费| 海角社区在线视频播放观看 | 上原结衣快播| 嫩小xxxxbbbb| 久久99re2热在线播放7| 国产小视频国产精品| 大学生第一次破苞疼哭了| 999久久久国产精品蜜臀AV| 伊人大香线蕉精品在线播放| 午夜剧场1000| 少男同志freedeos| 入禽太深免费高清在线观看5| 免费看午夜高清性色生活片| 久久亚洲视频| 久久久久久久久a免费| 精品久久久爽爽久久久AV| 好爽别插了无码视频| 国产精品一区二区AV白丝在线| 菲律宾毛片| 都市妖奇谈有声| 郭德纲于谦2012最新相声| 动漫AV纯肉无码AV电影网| 国产传媒18精品免费观看| 99这里有精品视频视频| 99国产精品人妻无码免费|