【Linux Kernel】虚拟文件系统初探

学无止境~   看LKD进行的粗浅整理,目标是能够做到设计上面的理解~

Linux操作系统上支持多种文件系统,如本地文件系统EXT4、XFS、EXT3 等,同时还支持NFS、CIFS以及一些特殊的文件系统,同时在上层调用文件管理时又不感知不同文件系统的类型、存储的类型,之所以能做到这一点,最大的功臣就是虚拟文件系统,英文简称VFS。
VFS是定义一个通用的文件模型,满足上层对文件的处理应用,同时能够完整兼容所有文件系统的特殊需求和能力。

e149573a2348427fa5a4727d88829bb2.png

  之所以VFS能够屏蔽掉不同文件系统的差异,让上层无感我们以写文件为例

1619bf4a98d845e7a30e7cbf9d7f6762.png

vfs存在于用户与文件系统之间,这样就可以在虚拟文件系统层面实现屏蔽差异。

虽然内核整体采用C语言实现的,但是VFS本身的设计思想更多的是面向对象的,所以在使用C语言实现过程中会有些晦涩,整体思路是以结构体作为对象,对象的方法由不同的函数指针来实现。VFS中有几个关键的数据结构,分别是:超级块对象、索引节点对象、目录项对象、文件对象。下面的图可以简要描述这几个对象的关系:

ffe8f23043c9493abdfcedd3ef2551e5.png

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值