linux虛擬檔案系統

2021-08-05 21:03:14 字數 1253 閱讀 9966

虛擬檔案系統(virtual filesystem)也可以稱為虛擬檔案系統轉換(virtual filesystem switch-vfs),是乙個核心軟體層,用來處理與unix標準檔案系統相關的所有系統呼叫。其健壯性表現在能為各種檔案系統提供乙個通用介面。

$ cp/floppy/test /tmp/test
其中 /floppy是ms-dos磁碟的乙個安裝點,而/tmp是乙個標準的第二擴充套件檔案系統(ext2)的目錄。vfs是使用者的應用程式與檔案系統實現之間的抽象層。因此,cp程式並不需要知道/floppy/test 和 /tmp/test是什麼檔案系統型別。cp直接與vfs互動(怎麼互動?通過unix提供的系統呼叫比如open等)

vfs所隱含的主要思想在於引進了乙個通用的檔案模型,這個模型能夠表示所有支援的檔案系統。

通用檔案模型由下列物件型別組成:

(1)超級塊物件(superblock object)

存放已安裝檔案系統的有關資訊。這類物件通常對應於存放在磁碟上的檔案系統控制塊(filesystem control block)

(2)索引節點物件(inode object)

存放關於具體檔案的一般資訊。對基於磁碟的檔案系統,這類物件通常對應與存放在磁碟上的檔案控制塊(file control block)。每個索引節點物件都有乙個索引節點號,這個節點號唯一的標識檔案系統中的檔案

(3)目錄項物件(dentry object)

存放目錄項(也就是檔案的特定名稱)與對應檔案進行鏈結的有關資訊。每個磁碟檔案系統都以自己特有的方式將該類資訊存在磁碟上

(4)檔案物件(file object)

存放開啟檔案與程序之間進行互動的有關資訊。這類資訊僅當程序訪問檔案期間存放在核心記憶體中

vfs還具有乙個和系統效能相關的重要作用。最近最常使用的目錄項物件被放在所謂目錄項快取記憶體(dentry cache)的磁碟快取記憶體中,以加速從檔案路徑名到索引節點的轉換過程。

參見我的另一篇博文

Linux虛擬檔案系統

這一周主要學了檔案系統的相關知識,通過學習基本上掌握了 linux 檔案系統的結構,檔案型別,以及讀取模式等等,也學會怎麼用命令簡單的建立乙個檔案系統。linux 的檔案系統主要有 ext2 ext3 ext4 在windows 下乙個分割槽會採用的一棵目錄樹來管理,而 linux 則只有一棵目錄樹...

Linux虛擬檔案系統

檔案系統是一套實現了資料的儲存 分級組織 訪問和獲取等操作的抽象資料型別 檔案系統是一種用於向使用者提供底層資料訪問的機制。它將裝置中的空間劃分為特定大小的塊,一般每塊512位元組。資料儲存在這些塊中,大小被修正為占用整數個塊。由檔案系統軟體來負責將這些塊組織為檔案和目錄,並記錄哪些塊被分配給了哪個...

虛擬檔案系統

虛擬檔案系統 virtual file system,簡稱 vfs 是 linux 核心中的乙個軟體層,用於給使用者空間的程式提供檔案系統介面 同時,它也提供了核心中的乙個 抽象功能,允許不同的檔案系統共存。系統中所有的檔案系統不但依賴 vfs 共存,而且也依靠 vfs 協同工作。為了能夠支援各種實...