天天看點

linux檔案系統(一)——VFS的概念

聲明:本Linux檔案系統部落格,共分四節,是根據網上多個相關部落格,以及自己的了解加上相關資料總結而成。(作者:lvyilong316)

Linux 之是以能支援除了Ext2檔案系統之外的各種檔案系統,是因為Linux提供了一種統一的架構,就是所謂的虛拟檔案系統轉換(Virtual FilesystemSwitch),簡稱虛拟檔案系統(VFS)。這樣, 使用者程式可以通過同一個檔案系統界面,也就是同一組系統調用,能夠對各種不同的檔案系統以及檔案進行操作。

首先,VFS 隻對挂載到檔案系統種的檔案系統進行管理,即它時按需管理的。

其次,因為它繼承了Unix的設計思想,是以它也是對檔案,目錄項,索引節點和超級塊進行管理。

(1)超級塊對象:描述已安裝檔案系統。

每個檔案系統 都對應一個超級對象。檔案系統的控制資訊存儲在超級塊中。

(2)索引節點對象:描述一個檔案。

每個檔案 都有一個索引節點對象。每個索引節點對象都有一索引節點号---->正是用這個号來唯一的辨別某個檔案系統中的指定檔案。

(3)目錄項對象:描述一個目錄項,是路徑的組成部分。

VFS把每個目錄看作一個由若幹子目錄和檔案組成的正常檔案。

例如:我們在查找路徑名:/tmp/test時,核心為根目錄“/”建立第一個目錄項對象,為根目錄下tmp項建立第二級目錄項對象,為/tmp目錄下的test項建立第三級目錄項對象。 

(4)檔案對象:描述由程序打開的檔案。

說明:

1.因為 VFS 将目錄作為一個檔案來處理,是以不存在目錄對象。雖然目錄項不同于目錄,但目錄卻和檔案相同。

2.Linux中将檔案的相關資訊和檔案本身區分開了。在Linux 中檔案的相關資訊,被存儲在一個單獨的資料結構中,該結構被稱為索引節點。檔案(目錄)資訊按照索引節點形式存儲在單獨的塊中;控制資訊被集中存儲在磁盤的超級塊中。

繼續閱讀