Linux虛擬文件系統–VFS簡介

Linux虛擬文件系統–VFS簡介Linux虛擬文件系統–VFS簡介

咱們把各操做系統中的實際文件系統叫作邏輯文件系統,VFS是Linux 內核與這些邏輯文件系統的一個接口,它們之間的關係。node

VFS是Linux 核心的一部分,其餘內核子系統與VFS打交道,VFS又管理其餘邏輯文件系統。因此VFS是文件系統和Linux 內核的接口,VFS以統一數據結構管理各類邏輯文件系統,接受用戶層對文件系統的各類操做。linux

VFS存在的意義數據結構

1. 向上,對應用層提供一個標準的文件操做接口;性能

2. 對下,對文件系統提供一個標準的接口,以便其餘操做系統的文件系統能夠方便的移植到Linux上;操作系統

3. VFS內部則經過一系列高效的管理機制,好比inode cache, dentry cache 以及文件系統的預讀等技術,使得底層文件系統不需沉溺到複雜的內核操做,便可得到高性能;對象

4. 此外VFS把一些複雜的操做盡可能抽象到VFS內部,使得底層文件系統實現更簡單。接口

通用文件模型進程

VFS爲底層文件系統提供了抽象,有兩種策略提供這種抽象。請求

1. 提供一個最小的通用模型,使得這個模型支持的功能是全部文件系統的最小交集程序

2. 提供一個儘可能大的通用模型,使得這個模型包含全部文件系統功能的合集。

Linux採用第二種策略來實現VFS,所以VFS封裝了底層文件系統的全部功能和抽象,VFS負責把應用層的請求轉發給特定的文件系統。

在處理文件時,應用空間和內核空間使用的對象是不一樣的。對應用程序來講,文件描述符用來表示一個文件,這個文件描述符是打開文件時內核分配給這個文件的一個整數,注意,這個文件描述符只在本進程內有效;而對於內核來講,則使用一個inode來表示一個文件,這個inode可能對應着應用層多個進程內的多個文件描述符。

更多Linux諮詢請查看www.linuxprobe.com

相關文章
相關標籤/搜索