閱讀681 返回首頁    go 阿裏雲 go 技術社區[雲棲]


linux文件係統(一)——VFS的概念

聲明:本Linux文件係統博客,共分四節,是根據網上多個相關博客,以及自己的理解加上相關資料總結而成。(作者:lvyilong316

Linux 之所以能支持除了Ext2文件係統之外的各種文件係統,是因為Linux提供了一種統一的框架,就是所謂的虛擬文件係統轉換(Virtual FilesystemSwitch),簡稱虛擬文件係統(VFS)。這樣, 用戶程序可以通過同一個文件係統界麵,也就是同一組係統調用,能夠對各種不同的文件係統以及文件進行操作。

1. Linux中支持幾十種文件係統,它是怎麼管理的呢,它都管理什麼呢?

首先,VFS 隻對掛載到文件係統種的文件係統進行管理,即它時按需管理的。

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

2.VFS中四個主要對象

1超級塊對象:描述已安裝文件係統。

每個文件係統 都對應一個超級對象。文件係統的控製信息存儲在超級塊中。
2索引節點對象:描述一個文件。

每個文件 都有一個索引節點對象。每個索引節點對象都有一索引節點號---->正是用這個號來唯一的標識某個文件係統中的指定文件。
3目錄項對象:描述一個目錄項,是路徑的組成部分。

VFS把每個目錄看作一個由若幹子目錄和文件組成的常規文件。

例如:我們在查找路徑名:/tmp/test時,內核為根目錄“/”創建第一個目錄項對象,為根目錄下tmp項創建第二級目錄項對象,為/tmp目錄下的test項創建第三級目錄項對象。 
4文件對象:描述由進程打開的文件。

說明:

1.因為 VFS 將目錄作為一個文件來處理,所以不存在目錄對象。雖然目錄項不同於目錄,但目錄卻和文件相同。

2.Linux中將文件的相關信息和文件本身區分開了。在Linux 中文件的相關信息,被存儲在一個單獨的數據結構中,該結構被稱為索引節點。文件(目錄)信息按照索引節點形式存儲在單獨的塊中;控製信息被集中存儲在磁盤的超級塊中

最後更新:2017-04-03 12:55:35

  上一篇:go Android 長按電源鍵和短按電源鍵的詳細處理流程
  下一篇:go Android 防止Toast重複彈出相同的信息