嵌入式Linux下各種檔案系統名詞解析

2021-08-04 15:33:34 字數 1551 閱讀 1246

1. yaffs2

yaffs(yet another flash file system)是由aleph one公司所發展出來的nand flash 嵌入式檔案系統。

nand塊驅動一般採用fat16作為檔案系統,但不夠健壯,也不夠貼近flash的特性。這些塊驅動通過乙個「本地--物理」的對映層來**可寫的、類似於磁碟扇區的塊。當使用fat16時,這些檔案系統工作的相當好,它們記憶體消耗小,**尺寸也很小。但就像所有基於fat的系統一樣,它們很容易損壞(如,丟失簇)。 

其他的途徑則是設計整個檔案系統,不是基於塊驅動,而且是flash友好的,這允許更多的餘地來解決上述所提到的問題。  當前有兩個linux檔案系統能非常好的支援norflash,那就是jffs以及它的公升級版本jffs2。這兩者都提供日誌機制,大大的提公升了健壯性,這也是嵌入式系統特別重要的乙個特性。不幸的是,它們在ram消耗和啟動時間方面都不是很好。

設計yaffs2的目的就是:nandflash友好的、通過提供日誌機制達到健壯的、大大減少jffsx所具有的ram消耗和啟動時間。yaffs主要是用於內部nand而不是可移動的nand(sm卡)。

2.devfs

linux下專門

用來對裝置進行管理

的檔案系統,devfs和sysfs就是其中兩種。在2.6核心以前一直使用的是devfs,devfs掛載於/dev目錄下,提供了一種類似於檔案的方法來管理位於/dev目錄下的所有裝置,我們知道/dev目錄下的每乙個檔案都對應的是乙個裝置,至於當前該裝置存在與否先且不論,而且這些特殊檔案是位於根檔案系統上的,在製作檔案系統的時候我們就已經建立了這些裝置檔案,因此通過操作這些特殊檔案,可以實現與核心進行互動。但是devfs檔案系統有一些缺點,例如:不確定的裝置對映,有時乙個裝置對映的裝置檔案可能不同,例如我的u盤可能對應sda有可能對應sdb;沒有足夠的主/輔裝置號,當裝置過多的時候,顯然這會成為乙個問題;/dev目錄下檔案太多而且不能表示當前系統上的實際裝置;命名不夠靈活,不能任意指定等等。

3.sysfs

在linux2.6核心以後,引入了乙個新的檔案系統sysfs,它掛載於/sys目錄下,跟devfs一樣它也是乙個虛擬檔案系統,也是用來對系統的裝置進行管理的,它把實際連線到系統上的裝置和匯流排組織成乙個分級的檔案,使用者空間的程式同樣可以利用這些資訊以實現和核心的互動,該檔案系統是當前系統上實際裝置樹的乙個直觀反應,它是通過kobject子系統來建立這個資訊的,當乙個kobject被建立的時候,對應的檔案和目錄也就被建立了,位於/sys下的相關目錄下,既然每個裝置在sysfs中都有唯一對應的目錄,那麼也就可以被使用者空間讀寫了。使用者空間的工具udev就是利用了sysfs提供的資訊來實現所有devfs的功能的,但不同的是udev執行在使用者空間中,而devfs卻執行在核心空間,而且udev不存在devfs那些先天的缺陷。很顯然,sysfs將是未來發展的方向。

4.udev

udev是一種工具,它能夠根據系統中的硬體裝置的狀況動態更新裝置檔案,包括裝置檔案的建立,刪除等。裝置檔案通常放在/dev目錄下,使用udev後,在/dev下面只包含系統中真實存在的裝置。它於硬體平台無關的,位於使用者空間,需要核心sysfs和tmpfs的支援,sysfs為udev提供裝置入口和uevent通道,tmpfs為udev裝置檔案提供存放空間。

嵌入式linux檔案系統修復

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

嵌入式檔案系統小結

近日看了幾個fat檔案系統的原始碼,主要有ucfs efsl minfat等,小結一下。嵌入式的檔案系統雖有不少,但在消費類電子產品上,還是以fat為主,儲存體為nand flash,加上mass storage功能,能讓使用者在pc上管理檔案,如在 電子詞典上等,都用得很廣泛。ucfs 主要針對於...

構造嵌入式Linux的檔案系統

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