vfs中的dentry、inode、super_block概念


       首先vfs是内存中维护的虚拟数据,是对各种fs的高层次的抽象,一般主要包括:dentry、inode、super_block这几个真实的文件系统物理信息的内存表示,通过管理这些数据结构,就完成了对该文件系统的操作。
       对于一个文件系统而言,super_block是最关键的数据,它代表了这个文件系统自身,它存有fs中文件块的大小,超级块的操作函数等,超级块的内容由fs在存储介质上的超级块信息获得,操作函数结构为super_operation。
       dentry是fs中的目录,目录和文件按树状分布,通过遍历目录可以到达根目录,这个在vfs中反映fs系统文件的树状关系。目录也是文件,每个文件都有dentry结构,其链接到上级目录的dentry,为加快对dentry的查找,内核使用的slab做dentry cache,并加入hash表。
       inode为索引节点,代表一个具体文件,包含了该文件的一些描述信息。主要是对文件的操作函数和文件缓存,对于一个文件,inode是唯一的。主要关注i_fop(基本的操作函数)和i_mapping(对文件内容进行缓存,无论是读还是写,现在缓存中找,之后才能去磁盘中操作,主要是通过对文件地址空间的一种映射关系去确定实际的缓存数据)。
       最后来谈谈file文件结构,它是对一个file的内存态数据表示,它主要是f_mapping(address_space),类似于i_mapping。 对于多个进程打开同一个文件,大部分情况下,进程内的file是多个实体,进程间file内核表示是互不相同的,除非是父子进程。file结构只是在进程角度上,表示打开的文件。所以数据一致性不是page cache能保证的,是要应用程序保证的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值