嵌入式檔案系統小結

2021-04-02 17:23:26 字數 908 閱讀 7559

近日看了幾個fat檔案系統的原始碼,主要有ucfs、efsl、minfat等,小結一下。

嵌入式的檔案系統雖有不少,但在消費類電子產品上,還是以fat為主,儲存體為nand flash,加上mass storage功能,能讓使用者在pc上管理檔案,如在***、電子詞典上等,都用得很廣泛。

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

嵌入式linux檔案系統修復

最近在做linux系統整合的時候會發現檔案系統損壞的問題,導致一些分割槽無法使用。發生以上問題時可以使用fsck命令進行修復。fsck命令的主要功能就是對檔案系統進行修復。fsck命令的主要引數如下 t 給定檔案系統的型式,若在 etc fstab 中已有定義或 kernel 本身已支援的則不需加上...

嵌入式檔案系統之 cramfs檔案系統的製作工具

cramfs檔案系統簡介 cramfs檔案系統是由linuxtorvalds編寫的專門針對快閃儲存器設計的唯讀壓縮檔案系統。與ramdisk方式不同,cramfs檔案系統不需要一次性地將檔案系統中的所有內容都解壓到記憶體中,而只是在系統需要訪問某個資料時,馬上計算出該資料在cramfs中的位置,將其...

構造嵌入式Linux的檔案系統

1 引言 在數字資訊科技和網路技術高速發展的今天,手持資訊產品正拓展著一片越來越大的市場,pda 手機 掌上電腦 資訊家電等各式手持產品已擁有了龐大的使用者群。手持資訊產品所運用的最關鍵的核心技術就是嵌入式作業系統。而其中,linux以其開源的核心和免費的應用程式 能夠自由地移植和開發的優勢,更迎合...