虛擬文件系統
虛擬文件系統爲用戶空間程序提供了文件和文件系統相關的接口。
VFS提供了通用文件系統模型。
實際文件系統通過編程提供VFS所期望的抽象接口和數據結構。
VFS對象及其數據結構
VFS以後四個主要的對象:
超級塊對象:包含文件系統信息;
索引節點對象:包含具體文件的相關信息;
目錄項對象:包含目錄項信息,它是路徑的一個組成部分;(注意這裏是目錄項對象,而不是目錄對象)
文件對象:包含由進程打開的文件信息;
每個主要對象都包含一個操作對象:
super_operations對象:包含針對特定文件系統所能調用的方法;
inode_operations對象:包含針對特定文件所能調用的方法;
dentry_operations對象:包含針對特定目錄所能調用的方法;
file_operations對象:包含針對已打開的文件所能調用的方法;
文件系統相關的數據對象
file_system_type用來描述特定的文件系統類型,比如ext3、ext4等。
vfsmount用來描述一個安裝文件系統的實例。
進程相關的數據結構
file_struct由進程描述中的files成員指向,所有與單個進程相關的信息(如打開的文件及文件描述符)都包含在其中。
fs_struct由進程描述中的fs成員指向,包含文件系統和進程相關的信息。
namespace結構體由進程描述符中的mmt_namespace成員指向。