Chinaunix首页 | 论坛 | 博客
  • 博客访问: 564038
  • 博文数量: 50
  • 博客积分: 571
  • 博客等级: 中士
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-20 14:01
个人简介

希望成为一个有思想,有信仰的程序设计师。

文章分类

全部博文(50)

文章存档

2016年(2)

2015年(2)

2014年(13)

2013年(10)

2012年(23)

分类: LINUX

2012-06-05 18:50:03

//是什么?
虚拟文件系统(VFS)是内核的子系统,为用户空间程序提供拉文件系统相关的接口。系统中所有的文件系统都依赖于VFS共存,并且依靠VFS系统共同协作。VFS就相当于一个中转站,连接不同文件系统的桥梁。

//为什么?
linux之所以支持对所有类型文件系统的操作,因为内核在它的底层文件系统上建立拉一个抽象层。正是由于这个抽象层的存在,是多个文件系统之间的差别被屏蔽了。VFS 提供了一个通用文件系统的模型,该模型基本上包含了我们所能想到的文件系统的常用功能和行为。
VFS抽象层之所以能衔接各种各样的文件系统,是因为它定义拉所有文件系统都支持的基本接口和数据结构。同时实际的文件系统也将自身的操作如“如何打开文件”等概念在形式上于VFS保持了一致。
//怎么用?
在内核中,除了文件系统本身之外,其他部分并需要了解文件系统的内部细节。用户只需要调用VFS提供的接口,就可以实现对各种文件系统的操作。
以write()函数为例,write()调用来自用户空间的数据流,首先通过VFS的通用系统调用,其次通过文件系统的特殊写的方法,最后写入到物理介质中。在这个过程中,很明显的看出VFS就是一个桥梁。

下一篇将介绍VFS是如何对文件进行管理的。
阅读(2636) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~