linux文件系统浅析

     linux文件系统基于虚拟文件系统VFS构建了一个灵活的框架,能够使现有的文件系统类型都能够在其下运行。

     最近在研究Linux内核中文件系统部分的实现,把其中自己的感悟和大家分享一下。

     理解文件系统的关键在于理解核心数据结构,在Linux内核中关键的数据结构包括以下几个。

     1、super_block:超级块。超级块中记录了文件系统主要的信息,每一类文件系统对于一个超级块,多个文件系统的实例公用一个超级块。超级块同时存在两个映像,内存中的超级块映像为了加速查询和更新出来,而硬盘中的超级块则用于固化存储。在启动或者加载文件系统的时候,内核被硬盘中的超级块加载到内存中。

     2、inode:每个文件都对应一个inode。同超级块一样,inode也同时在内存和硬盘中存在两份映像,inode被分成不同的类,从属不同的链表。每个inode只是存在于两个链表中,一个是哈希表,用于加速查询过程,另一个是分类表,例如脏的inode链表。

     3、dentry:目录项缓存。与上述两种对象不同,目录项缓存只存在于内存中,在硬盘等存储介质中没有对应的对象,所以,对于一个dentry对象不会有脏标志位。因为它不会同步数据,目录项缓存的作用就是加速路径的解析速度。

     4、file:文件对象。文件对象的概念只是相对于进程而言。文件在介质上也没有对应的对象,所以文件也没有脏标志位,所以存在多有文件对象对应一个inode的情况。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值