文件共享(硬链接,软链接)

注意:
共享与复制的区别:

  1. 多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。
  2. 如果是多个用户都“复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。

1.基于索引结点的共享方式(硬链接)

各个用户的目录项指向同一个索引结点。

1.索引结点

索引结点,是一种文件目录瘦身策略。
由于检索文件时只需用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中。
这样目录项就只需要包含文件名、索引结点指针。

文件共享(硬链接,软链接)_第1张图片

  • 索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数。
  • 若count = 2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。

2.删除操作

  1. 若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点的count值减1。
  2. 若count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空
  3. 当count = 0时系统负责删除文件。

2.基于符号链的共享方式(软链接)

在一个Link 型的文件中记录共享文件的存放路径(Windows快捷方式)
操作系统根据路径一层层查找目录,最终找到共享文件。
文件共享(硬链接,软链接)_第2张图片

  • 当User3访问“ccc”时,操作系统判断文件“ccc”属于Link类型文件,于是会根据其中记录的路径层层查找目录,最终找到User1的目录表中的“aaa”表项,于是就找到了文件1的索引结点。
  • 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link型文件中的路径去查找共享文件会失败(找不到对应目录项)
  • 由于用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问的速度要比硬链接更慢

你可能感兴趣的:(操作系统,1024程序员节,数据库,jvm,linux)