宣告:本
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 實現,可讀性也提高了。以後在核心中,我們還需要處理一次檔案系統,那是作業系統...