UNIX文件系统结构

2014-07-21 08:54:43   最后更新: 2014-07-21 08:54:43   访问数量:1123




目前正在使用的UNIX文件系统有多种不同的实现,本节讨论传统的基于BSD的UNIX文件系统UFS

我们可以把磁盘分为一个或多个分区,每个分区可以包含一个文件系统,如图

 

 

i节点是固定长度的记录项,他包含有关文件的大部分信息,如图所示:

 

 

  1. 在图中有两个目录想指向同一个i节点,每个i节点都有一个链接计数,即指向该i节点的目录项数,只有当链接计数减为0时,才可以删除文件,释放该文件所占用的数据块。因此删除一个目录项的函数被称为unlink而不是delete,在stat结构中,链接计数包含在st_nlink成员中,其基本系统数据类型是nlink_t。这种链接类型称为硬链接
  2. 另外一种链接类型称为符号链接,对于这种链接该文件的实际内容(数据块)包含了该符号链接所指向的文件的名字,该i节点的文件类型是S_IFLNK。
  3. i节点包含了大多数与文件有关的信息:文件类型、文件访问权限、文件长度和指向文件所占用的数据块的指针等等,stat结构中除了文件名和i节点编号两项存在目录项中,其他数据都取自i节点,i节点编号的数据类型是ino_t
  4. 每个目录项中各自对他们的i节点进行编号,因此目录项中的i节点编号数值只指向本文件系统中的相应i节点,不能使一个目录项指向另一个文件系统的i节点,这就是为什么ln命令(构造一个指向现有文件的新目录项)不能跨越文件系统的原因
  5. 当在不更换文件系统的情况下为一个文件更名时,该文件的实际内容并没有移动只需要构造一个指向现有i节点的新目录项,并解除与旧目录项的链接,这就是mv的操作方式
  6. 任何一个叶目录(不是根目录,也没有子目录),链接计数总是2,分别是 . 和 . . ,而对于有子目录的目录,链接计数总是大于等于3,因为除了 . 和 . . 两项还有它的子目录指向他,目录的i节点指向该目录的目录项

 






读书笔记      操作系统      os      linux      unix      龙潭书斋      apue      unix环境高级编程      文件系统      文件     


京ICP备15018585号