为" name="description" />

UNIX System V 文件系统S5FS的抽象数据结构总结(补)

发表于:2007-06-08来源:作者:点击数: 标签:
这篇文章是按论文的格式写的,引用了若干资料。以方便俺们同学抄,遗憾的是它也是我俺们今年得毕业论文,希望两个导师不要“介意”哈哈哈哈 。 d_ino MI LY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为

这篇文章是按论文的格式写的,引用了若干资料。以方便俺们同学抄,遗憾的是它也是我俺们今年得毕业论文,希望两个导师不要“介意”哈哈哈哈 。

d_inoMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为702d_name为字符串” file.c”。如果现在要在/usr下为file.c取一个别名,即建立一个到file.c的链接file1.c,系统并不真的创建一个新的文件,而仅仅在目录文件usr中添加一项d_ino702,但d_name”file1.c”的新登记项。类似的,若要在别的目录下创建一个到file.c的链接,也只需在该目录文件中添加d_ino702,但d_name为链接名的登记项。

由硬链接的实现可以看出,由于d_ino仅能够对本文件系统内的索引节点进行索引,因此,不能够在两个文件系统之间创建硬链接(不能保证d_ino唯一)。为了解决这个问题,引入了符号链接。与硬链接不同,创建一个符号链接的同时也创建了一个新文件,即分配了一个新的磁盘索引节点。只不过,该文件的内容是所要链接的文件在系统中的路径名,故,要访问原文件,首先要读取这个路径名,再由其查找到原文件的磁盘索引节点,也因此,倘若原文件所在的文件系统的挂载点发生变化,那么该链接就不再可用。

2.1.1                  文件系统安装表

该表反映了各个文件系统之间的链接关系,每一个挂载的文件系统都要在该表中占据一项。

struct  mount {

  int  m_flags ;  // 文件系统状态

  dev_t  m_dev ;  // 逻辑设备号

  struct  inode * m_inodep ; // 挂载目录的内存索引节点指针

  struct  buf * m_bufp ;  // 存放被挂载文件系统的超级块

  struct  inode * m_mount ; // 被挂载文件系统的根索引节点指针  }

原文转自:http://www.ltesting.net