文件保护看下一小节。
一、基于索引结点的共享方式(硬链接)
索引结点,是一种文件目录瘦身策略,由于检索文件时只需用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。
索引结点中设置一个链接计数变量 count, 用于表示链接到本索引结点上的用户目录项数。
1)若 count= 2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。
2)若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点的 count 值减 1。
若 count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。
当 count=0 时才能真正删除文件数据和索引结点,系统负责删除文件。
二、基于符号链的共享方式(软链接)
假如操作系统中用户1和用户2通过硬链接的方式共享文件1。
1)如果此时用户3想通过软链接的方式来共享这个文件,那么用户3就会创建一个文件,这个文件是一个特殊的link文件,这个文件中存放了文件1的存储路径。
当User3访问“ccc”时,操作系统判断文件“ccc”属于Link类型文件(Windows操作系统快捷方式就是.link文件),于是会根据其中记录的路径层层查找目录(会有多次磁盘I/O,因此用软连接访问共享文件的速度比硬链接更慢),最终找到User1的目录表中的“aaa”表项,于是找到了文件1的索引节点,就可以访问文件1。
2)如果此时用户1和用户2都删除了文件1,那么此时文件1就会被从外存中删除,但是文件1的删除并不会导致文件2的删除。当用户3访问“ccc”时,同样操作系统会根据文件2中存放的路径去查找,此时文件2已经被删除,所以肯定找不到了,所以文件2就失效了,类比于Windows操作系统中快捷方式就是“此快捷方式所指向的路径已经被删除”。