40.虚拟文件系统

虚拟文件系统(VFS)是操作系统内核中的一个关键组件,它提供了一种抽象层,使得不同的文件系统能够共存并使用相同的API。VFS允许用户空间程序通过标准的UNIX文件系统调用操作各种物理介质上的文件,无论其存储类型或文件系统类型如何。这样,开发者无需关心底层文件系统的细节,简化了编程任务。
摘要由CSDN通过智能技术生成

1.虚拟文件系统Virtual File System :
            vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用调用的接口

VFS作为内核子系统,为用户空间程序提供了文件系统相关的接口。所有实际文件系统依赖VFS共存,依靠VFS系统工作。

(1)VFS提供通用文件系统接口:用户空间程序可以利用标准的UNIX文件系统调用,如open()\read()\write(),对不同物理介质上的不同文件系统进行操作。

(2)VFS提供文件系统抽象层:VFS提供了一个通用文件系统模型,该模型囊括了所有实际文件系统的常用功能和行为。VFS抽象层定义了所有实际文件系统支持的基本的、概念上的接口和数据结构,所以VFS能衔接各种实际文件系统。

2. 虚拟文件系统有什么作用?
        简化应用程序员的开发
        不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write统一操作

根目录下的文件,对应的分区可能不一样,那么文件系统的类型(文件存储的方式)不一样
这就造成了访问文件也不同,对程序员编程访问不同分区不同类比的文件的时候就很麻烦,没办法辺统一化。
读ext4 vfat等的方法完全不一样,对我们来说开发的工作量会很大

vfs解决了这个问题

示例

$ cp /floppy/TEST /tmp/test

其中/floppy是MS-DOS磁盘的一个安装点,而/tmp是一个标准的第二扩展文件系统(second Extended Filesystom, Ext2)的目录。正如左图所示,VFS是用户的应用程序与文件系统实现之间的抽象层。
因此,cp程序并不需要知道/floppy/TEST 和 /tmp/test是什么文件系统类型。
相反,cp程序直接与VFS交互,这是通过Unix程序设计人员都熟悉的普通系统调用来进行的。cp的执行代码如右图所示:
 


 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值