快速业务通道

Linux文件系统挂装与高层体系结构

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-21
把这个文件系统和它的相关信息添加到 file_systems 列表中(见图 2 和 linux/include/linux/mount.h).这个列表定义可以支持的文件系统.在命令行上输入 cat /proc/filesystems,就可以查看这个列表.

向内核注册的文件系统
图 2. 向内核注册的文件系统

  VFS 中维护的另一个结构是挂装的文件系统(见图 3).这个结构提供当前挂装的文件系统(见 linux/include/linux/fs.h).它链接下面讨论的超级块结构.

挂装的文件系统列表
图 3. 挂装的文件系统列表

  超级块

  超级块结构表示一个文件系统.它包含管理文件系统所需的信息,包括文件系统名称(比如 ext2)、文件系统的大小和状态、块设备的引用和元数据信息(比如空闲列表等等).超级块通常存储在存储媒体上,但是如果超级块不存在,也可以实时创建它.可以在 ./linux/include/linux/fs.h 中找到超级块结构(见图 4).

超级块结构和 inode 操作
图 4. 超级块结构和 inode 操作

  超级块中的一个重要元素是超级块操作的定义.这个结构定义一组用来管理这个文件系统中的 inode 的函数.例如,可以用 alloc_inode 分配 inode,用 destroy_inode 删除 inode.可以用 read_inode 和 write_inode 读写 inode,用 sync_fs 执行文件系统同步.可以在 ./linux/include/linux/fs.h 中找到 super_operations 结构.每个文件系统提供自己的 inode 方法,这些方法实现操作并向 VFS 层提供通用的抽象.

  inode 和 dentry

  inode 表示文件系统中的一个对象,它具有惟一标识符.各个文件系统提供将文件名映射为惟一 inode 标识符和 inode 引用的方法.图 5 显示 inode 结构的一部分以及两个相关结构.请特别注意 inode_operations 和 file_operations.这些结构表示可以在这个 inode 上执行的操作.inode_operations 定义直接在 inode 上执行的操作,而 file_operations 定义与文件和目录相关的方法(标准系统调用).

inode 结构和相关联的操作
图 5. inode 结构和相关联的操作

  inode 和目录缓存分别保存最近使用的 inode 和 dentry.注意,对于 inode 缓存中的每个 inode,在目录缓存中都有一个对应的 dentry.可以在 ./linux/include/linux/fs.h 中找到 inode 和 dentry 结构.

  缓冲区缓存

  除了各个文件系统实现(可以在 ./linux/fs 中找到)之外,文件系统层的底部是缓冲区缓存.这个组件跟踪来自文件系统实现和物理设备(通过设备驱动程序)的读写请求.为了提高效率,Linux 对请求进行缓存,避免将所有请求发送到物理设备.缓存中缓存最近使用的缓冲区(页面),这些缓冲区可以快速提供给各个文件系统.

  有趣的文件系统

  本文没有讨论Linux中可用的具体文件系统,但是值得在这里稍微提一下.Linux 支持许多种文件系统,包括 MINIX、MS-DOS 和 ext2 等老式文件系统.Linux 还支持 ext3、JFS 和 ReiserFS 等新的日志型文件系统.另外,Linux 文件系统支持加密文件系统(比如 CFS)和虚拟文件系统(比如 /proc).

  一种值得注意的文件系统是 Filesystem in Userspace(FUSE).这种文件系统可以将文件系统请求通过 VFS 发送回用户空间.,如果您有兴趣创建自己的文件系统,那么通过使用 FUSE 进行开发是一种不错的方法.

  结束语

  尽管文件系统的实现并不复杂,但它是可伸缩和可扩展的体系结构的好例子.文件系统体系结构已经发展了许多年,并成功地支持了许多不同类型的文件系统和许多目标存储设备类型.使用了基于插件的体系结构和多层的函数间接性,Linux 文件系统在近期的发展很值得关注.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号