linux文件系统之VFS

对于PC上装了linux/windows双系统的童鞋都知道,在linux下也可以正常访问windows分区,而我们都知道windows分区是NTFS,而linux常用的文件系统是ext系列,实际上除了这两种文件系统之外,linux还支持十几种其他fs。

linux之所以能完美兼容多套文件系统,就在因为虚拟文件系统(VFS)的存在。

那么VFS到底是什么呢?

VFS所隐含的是一个通用的文件模型,

从本质上来说,linux内核不能对一个特定的函数直接执行I/O操作,而是通过函数指针来执行,这种机制提供了类似面向对象多态的性质。

VFS由一下对象模型组成:

1,超级块对象:

存放已安装文件系统的信息,对基于磁盘的文件系统,这类对象通常对应于存放在磁盘上的文件系统控制块。

所有的超级块对象都以双向循环链表的形式链接在一起,每个节点有自旋锁避免此链表受到多处理器系统上的同时访问。

2,索引节点对象:

存放关于具体文件的一般信息,文件系统处理文件所需要的所有信息都放在一个名为索引节点的数据结构中。

文件名可以随时修改,但是索引节点对于文件时唯一的,并且随文件的存在而存在。

内存中的索引节点对象由一个inode数据结构组成。

3,文件对象:

存放打开文件与进程之间进行交互的有关信息,文件对象时在文件被打开时创建的,由一个file结构组成。

文件对象没有磁盘上的映像,只是应内核的需要而建立的数据结构,所以file没有“dirty”字段,无需与磁盘的同步。

存放在文件对象中的主要信息是文件指针。

4,目录项信息,存放目录项于对应文件进行链接的有关信息。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值