我正在读书UNIX 快速文件系统第 3 页上写着以下内容:
这里的“分区”是指磁盘驱动器上物理空间的细分。在传统文件系统中,与新文件系统中一样,文件系统实际上位于可能重叠的逻辑磁盘分区中。例如,这种重叠可以允许程序复制包含多个文件系统的整个磁盘驱动器
我不太明白这里的“重叠”是什么意思。以下是我对磁盘组织的理解:
磁盘被划分为必须连续的扇区(物理块)。分区是磁盘的逻辑分区,块的大小是扇区大小的整数倍,并且安装了文件系统。
分区本身必须驻留在磁盘的连续块中(尽管分区内的文件可能在分区内随机分布)。
- 我对磁盘组织的理解是否正确?
- 论文中分区重叠是什么意思?
答案1
请记住,您正在阅读的文本来自大约 35 年前,虽然“快速文件系统”的许多特征在例如 ext2 中得以保留,但我假设您这样做是为了研究历史。
磁盘被划分为必须连续的扇区(物理块)。
有点。身体上,硬盘分为多个盘片,每个盘片都有一个读/写磁头。一个盘片上的同心圆形成一个轨道,每个盘片相同位置的一组轨道形成一个圆柱体。轨道分为多个扇区。
这是一个 3D 结构,而不是线性结构,因此它不能是连续的。然而,每个扇区(在每个柱面、每个磁头上)都被赋予一个块号,并且这些块号是连续的,并且连续的物理块彼此非常接近。
所以从操作系统的角度来看,硬盘由许多物理块组成,具有连续的物理块地址(或扇区地址,因为每个块都是一个物理扇区)。
在 PC 上(而不是文档中的 PDP-11/VAX 上),硬盘寻址从柱面/磁头/扇区方案 (CHS) 变为块地址方案 (LBA)。
分区是磁盘的逻辑划分,块的大小是扇区大小的整数倍,...
是的。堵塞这是一个危险的词,因为它在不同的上下文中可能意味着不同的事情。文件系统使用“文件系统块”或“分配块”,它们是物理块大小的倍数。分区,至少是PC和BSD风格的分区,通常使用物理块作为“分区块大小”。
...安装了文件系统。
不必要。它还可以是交换空间、PC 扩展分区(允许四个以上分区的占位符)或 BSD 原始分区(见下文)。
分区本身必须驻留在磁盘的连续块中(尽管分区内的文件可能在分区内随机分布)。
是的。分区只是物理块的连续范围(由开始和结束块给出,或开始块和该分区中的块数)。
因此,没有什么可以阻止我们定义一个包含多个其他分区的分区。事实上,如果你看一下 BDS 分区示例BSD标签,
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 81920 16 4.2BSD 1024 8192 16
b: 160000 81936 swap
c: 1173930 0 unused 0 0 # "raw" part, don't edit
分区 a 由块 16-81935 组成,分区 b 由块 81936-1681936 组成,分区 c 由块 0-1173929 组成。因此分区 c “包含”分区 a 和 b (以及一些额外的块)。
跨越整个磁盘的最后一个“原始”分区是为了方便:它允许操作系统访问整个磁盘,例如完全复制它。在 Linux 上,这是不必要的,因为操作系统可以访问代表整个磁盘的块设备。
请注意,“容器”分区不可能有文件系统,因为这会与所包含分区中的文件系统或其他数据发生冲突。