Unix文件系统与安全详解
1. 硬链接特性
在Unix环境中,硬链接是一种独特的存在。所有指向同一文件的硬链接都是平等的,无论哪个硬链接是最先创建的。这对于初学者来说,常常是一个令人困惑的概念。
当使用 rm 等命令时,实际上并不是删除文件,而是解除文件名与inode编号之间的连接。每个inode内部都维护着一个引用计数,它记录了有多少个文件名链接到该inode。 rm 命令会解除文件名的链接,并减少inode的引用计数。当引用计数降为0时,文件就无法再通过名称访问了。
每个目录都有两个特殊名称:“.”(点)和“..”(点 - 点),除非文件系统损坏,否则它们总是存在。“.”关联到目录本身的inode,是自引用的;“..”指向该目录的“父”目录,即树形结构文件系统中更接近根的目录。在根目录中,“.”和“..”都指向根目录本身。
可以使用Unix的 ln 命令为文件创建硬链接,但不能为目录创建硬链接,只有内核可以这样做(不过,直接编辑磁盘或执行其他高风险特权操作来创建目录硬链接会带来诸多问题,不建议尝试)。不过,可以为目录创建符号链接。
2. 虚拟文件系统接口
虚拟文件系统接口使Unix操作系统能够同时与多个文件系统进行交互。它有时也被称为vnode接口,因为它定义了Unix内核可以在虚拟节点上执行的一组操作,这与UFS的物理inode不同。
最初的虚拟文件系统接口是由Sun Microsystems开发的,用于支持其网络文件系统(NFS)。此后,该接口得到了扩展和适配,以支持许多不同的文件系统。
超级会员免费看
订阅专栏 解锁全文
3941

被折叠的 条评论
为什么被折叠?



