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

2021-06-20 21:47:24 字數 1122 閱讀 2618

宣告:本

linux檔案系統

部落格,共分四節,

)linux 之所以能支援除了

ext2

檔案系統之外的各種檔案系統,是因為

linux

提供了一種統一的框架

,就是所謂的虛擬檔案系統轉換

(virtual filesystemswitch),

簡稱虛擬檔案系統

(vfs)

。這樣, 使用者程式可以通過同乙個檔案系統介面

,也就是同一組系統呼叫

,能夠對各種不同的檔案系統以及檔案進行操作。

首先,vfs 

只對掛載到檔案系統種的檔案系統進行管理,即它時按需管理的。

其次,因為它繼承了unix

的設計思想,所以它也是對檔案

,目錄項

,索引節點和超級塊進行管理。(1)

超級塊物件:

描述已安裝檔案系統。

每個檔案系統 都對應乙個超級物件。檔案系統的控制資訊儲存在超級塊中。(2)

索引節點物件:

描述乙個檔案。

每個檔案 都有乙個索引節點物件。每個索引節點物件都有一索引節點號---->

正是用這個號來唯一的標識某個檔案系統中的指定檔案。(3)

目錄項物件:

描述乙個目錄項

,是路徑的組成部分。

vfs把每個目錄看作乙個由若干子目錄和檔案組成的常規檔案。

例如:我們在查詢路徑名:/tmp/test

時,核心為根目錄

「/」建立第乙個目錄項物件,為根目錄下

tmp項建立第二級目錄項物件,為

/tmp

目錄下的

test

項建立第**目錄項物件。(4)

檔案物件:

描述由程序開啟的檔案。

說明:1.因為 

vfs 

將目錄作為乙個檔案來處理

,所以不存在目錄物件。雖然目錄項不同於目錄

,但目錄卻和檔案相同。

2.linux中將檔案的相關資訊和檔案本身區分開了。在

linux 

中檔案的相關資訊,被儲存在乙個單獨的資料結構中,該結構被稱為索引節點。檔案(目錄)資訊按照索引節點形式儲存在單獨的塊中;控制資訊被集中儲存在磁碟的超級塊中。

Linux支援檔案系統與VFS

雖然linux的標準檔案系統是ext2,且還增加了日誌功能的ext3,事實上,linux還支援很多檔案系統格式的,尤其是最近幾年退出的好幾種速度很快的日誌式檔案系統,包括sgi的xfs檔案系統,可以使用更小型檔案的reiserfs檔案系統,以及windows的fat檔案系統等等,都能夠被linux所...

linux虛擬檔案系統vfs

linux可以掛載不同的檔案系統 ext2,fat,ntfs 用同一的樣式呈現給使用者,讀寫操作用起來都一樣,這是怎樣做到的呢?linux核心在各種不同的檔案系統格式上做了乙個抽象層,使得檔案 目錄 讀寫訪問等概念成為抽象層的概念,因此各種檔案系統看起來用起來都一樣,這個抽象層稱為虛擬檔案系統 vf...

檔案系統(一)

又是檔案系統。前面已經提到過一次檔案系統的實現了,為什麼這裡還要再介紹一邊檔案系統呢?原因是前面介紹的檔案系統訪問比較簡單,僅僅是讀取固定的幾個檔案。而這裡,為了保證裝載器的靈活性,這裡的檔案系統設計複雜多了。而且由於是c 實現,可讀性也提高了。以後在核心中,我們還需要處理一次檔案系統,那是作業系統...