欢迎来到天天文库
浏览记录
ID:9704812
大小:111.50 KB
页数:29页
时间:2018-05-05
《开发 aix 文件系统》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、开发AIX文件系统 引言 AIX5L™是一种优秀的操作系统,它提供了出众的可伸缩性、可靠性和可管理性。它是市场上一些功能最强大的IBMUNIX®服务器的缺省操作系统。 通常,可以将文件系统定义为一种软件,它负责对物理存储介质中的数据进行存储、组织和检索,物理存储介质包括硬盘驱动器、CD-ROM或者任何其他存储设备。从本质上说,用于进行这种数据组织的代码应该是可移植的。在现实世界中,尽管每个操作系统都提供了它自己的接口,以此请求特定的文件系统操作,并且期待软件基础部分以该操作系统所希望的格式返回结果
2、。对于不同的操作系统,其接口也各不相同,并且需要由具体的文件系统提供,以使得特定的操作系统对该文件系统提供支持。 在本文中,您将了解AIX®操作系统文件系统框架。您还将获得有关IO层的概述,以及对一些重要概念的解释。本文还对在开发新的文件系统或者将现有的文件系统移植到AIX操作系统时所使用的接口和方法进行了简单的说明。 与许多UNIX版本一样,AIX将文件系统作为一种内核扩展。本文假定您对UNIX编程和文件系统的概念有基本的了解。如果您还了解如何为AIX编写内核扩展,那将是很有帮助的。 了解逻辑文件系统和虚拟
3、文件系统 逻辑文件系统层是一个抽象层,用户可以通过它请求各种文件操作,如读、写、获得相关信息,等等。逻辑文件系统接口支持UNIX类型的文件访问语义。逻辑文件系统层是虚拟文件系统的超集,而后者封装了各种不同的文件系统,这些文件系统为内核提供了基础目录树的一致的视图。逻辑文件系统还负责管理内核的打开文件表和每个进程的文件描述符信息。 虚拟文件系统是基础物理文件系统的抽象。虚拟文件系统提供了一组应该支持的标准接口,以使得您的文件系统可用于AIX操作系统。虚拟文件系统建立了不同的基础物理文件系统到逻辑文件系统之间的桥梁,为操作
4、系统中的其他部分提供了一致的目录树层次结构。 文件系统对象的每个唯一的装入实例通过一个虚拟文件系统结构进行表示。虚拟文件系统可以为物理文件系统、网络文件系统、或者逻辑文件系统(没有物理后备存储,如ramfs)。图1显示了AIX文件系统的层次结构。 图1.AIX文件系统层次结构 如清单1所示,由成员vfs_next指定,虚拟文件系统作为structvfs的链表进行维护。 清单1.虚拟文件系统结构<sys/vfs.h>structvfs{ structvfs *vfs_next; structgf
5、s *vfs_gfs; structvnode *vfs_mntd; structvnode *vfs_mntdover; structvnode *vfs_vnodes; int vfs_count; caddr_t vfs_data; unsignedint vfs_number; int vfs_bsize; #ifdef _SUN short vfs_e
6、xflags; unsignedshort vfs_exroot; #else short vfs_rsvd1; unsignedshort vfs_rsvd2; #endif /*_SUN*/ structvmount *vfs_mdata; Simple_lock vfs_lock; }; 列表中的每个条目代表一个装入的文件系统对象。 vfs_mntdvfs_mntd表示这个文件系统在进行装入时的装入点vnode。对于'/'根文件系统,这将是根的vnode。vfs_
7、vnodesvfs_vnodes是这个装入实例的所有vnodes组成的链表。vfs_lock您可以使用vfs_lock串行化对vnode的访问。vfs_gfsvfs_gfs指向对应的文件系统的structgfs结构。 structgfs包含独立于这些装入实例的文件系统相关信息。它包含文件系统布局的所有常见特征,如下面的清单2所示。操作系统中注册的每个文件系统有且仅有一个structgfs、一个或多个structvfs,后者分别对应于每个装入实例。gfs_ops和gn_ops是structgfs中的重要成员,它们表示该文件
8、系统的虚拟文件系统操作和vnode操作。您应该为该文件系统提供虚拟文件系统操作和vnode操作,以便能够得到AIX操作系统的支持。 清单2.gfs结构<sys/vfs.h>structgfs{ structvfsops *gfs_ops; structvnodeops*gn_ops; in
此文档下载收益归作者所有