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