养浩然之气,活着不是为技术,请关心身边的人.

Linux - VFS

上一篇 / 下一篇  2007-09-07 13:31:36 / 个人分类:linux-C

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

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

2.VFS超级块

VFS和ext2文件系统一样也使用超级块和索引节点来描述和管理系统中的文件。每个安装的文件系统都有一个VFS超级块,其中包含以下主要信息:

(1)设备标识符。这是存储文件系统的物理块设备的设备标识符,如系统中第一个IDE磁盘/dev/hda1的标识符是0x301。

(2)索引节点指针。安装索引节点指针指向被安装的子文件系统的第一个索引节点;覆盖索引节点指针指向安装文件系统目录(安装点)的索引节点。根文件系统的VFS超级块中没有覆盖索引节点指针。

(3)数据块大小。文件系统中数据块的字节数。

(4)超级块操作集。指向一组超级块操作例程的指针,VFS利用它们可以读写索引节点和超级块。 (5)文件系统类型。指向所安装的文件系统类型的指针。

(6)文件系统的特殊信息。指向文件系统所需要信息的指针。

可以看出,VFS超级块的结构比ext2文件系统的超级块简单,主要增加的是超级块操作集,它用于对不同文件系统进行操作,对于超级块本身并无作用。

3.VFS索引节点

VFS中每个文件和目录都有一个且只有一个VFS索引节点。VFS索引节点仅在系统需要时,才保存在系统内核的内存及VFS索引节点缓存中。

VFS索引节点包含的主要内容有所在设备的标识符、惟一的索引节点号码、模式(所代表对象的类型及存取权限)、用户标识符、有关的时间、数据块大小、索引 节点操作集(指向索引节点操作例程的一组指针)、计数器(系统进程使用该节点的次数)、锁定节点指示、节点修改标识,以及与文件系统相关的特殊信息。

TAG: linux-C

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 21825
  • 日志数: 146
  • 建立时间: 2007-08-01
  • 更新时间: 2008-02-20

RSS订阅

Open Toolbar