虛擬檔案系統(virtual file system, 簡稱 vfs), 是 linux 核心中的乙個軟體層,用於給使用者空間的程式提供檔案系統介面;同時,它也提供了核心中的乙個 抽象功能,允許不同的檔案系統共存。系統中所有的檔案系統不但依賴 vfs 共存,而且也依靠 vfs 協同工作。
為了能夠支援各種實際檔案系統,vfs 定義了所有檔案系統都支援的基本的、概念上的介面和資料 結構;同時實際檔案系統也提供 vfs 所期望的抽象介面和資料結構,將自身的諸如檔案、目錄等概念在形式 上與vfs的定義保持一致。換句話說,乙個實際的檔案系統想要被 linux 支援,就必須提供乙個符合vfs標準 的介面,才能與 vfs 協同工作。實際檔案系統在統一的介面和資料結構下隱藏了具體的實現細節,所以在vfs 層和核心的其他部分看來,所有檔案系統都是相同的。圖3顯示了vfs在核心中與實際的檔案系統的協同關係。
1.虛擬檔案系統位於應用與具體檔案系統之間,其主要起適配的作用。對於應用程式來說,其訪問的介面是完全一致的(例如open、read和write等),並不需要關係底層的檔案系統細節。也就是乙個應用可以對乙個檔案進行任何的讀寫,不用關心檔案系統的具體實現。
2.vfs實現了一部分公共的功能,例如頁快取和inode快取等,從而避免多個檔案系統重複實現的問題。
檔案系統 虛擬檔案系統(二)
二 虛擬檔案系統 6 與程序相關的檔案結構 檔案最終要被程序訪問,乙個程序可以開啟多個檔案,而乙個檔案可以被多個程序同時訪問。這裡程序是通過檔案描述符來抽象所開啟的檔案的,用使用者開啟檔案表來描述和記錄程序開啟檔案描述符的使用情況。1 檔案物件 每個開啟的檔案都用乙個32位的數字來表示下乙個讀寫的位...
Linux虛擬檔案系統
這一周主要學了檔案系統的相關知識,通過學習基本上掌握了 linux 檔案系統的結構,檔案型別,以及讀取模式等等,也學會怎麼用命令簡單的建立乙個檔案系統。linux 的檔案系統主要有 ext2 ext3 ext4 在windows 下乙個分割槽會採用的一棵目錄樹來管理,而 linux 則只有一棵目錄樹...
虛擬檔案系統proc
proc 檔案系統是 gnu linux 特有的。它是乙個虛擬的檔案系統,因此在該目錄中的所有檔案都不會消耗磁碟空間。通過它能夠非常簡便地了解系統資訊,尤其是其中的大部分檔案是人類可閱讀的 不過還是需要一些幫助 許多程式實際上只是從 proc 的檔案中收集資訊,然後按照它們自己的格式組織後顯示出來。...