Unix系统的心脏Unix文件系统

系统 其他OS
我们知道Unix系统对Unix文件的最大长度(一般为1到2M字节)加了更实际的 限制,使用户不会无意中建立一个用完整个磁盘窨所有块的文件.

我们知道Unix文件系统是Unix系统的心脏部分,提供了层次结构的目录和文件.文件系统将磁盘空间划分为每1024个字节一组,称为块(block)(也有用512字节 为一块的,如:SCO XENIX).编号从0到整个磁盘的***块数.

全部块可划分为四个部分,块0称为引导块,Unix文件不用该块;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其它两部分的大小.从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论.

i节点表之后是空闲存储块(数据存储块),可用于存放文件内容. 文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入cat命令 后所看到的文件,用户可得到表示文件内容的字符流.物理结构是文件实际上如何存放在磁盘上的存储格式.用户认为自己的文件是边疆的字符流,但实际 上文件可能并不是以边疆的方式存放在磁盘上的,长于一块的文件通常将分散地存放在盘上.

然而当用户存取文件时,Unix文件系统将以正确的顺序取各块, 给用户提供文件的逻辑结构. 当然,在Unix系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构.这就涉及到i节点了.

i节点是一个64字节长的表,含有有关一个Unix文件的信息,其中有文件大小,文件所有者,文件存取许可方式,以及文件为 普通文件,目录文件还是特别文件等.在i节点中最重要的一项是磁盘地址表. 该表中有13个块号.前10个块号是文件前10块的存放地址.这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序 依次取相应的块.

当文件长于10块时又怎样呢?磁盘地址表中的第十一项给出一个块号,这 个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272,384字节).如果Unix文件大于266块,磁盘地址表的第十二项给出一个块号, 这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块, 块中含256个块号,这些块号才用于取Unix文件的内容.

磁盘地址中和第十三项索引 寻址方式与第十二项类似,只是多一级间接索引. 这样,在Unix系统中,文件的***长度是16,842,762块,即17,246,988,288 字节,有幸是Unix系统对Unix文件的***长度(一般为1到2M字节)加了更实际的 限制,使用户不会无意中建立一个用完整个磁盘窨所有块的文件.

Unix文件系统将文件名转换为i节点的方法实际上相当简单.一个目录实际上 是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项, 入口项中含有文件名和与文件相应的i节点号.

【编辑推荐】

  1. Unix sed高级工具的讲解
  2. 对Unix系统发展期和现况的了解
  3. 深入的探讨Unix系统发展期过程
  4. 一起来看Unix操作系统家谱
  5. 浅析Unix操作系统用户输入的内容不回显
责任编辑:小霞
相关推荐

2010-04-30 15:51:48

Unix系统

2011-03-23 14:00:44

2010-04-29 10:11:17

Unix系统

2010-04-26 18:11:55

Unix文件系统

2010-05-04 14:36:40

Unix文件系统

2010-04-26 18:35:18

Unix文件

2010-04-13 13:31:31

Unix文件

2010-04-13 13:55:36

Unix文件系统

2010-04-26 17:34:37

Unix文件

2010-05-05 17:46:32

Unix文件系统

2010-04-15 16:24:10

Unix操作系统

2011-03-23 14:28:29

安全Unix系统find

2010-04-08 15:58:24

Unix操作系统

2015-07-27 09:22:53

Unix文件系统命令

2010-04-30 17:03:44

Unix文件系统

2010-06-22 16:18:54

2010-04-07 18:42:42

Unix命令

2010-05-05 16:36:24

Unix系统

2010-04-30 11:22:23

Unix系统

2010-04-16 17:49:28

Unix操作系统
点赞
收藏

51CTO技术栈公众号