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