歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux2.6--虛擬文件系統

Linux2.6--虛擬文件系統

日期:2017/2/28 14:44:35   编辑:Linux教程

虛擬文件系統(有時也稱作虛擬文件交換,更常見的是簡稱做VFS)作為內核子系統,為用戶空間程序提供了文件和文件系統相關的接口.系統中的所有文件系統不但依賴VFS共存,而且也依賴VFS系統協同工作.通過虛擬文件系統,程序可以利用標准的UNIX系統調用對不同的文件系統,甚至不同的介質上的文件系統進行讀寫操作,如下如圖所示:

這幅圖的含義是:

VFS執行的動作:使用CP(1)命令從ext3文件系統格式的硬盤拷貝數據到ext2文件系統格式的可移動磁盤上.兩種不同的文件系統,兩種不同的介質,連接到同一個VFS上

VFS使得用戶可以直接使用open(),read()和write()這樣的系統調用而無需考慮具體文件系統和實際的物理介質,這些都可以稱作是文件系統的抽象層,在文件系統之上存在虛擬的文件系統,並通過VFS實現相應的方法可以屏蔽不同的文件系統之間的不同,通過通用的接口提供給用戶使得用戶感覺不到不同的文件系統之間的差異,下面這張圖顯示的就是用戶操作write()時各個系統之間的協同合作:

含義是:write()調用將來自用戶空間的數據流,首先通過VFS的通用系統調用,其次通過文件系統的特殊寫法,最後寫入物理介質中

VFS通過定義一些數據結構並加入執行這些結構的通用方法,最後讓不同的文件系統實現自己的方法來屏蔽各種不同的文件系統之間的差異:

VFS中有四個主要的對象類型,它們分別是:

超級塊對象,它代表一個具體的已安裝的文件系統

索引節點對象,它代表一個具體文件

目錄項對象,它代表一個目錄項,是路徑的一個組成部分

文件對象,它代表由進程打開的文件

Linux支持了相當多種類的文件系統.從本地文件系統(如ext3和ext4)到網絡文件系統(如NFS),Linux在標准內核中已經支持的文件系統超過60種.VFS層提供給這些不同的文件系統一個統一的框架,而且也提供了能和標准系統調用交互工作的統一接口.由於VFS層的存在,使得在Linux上實現新文件系統的工作變得簡單起來,它可以輕松的使這些文件系統通過標准Unix系統調用而協同工作。

Copyright © Linux教程網 All Rights Reserved