Linux虛擬文件系統的基本概念
計算機技術發展到今天.已經形成了各種不同的文件系統。以通用操作系統為目標的Linux,當然應具有管理各種文件系統的能力。那么,如何來管理這些格式各異的文件系統呢?
本文引用地址:http://www.j9360.com/article/148455.htmLinux的基本思想是:既然都是文件系統,那么它們總有一些共性,于是就可以利用這些共性來構建一個統一的文件系統框架,并在這個框架中留出必要的空間;當這個虛擬文件系統需要管理一個實際文件系統時,把這個實際文件系統與共性有差異的信 息抽取到這個預留的空間,而以框架的通用部分作為與用戶的接口,就可以實現不同文件系統的統一管理了。
基于上述思想,Linux構建了一個格式統一的文件管理框架,其中的各個數據結構,除了保存所有文件系統的共性信息和框架本身所需的信息之外,同時也留出 了必要的空間以存放實際文件系統的特殊信息。系統初始化時就在內存中創建這樣一個文件系統框架,當系統需要使用某一個具體的文件系統時,就把這個文件 系統的特殊信息采集到框架的預留空間中來。這樣,就可以把各種不同的文件系統統一納人到一個框架體系中管理起來,從而使用戶可用一個統一的界面(即統 一的系統調用)對各種不同的文件系統中的文件進行操作了。這個格式統一的文件系統框架,就叫做虛擬文件系統。
簡單地說,就是在各種格式的文件系統基礎上用虛擬文件的格式進行一次封裝,把具體文件系統的差異用虛擬文件系統隔離開來,從而使用戶面對的是一個統一 的虛擬文件系統界面。
Linux虛擬文件系統與實際文件系統之間的關系示意圖如圖所示。圖中×××_info所表示的就是自實際文件系統提取到虛擬文件系統,以表征實際文件系統差異 的信息。
圖 Linux虛擬文件系統與實際文件系統的關系示意圖
由上可知,虛擬文件系統既沒有文件,也不直接管理文件,它只是用戶與實際文件系統之間的接口。因此,它并不需要保存在永久存儲介質中,而只是在需要 時由內核在內存中創建起來的一個文件系統,所以叫做虛擬文件系統。
為了構建虛擬文件系統,Linux定義了一些數據結構。這些數據結構的形式很像我們今天使用的格式合同:里面也有統一、標準的條目,也有由用戶來填寫的 與用戶特殊要求相關的條目。
出于系統性能和Linux系統設計者的喜好(他們對Ext2文件系統情有獨鐘),VFS的構架與Ext2基本相同:文件系統與文件的基本信息仍然分別用VFS超級塊和 VFS的i節點這兩個數據結構來描述,而對目錄文件項的描述則使用了一個新的數據結構dentry。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論