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

UNIX系统文件基础副本.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件类型 ??? 在UNIX系统中, 文件分为三类: 即普通文件、目录文件和特殊文件. ??? 1.? 普通文件 也称正文文件,可以用来保存程序、数据等任何信息. 这是一种无结构的, 以512个字节为一块, 顺序存取的流式文件. ??? 2.? 目录文件 用于检索文件的文件. 目录文件可能是系统文件, 也可能是用户文件. 3. 特殊文件 即设备. 在UNIX系统中将设备也作为文件来处理, 对于设备的所有操作都需要经过文件系统, 这有如下两个优点: (1) 设备与文件界面统一:使用设备与使用文件没有差别. 具体地说, 打开一个设备文件相当于申请该设备, 关闭一个设备文件相当于释放该设备, 读写设备文件相当于对设备进行I/O操作. (2) 设备可采用与文件相同的保护机制:文件可以访问权限等手段加以保护, 设备作为文件处理也可如同文件一样得到保护. 如对于打印机设备可规定为只“写”型设备, 对其实行“读”操作将被视为非法而加以拒绝. 将设备作为特殊文件管理是UNIX系统的成功特点之一,并被后来其它一些操作系统所借鉴. ? 12.5.2? 文件体系 UNIX文件系统呈树形结构, 树的根结点为根目录root, 树的叶结点可以为普通文件、特殊文件、或者目录文件. 其它既非根结点也非叶结点的结点为目录文件. 如图 12-8 所示. ? ? ?   图中虚线代表链接(link),通过链接可以给一个文件赋予多个符号名(路径名),这是共享文件的一种方法. ? 12.5.3? 文件结构 ??? 1.? 文件的逻辑结构 ??? UNIX普通文件的逻辑结构为流式的. 在用户看来, 一个文件是一个字节序列. 文件的读写操作命令包含传输字节的个数.这种结构实现简单, 系统开销小.当然, 如果需要, 用户可以利用流式文件来构造记录式文件, 因为对于文件内容的解释权完全留给了用户.  ??? 2.? 文件的物理结构 ??? UNIX文件的物理结构为链接结构与索引结构的结合, 也可看成是多级索引结构. 其实现如图12-9所示. ? ?? ? 12.5.4? 文件目录与连接 1.? 目录项 ??? 相当于FCB次部,包括两个内容: 即文件名和inode编号, 不同的文件名可能对应同一个inode编号,? 这样便对应同一个FCB主部, 即一个文件可以有多个名字. ??? 2.? inode ??? 相当于FCB主部, 包括文件主、共享说明、地址信息等, 称为inode, inode与文件具有一对一的关系. 在UNIX文件系统中, 有一个固定的区域, 用于保存所有文件的inode. 如图 12-10 所示. 每个inode有一个唯一的编号,称为i_number. ? ? ? 将FCB分为两部分的目的之一是实现文件的连接,所谓连接实际是使多个目录项与同一个inode建立联系,从而可以通过不同的路径名查找到同一个文件,即使一个文件有多个符号名称. 例如对于图12-11(a)所示的目录树,经过连接后文件f增加了路径名/usr/Xu/d2/g,如图12-11(b)所示.二者具有相同的i_number(15),因而对应同一个inode. ? ? 12.5.5? 文件系统映射 文件打开时,控制信息被移入内存相关表目中,并通过文件描述符建立与文件内容之间的联系. 图 12-12给出了进程空间与u_ofile表、file表、inode表之间的连接关系,其中文件描述符4,6对应两个不同的文件,描述符10,2对应同一文件但不共享读写指针,描述符8,9对应同一文件且共享读写指针. ? ? 完整的file结构定义如下: ??? 5507? struct file ??? 5508? { ??? 5509??? char? f_flag;???? /* FREAD=01, FWRITE=02, FPIPE=04 */ ??? 5510??? char? f_count;??? /* reference count */ ??? 5511??? int?? f_inode;??? /* pointer to inode structure */ ??? 5512??? char? *f_offset;? /* read/write character pointer */ ??? 5513? } ? 12.5.6? 文件卷的安装 ??? 用一个文件卷的根目录取代文件的一个普通文件. 这样一个文件卷可以动态地联结到文件系统中, 也可以动态地由文件系统中卸下. 文件卷的组织形式如图 12-13 所示. 其中块#0为引导块, 负责操作系统的装入; 块#1为特殊块, 记载磁盘块的分配状况; 由块#2到块#k+1为inode区域, 保存文件FCB主部, 其k值在文件卷初始化时确定; 由块#k+2到

文档评论(0)

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

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

1亿VIP精品文档

相关文档