网站大量收购独家精品文档,联系QQ:2885784924

开发 AIX 文件系统.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开发 AIX 文件系统.doc

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

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档