目录

1. 引言

2. 磁盘的物理结构

2.1 磁盘的宏观组成

2.2 磁盘的存储密度与容量

3. CHS地址与LBA地址

3.1 CHS地址(Cylinder-Head-Sector)

3.2 LBA地址(Logical Block Address)

4. 磁盘的逻辑模型

5. 操作系统与磁盘的交互

6. 磁盘性能指标(补充)

7. 小结


1. 引言

磁盘是计算机中唯一仍在广泛使用的机械设备,也是最主要的持久化存储设备。理解磁盘的物理结构是掌握文件系统的基础。本文将深入讲解磁盘的物理组成、数据存储方式、CHS寻址与LBA逻辑地址,以及操作系统如何屏蔽硬件细节。

2. 磁盘的物理结构

2.1 磁盘的宏观组成
  • 盘片(Platter):圆形金属或玻璃基片,双面涂覆磁性材料。

  • 主轴(Spindle):带动盘片高速旋转(通常5400rpm、7200rpm或更高)。

  • 磁头(Head):每个盘面有一个磁头,用于读写数据,磁头固定在传动臂上,所有磁头共进退。

  • 传动臂(Actuator Arm):带动磁头在盘片半径方向移动,实现寻道。

  • 磁道(Track):盘片上同心圆环,每个盘面有若干个磁道。

  • 扇区(Sector):磁道被等分为若干弧段,每个扇区存储512字节(传统)或4KB(高级格式),是磁盘最小读写单元

  • 柱面(Cylinder):所有盘面上相同半径的磁道构成的虚拟圆柱体。

补充:磁盘属于块设备,按块进行读写,不能按字节寻址。

2.2 磁盘的存储密度与容量
  • 早期磁盘使用CHS寻址,容量受限于柱面数、磁头数、每磁道扇区数。

  • 现代磁盘使用LBA(Logical Block Addressing),将整个磁盘视为一个扇区数组,操作系统只与LBA交互。

3. CHS地址与LBA地址

3.1 CHS地址(Cylinder-Head-Sector)

要定位一个扇区,需要三个参数:

  • 柱面号(Cylinder):从0开始编号。

  • 磁头号(Head):从0开始,对应盘面。

  • 扇区号(Sector):通常从1开始编号。

物理寻址过程:传动臂将磁头移动到指定柱面,然后选择对应磁头,等待目标扇区旋转到磁头下,读取数据。这就是寻道时间 + 旋转延迟 + 传输时间的由来。

3.2 LBA地址(Logical Block Address)

为了简化操作系统对磁盘的访问,现代磁盘将物理扇区线性编号,从0开始递增。操作系统只使用LBA地址,磁盘内部的固件(伺服系统)负责将LBA转换为CHS。

LBA与CHS的转换公式:

设:

  • HPC = 每柱面磁头数(磁头总数)

  • SPT = 每磁道扇区数

则:

text

单个柱面的扇区总数 = HPC * SPT
LBA = C * (HPC * SPT) + H * SPT + (S - 1)

反向转换:

text

C = LBA / (HPC * SPT)
H = (LBA % (HPC * SPT)) / SPT
S = (LBA % SPT) + 1

这些参数在磁盘内部维护,操作系统可通过hdparm -I /dev/sda等命令获取。

4. 磁盘的逻辑模型

从操作系统角度看,磁盘就是一个一维数组,数组下标为LBA,每个元素是一个扇区(512字节)。这种抽象使得磁盘管理变得简单:任何扇区都可以通过一个数字唯一确定。

图示理解:

  • 物理上:多个盘片 → 每个盘片有多个磁道 → 每个磁道有多个扇区。

  • 逻辑上:将所有扇区按顺序拉直,形成线性地址空间。

5. 操作系统与磁盘的交互

  • 操作系统通过驱动程序向磁盘控制器发送命令(如读LBA 1000开始的8个扇区)。

  • 磁盘控制器内部完成LBA→CHS转换,控制机械部件读取数据,通过DMA将数据传输到内存。

  • 操作系统不直接操作物理机械,只与LBA打交道。

6. 磁盘性能指标(补充)

  • 寻道时间:磁头移动到目标磁道的时间,约5-10ms。

  • 旋转延迟:目标扇区旋转到磁头下的时间,平均为旋转周期的一半(7200rpm下约4.2ms)。

  • 传输时间:实际读写数据的时间,通常很快。

  • IOPS:每秒输入输出操作次数,机械磁盘约100-200,SSD可达数万。

7. 小结

本文介绍了磁盘的物理结构、CHS寻址与LBA逻辑地址的转换,以及磁盘作为块设备的工作模式。理解这些底层知识是学习文件系统的前提。下一篇我们将引入文件系统的基本概念:块、分区与inode。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐