嵌入式檔案系統小結

來源:互聯網
上載者:User
    近日看了幾個fat檔案系統的源碼,主要有ucfs、efsl、minfat等,小結一下。
   
    嵌入式的檔案系統雖有不少,但在消費類電子產品上,還是以fat為主,儲存體為Nand Flash,加上mass storage功能,能讓使用者在pc上管理檔案,如在mp3、電子詞典上等,都用得很廣泛。
   
    ucfs:主要針對於多任務下的應用,程式中很多地方都沒有使用固定的變數,而是每次都重新運算獲得即時值,如檔案系統類型判斷就用了FS__fat_which_type這個函數,此函數每次都重新計算bpb中的值,判斷是fat12/16/32。ucfs也缺少cache的管理,無論讀和寫都是立即物理操作,這樣導致每次檔案操作時,物理的讀寫太頻繁,嚴重影響效率。這個源碼的版本是1.24,而最新版本的介紹,已經支援read cache了。
    單從效率上考慮,此檔案系統並不能獲得優勢。但是對於多任務環境下,應該是能可靠穩定地工作。
   
    efsl:efsl是在sourceforge.net上開源的一個項目,此項目正在持續更新,源碼中也有很多注釋,研讀起來比較容易,潛力不錯。efsl相容fat12/16/32,同時支援多裝置及多檔案操作。每個裝置的驅動程式,只需要提供扇區寫和扇區讀兩個函數即可。
   
    minifat:這個是toshiba提供的一個fs。此檔案系統只支援fat12/16,提供了比較完整的檔案操作函數,支援多裝置和多檔案,也支援cache管理。會有較高的效率。但檔案系統不支援長檔名的讀取,所有的檔案都嚴格要求是Dos8.3格式的短檔案名稱。總體來說代碼清晰,可以自行擴充fat32及長檔名的支援。
   
    最後一個fs,是一個朋友給的源碼,支援fat12/16、unicode 、長檔名、多檔案操作,但不能同時支援多裝置。但在記憶體管理和字串管理上面,效率比較低。
   
   
以上檔案系統,都沒有像yaffs那樣,針對於特定的實體儲存體載體來做最佳化。在對效率要求更高的基礎上,就需要針對特定的裝置進行最佳化。

zhongyh
<end>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.