Oge*_*gen 6 filesystems directory
我能想到的唯一区别都是美学上的。
例如,当您有很多文件时,用户将很难导航到所需的文件,因为它不像在带有目录的树状文件系统中那样组织得很好。
是否存在功能差异?
树状文件系统可以创建子目录,而平面文件系统则没有子目录,只有一个包含所有文件的文件夹。
我们想比较文件系统结构以寻找非美学差异。
我们比较分层文件系统与目录树结构,
用平仅具有一个包含所有文件,类似于没有子目录一个目录的地方文件系统。
两种主要类型的差异是 CPU 时间和内存使用。
此处可能相关的另一种类型是实现的复杂性。
列出目录的性能取决于目录的文件数。
即使在分层文件系统中,列出目录中的文件以删除它们(如果它们很多)也是一个问题。
这一切不仅与数千个文件相关,而且对于 100 个目录中的每个目录中的数十万个文件,您最好不要将它们全部放在一个平面文件系统中,或者全部放在一个目录中。
问题是目录列表遍历整个列表 - 因为目录内没有使用树。
要查找文件,平均而言,必须读取大约一半的文件名。
对于平面文件系统中的 1000000 个文件,这意味着我们需要读取 500000 个名称。
在树结构中,我们可以通过将文件分成 1000 个目录,每个目录 1000 个文件来使用树的两个级别。要找到一个,我们需要在每个级别平均读取 500 个名称,总共 1000 个。
我们也可以使用包含 100 个条目的三个级别。我们平均需要读 150 个名字。
通过这个示例计算,树结构可以很容易地比平面文件系统快得多,比如快 2000 倍,这是合理的。
分层文件系统中树的一部分可用于某些单独目的,而其余部分不用于该目的:
例如,您可以将另一个文件系统(无论是否为平面)挂载到分层文件系统的子目录中。
挂载到平面文件系统与挂载到分层文件系统的根目录一样没有意义。
树状结构的文件系统具有子部分 - 子目录 - 您可以分配权限。
在平面文件系统中,您不能让某人只看到部分文件名。
要更改平面文件系统中的权限,对于部分文件,不可能一次全部更改 - 它需要更改每个单独的文件权限,并且可能需要几秒钟或几分钟的时间,而权限不明确和更改。
平面文件系统在资源有限的环境中具有优势 - 在嵌入式系统中。
平面文件系统实现可以非常简单。只要要处理的文件数量很少,它甚至可以比分层文件系统更快!
硬件设备可能需要存储一个文件列表,每个文件都标有一个数字,一次不能超过 1000 个。对于此任务,如果允许使用较小的处理器,从而延长电池寿命,则使用扁平文件系统是有意义的。
平面文件系统的简单性也有助于确保文件系统在实现中没有错误。