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