首页 > 代码库 > 文件IO详解(三)---Linux虚拟文件系统

文件IO详解(三)---Linux虚拟文件系统

http://blog.chinaunix.net/uid-14735472-id-2921377.html
讲解虚拟文件系统的一些数据结构以及之间的关系,有些地方看不懂
http://www.docin.com/p-941544538.html  
讲解了进程打开文件时内核所建立的各种数据结构之间的联系
 
    在给磁盘分区后,每个分区中都可以建立起各自独立的文件系统,建立的物理文件系统可以是相同的,也可以是不同的。那么不同的物理文件系统的组织数据的方式肯定是不同的,比如说ext2文件系统组织数据的方式是靠着superblock块、inode块以及block块三种基本单位,但是其他文件系统比如FAT文件系统对数据的组织方式肯定就不是这样。那么这就意味着不同文件系统的底层驱动程序肯定是不一样的。
    那么问题就来了,当我们使用这些文件IO函数对文件进行操作的时候,其实我们并没有关心说不同磁盘分区上的文件系统是不是一样的。对于所有的文件系统我们都是使用相同这些接口去操作文件。
    我们之所以能够这样,是因为在应用程序和物理文件系统中间还有一层虚拟文件系统,虚拟文件系统的作用就是向应用程序去屏蔽底层各个不同文件系统之间的操作,为应用程序提供一个统一的接口。
    虚拟文件系统的主要包括有superblock结构体,inode结构体、dentry结构体、file结构体。superblock结构体对应文件系统中的superblock
inode结构体对应文件系统中的inode
dentry结构体对应文件系统中的目录项
file结构体为了表示一个打开的文件
技术分享
技术分享

文件IO详解(三)---Linux虚拟文件系统