gpt4 book ai didi

file - 文件系统实现中的基本概念

转载 作者:行者123 更新时间:2023-12-01 00:49:25 25 4
gpt4 key购买 nike

我不清楚文件系统的实现。具体来说(操作系统 - Tannenbaum(第 3 版),第 275 页)指出“每个 block 的第一个字用作指向下一个字的指针。 block 的其余部分是数据”。

谁能在这里向我解释一下部门的层次结构?就像,每个磁盘分区都包含 block , block 包含单词?等等……

最佳答案

我面前没有这本书,但我怀疑引用的句子并不是真正在谈论文件、目录或其他文件系统结构。 (请注意,分区通常不是文件系统概念)。我认为您引用的句子实际上只是指出了有关存储在磁盘 block 中的数据结构如何链接在一起的内容。它的意思就是它所说的。每个 block (通常为 4k,但可能只有 512B)看起来非常粗略如下:

+------------------+------------- . . . . --------------+
| next blk pointer | another 4k - 4 or 8 bytes of stuff |
+------------------+------------- . . . . --------------+

下一个 block 指针之后的内容取决于该特定 block 中存储的内容。仅从给出的句子中,我无法判断代码是如何计算出来的。

关于文件系统结构:

  • disksectors 的数组,大小几乎总是 512B。在内部,磁盘是由盘片构成的,这些盘片是被锈迹覆盖的旋转盘状物体,每个盘片被分成许多同心的轨道。但是,ATA 或 SCSI 磁盘接口(interface)硬件对操作系统完全隐藏了这些细节。
  • 操作系统将 sectors 数组划分为 partitions。分区是连续的扇区范围,分区不重叠。 (事实上​​,这在某些操作系统上是允许的,但想想就令人困惑。)
  • 因此,partition 也是 sectors 的数组。

到目前为止,文件系统还没有真正出现。大多数文件系统都构建在一个分区内。文件系统通常有以下几个概念。 (我使用的名称是来自 unix 传统的名称,但其他操作系统也会有类似的想法。)

  • 在分区的某个固定位置是 super block 。 super block 是所有文件系统数据结构的根,包含足够的信息来指向所有其他实体。 (事实上​​,作为一种简单的容错形式,通常有多个 super block 分散在分区中。)

  • 文件系统的基本概念是inode,即“eye-node”。 inode 代表构成文件系统的各种类型的对象,最重要的是普通文件和目录。一个 inode 可能是它自己的 block ,但某些文件系统将多个 inode 打包到一个 block 中。 inode 可以指向一组构成文件或目录实际内容的数据 block 。如何在磁盘上组织和索引文件的数据 block 是文件系统的关键任务之一。对于目录,数据 block 保存目录中包含的文件和子目录的信息,而对于普通文件,数据 block 保存文件的内容。

  • 数据 block 是分区上的大部分 block 。一些被分配给各种inode(即,目录和文件),而另一些则是免费的。另一个关键的文件系统任务是在数据写入文件时分配空闲数据 block ,并在文件被截断或删除时从文件中释放数据 block 。

所有这些概念都有很多变体,而且我敢肯定,在某些文件系统中,我上面所说的与现实不太相符。但是,通过上述内容,您应该能够了解文件系统如何完成其​​工作,并至少了解您在任何特定文件系统中遇到的差异。

关于file - 文件系统实现中的基本概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com