Linux世界驰骋四——文件系统和设备管理

http://tech.ddvip.com   2007年03月12日    社区交流

本文详细介绍Linux世界驰骋四——文件系统和设备管理

  当数据块的大小为1K字节,而块组的大小为8192时,该位示图恰好占一个数据块。在ext2文件系统中,用于索引节点的数据块数量取决于文件系统的参数,而索引节点的位示图则不会超出一个数据块。

  虚拟文件系统

  Linux系统可以支持多种文件系统,为此,必须使用一种统一的接口,这就是虚拟文件系统(VFS)。通过VFS将不同文件系统的实现细节隐藏起来,因而从外部看上去,所有的文件系统都是一样的。

  1.VFS系统结构

  图3示出VFS和实际文件系统之间的关系,从图中可以看出,用户程序(进程)通过有关文件系统操作的系统调用进入系统空间,然后经由VFS才可使用Linux系统中具体的文件系统。也就是说,VFS是建立在具体文件系统之上的,它为用户程序提供一个统一的、抽象的、虚拟的文件系统界面。

  这个抽象的界面主要由一组标准的、抽象的有关文件操作构成,以系统调用的形式提供给用户程序,如read( )、write( )和lseek( )等。所以,VFS必须管理所有同时安装的文件系统。它通过使用描述整个VFS的数据结构和描述实际安装的文件系统的数据结构,来管理这些不同的文件系统。

  图3 VFS和实际文件系统之间的关系

  不同的文件系统通过不同的程序来实现其各种功能。VFS定义了一个名为file_operations的数据结构,这个数据结构成为VFS与各个文件系统的界面。

  每种文件系统都有自己的file_operations数据结构,结构中的成分是指向文件操作的函数指针,例如,open是指向具体文件系统的打开文件的函数指针。这样,在VFS之上的用户程序中对文件的操作就不涉及具体的文件系统,经file_operations数据结构的转换才跳转到具体文件系统上。

作者:孟庆昌    责编:豆豆技术应用

正在加载评论...