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中主要是记录文件内容信息。

你可能感兴趣的:(linux内核文件系统)