Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1216977
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2009-07-07 09:40:19

不同的文件系统通过不同的程序来实现其各种功能。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索引节点包含的主要内容有所在设备的标识符、惟一的索引节点号码、模式(所代表的类型及存取权限)、用户标识符、有关的时间、数据块大小、索引节点操作集(指向索引节点操作例程的一组指针)、计数器(系统进程使用该节点的次数)、锁定节点指示、节点修改标识,以及与文件系统相关的特殊信息。
阅读(699) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~