树状/分层文件系统和平面文件系统之间的功能区别是什么?

Oge*_*gen 6 filesystems directory

我能想到的唯一区别都是美学上的。

例如,当您有很多文件时,用户将很难导航到所需的文件,因为它不像在带有目录的树状文件系统中那样组织得很好。

是否存在功能差异?

树状文件系统可以创建子目录,而平面文件系统则没有子目录,只有一个包含所有文件的文件夹。

Vol*_*gel 6

比较文件系统结构

我们想比较文件系统结构以寻找非美学差异。

我们比较分层文件系统与目录树结构,
仅具有一个包含所有文件,类似于没有子目录一个目录的地方文件系统。

两种主要类型的差异是 CPU 时间和内存使用。
此处可能相关的另一种类型是实现的复杂性。

文件访问性能

列出目录性能取决于目录的文件数。
即使在分层文件系统中,列出目录中的文件以删除它们(如果它们很多)也是一个问题。

这一切不仅与数千个文件相关,而且对于 100 个目录中的每个目录中的数十万个文件,您最好不要将它们全部放在一个平面文件系统中,或者全部放在一个目录中。

问题是目录列表遍历整个列表 - 因为目录内没有使用树。
要查找文件,平均而言,必须读取大约一半的文件名。

对于平面文件系统中的 1000000 个文件,这意味着我们需要读取 500000 个名称。

在树结构中,我们可以通过将文件分成 1000 个目录,每个目录 1000 个文件来使用树的两个级别。要找到一个,我们需要在每个级别平均读取 500 个名称,总共 1000 个。
我们也可以使用包含 100 个条目的三个级别。我们平均需要读 150 个名字。

通过这个示例计算,树结构可以很容易地比平面文件系统快得多,比如快 2000 倍,这是合理的。

多种用途

分层文件系统中树的一部分可用于某些单独目的,而其余​​部分不用于该目的:
例如,您可以另一个文件系统(无论是否为平面)挂载到分层文件系统的子目录中。
挂载到平面文件系统与挂载到分层文件系统的根目录一样没有意义。

权限

树状结构的文件系统具有子部分 - 子目录 - 您可以分配权限。
在平面文件系统中,您不能让某人只看到部分文件名。
要更改平面文件系统中的权限,对于部分文件,不可能一次全部更改 - 它需要更改每个单独的文件权限,并且可能需要几秒钟或几分钟的时间,而权限不明确和更改。

小而简单

平面文件系统在资源有限的环境中具有优势 - 在嵌入式系统中。
平面文件系统实现可以非常简单。只要要处理的文件数量很少,它甚至可以比分层文件系统更快!

硬件设备可能需要存储一个文件列表,每个文件都标有一个数字,一次不能超过 1000 个。对于此任务,如果允许使用较小的处理器,从而延长电池寿命,则使用扁平文件系统是有意义的。

平面文件系统的简单性也有助于确保文件系统在实现中没有错误。

  • 我认为很久以前每个人都开始使用树文件系统?CP/M 或 DOS 的第一个版本有一个平面文件系统。 (2认同)
  • 它们存在是因为它们更简单,并且节省了一些内存。而且因为不需要处理许多文件 - 计算机无论如何都无法处理它们。 (2认同)
  • 您是否还考虑过今天用于特殊情况的平面文件系统?我认为分布式文件系统中有一些非常不寻常的结构。 (2认同)
  • 我听说相机有平面文件系统来存储图像。 (2认同)