📜  操作系统目录结构

📅  最后修改于: 2021-09-27 22:37:15             🧑  作者: Mango

目录是用于包含文件夹和文件的容器。它以分层方式组织文件和文件夹。

目录有几种逻辑结构,下面给出了这些结构。

  • 单级目录 –
    单级目录是最简单的目录结构。其中,所有文件都包含在同一目录中,便于支持和理解。

    但是,当文件数量增加或系统具有多个用户时,单级目录具有显着限制。由于所有文件都在同一目录中,因此它们必须具有唯一的名称。如果两个用户调用他们的数据集测试,则违反了唯一名称规则。

优点:

  • 由于它是单个目录,所以它的实现很容易。
  • 如果文件较小,搜索会变得更快。
  • 在这样的目录结构中,文件的创建、搜索、删除、更新等操作都非常容易。

缺点:

  • 由于两个文件不能具有相同的名称,因此可能会发生名称冲突。
  • 如果目录很大,搜索将变得很耗时。
  • 这不能将相同类型的文件组合在一起。
  • 两级目录——
    正如我们所见,单一级别的目录经常会导致不同用户之间文件名的混淆。这个问题的解决方案是为每个用户创建一个单独的目录。

    在两级目录结构中,每个用户都有自己的用户文件目录(UFD) 。 UFD 具有相似的结构,但每个 UFD 仅列出单个用户的文件。每当新用户 id=s 登录时,都会搜索系统的主文件目录 (MFD) 。MFD 由用户名或帐号索引,每个条目都指向该用户的 UFD。

优点:

  • 我们可以提供完整路径,如 /User-name/directory-name/。
  • 不同的用户可以拥有相同的目录和文件名。
  • 由于路径名和用户分组,文件搜索变得更容易。

缺点:

  • 不允许用户与其他用户共享文件。
  • 尽管如此,它的可扩展性不是很好,相同类型的两个文件不能在同一个用户中组合在一起。
  • 树状目录——
    一旦我们将两级目录看作高度为 2 的树,自然的概括就是将目录结构扩展为任意高度的树。
    这种概括允许用户创建他们自己的子目录并相应地组织他们的文件。

树结构是最常见的目录结构。树有一个根目录,系统中的每个文件都有一个唯一的路径。

优点:

  • 非常通用,因为可以给出完整的路径名。
  • 可扩展性很强,名字冲突的概率更小。
  • 搜索变得非常容易,我们既可以使用绝对路径,也可以使用相对路径。

缺点:

  • 每个文件都不适合分层模型,文件可能会保存到多个目录中。
  • 我们不能共享文件。
  • 这是低效的,因为访问一个文件可能会在多个目录下进行。
  • 无环图目录——
    无环图是没有环的图,允许我们共享子目录和文件。相同的文件或子目录可能位于两个不同的目录中。它是树结构目录的自然概括。

    它用于两个程序员在共同项目上工作并且他们需要访问文件的情况。相关文件存储在一个子目录中,将它们与其他项目和其他程序员的文件分开,因为他们正在处理一个联合项目,因此他们希望子目录位于他们自己的目录中。应共享公共子目录。所以这里我们使用非循环目录。

    需要注意的是,共享文件与复制文件不同。如果任何程序员在子目录中进行了一些更改,它将反映在两个子目录中。

优点:

  • 我们可以共享文件。
  • 由于不同的路径,搜索很容易。

缺点:

  • 我们通过链接共享文件,以防删除它可能会造成问题,
  • 如果链接是软链接,那么在删除文件后,我们会留下一个悬空指针。
  • 在硬链接的情况下,要删除文件,我们必须删除与其关联的所有引用。
  • 一般图形目录结构 –
    在一般的图形目录结构中,在一个目录结构中允许循环,其中可以从多个父目录派生多个目录。
    这种目录结构的主要问题是计算文件和目录占用的总大小或空间。

优点:

  • 它允许循环。
  • 它比其他目录结构更灵活。

缺点:

  • 它比其他人更昂贵。
  • 它需要垃圾收集。