linux内核文件系统

最近这段时间一直在阅读linux内核开发这本书,书中主要介绍了linux2.6内核版本相关的内容。其中有一章介绍了内核中是如何支持不同的文件系统的,感觉这一章写的比较好,所以在本文章主要介绍下其中的内容。

问题

linux是支持多种文件系统的,比如ext2、ext3、NFS等等。这些文件系统的特性是有很大区别的。那么linux是如何来支持这么多不同的文件系统呢?
答案是通过在内核中抽象一层来屏蔽底层文件系统的区别。这一层抽象是VFS(虚拟文件系统)。虚拟文件系统主要定义了以下几种概念以及对应的操作。

superblock块、inode、dentry(目录项)、file object。

superblock

superblock主要记录文件系统相关信息。比如如果文件系统是ext3,那么superblock中会记录ext3相关的文件,以及挂载点等

inode

inode主要记录inode信息,是文件在内存中的体现

dentry

dentry主要记录目录项的信息。比如目录为 /bin/a.sh, 那么dentry中会记录 / , bin , a.sh等信息,其中每个都是一个目录项

file object

file object中主要是记录文件内容信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容