2026/9/11 17:46:41
网站建设
项目流程
一、磁盘的江湖地位
- 机械磁盘是计算机中唯一的机械设备,属于外设,离 CPU 远,所以慢
- 但它容量大、价格便宜:几百块钱就能买 TB 级磁盘,而内存一般只有 4~16GB
- 磁盘产业:国外厂商(西部数据、东芝、希捷)做得好;国内在软件、加密、存储方案上推进国产化(尤其银行领域)
- 冷热数据分离(朋友圈例子):
- 两年前的旧记录 → 备份到便宜的大容量盘(所以翻旧记录慢)
- 最新记录 → 存在高效盘上
- 企业用不同的盘做分层存储,兼顾性能与成本
二、从服务器到机房:磁盘的家
- 服务器:没有鼠标键盘显示器,只需网卡,通过网络访问;常见 4×6 = 24 个可热插拔盘位,单台可插 24×4TB
- 机柜:塞约 10 台服务器,背面走线(路由器、防火墙),简单组网
- 机房:多个机柜相连,是公司的命门,进门要经过两三次审核
- 自建机房成本极高(土地、建筑、电费、散热空调、设备损耗、网络),只有大厂玩得起 →云服务的由来:白天压力大晚上压力小,资源利用率不充分,把闲时资源卖出去,开源节流
三、磁盘的物理结构
- 盘片:光面,用来存数据;一张盘片正反两面都能存
- 马达:带动盘片高速旋转(7200 / 10000 / 14000 / 20000 转等,转速越高效率越高)
- 磁头:像针头一样悬浮在盘面上读写数据,有几个盘面就有几个磁头
- 摆臂(传动臂):带动磁头在半径方向来回摆动(寻道)
- 类比:盘片 = 纸,磁头 = 笔
- 磁盘是密封的军工级产品,内部基本真空,私自拆盖即报废
![]()
四、磁盘的本质:磁铁
- 盘片放大看由无数小颗粒构成,每个颗粒 = 一块小磁铁
- 规定:一个磁极方向代表1,另一个代表0(如南极 = 1,北极 = 0)
- 写磁盘 = 磁头通电改变小磁铁的南北极方向
- 不同设备用不同的物理特性表示二进制:
- 磁盘:磁极方向
- 内存:电平(电容充放电)
- 网络:波形高低
- 物理特性不同,但都是两个状态,本质都是二进制
永久存储与退磁
- 不主动删除、不退磁,数据就一直在(永久存储介质)
- 高温会退磁:磁铁烧一烧就变成普通石头 → 磁盘数据彻底消失
- 💡 所以机房怕火、严禁明火——电脑烧了无所谓,磁盘退磁数据就全没了;要彻底销毁磁盘数据也可以烧掉,或者全盘写 0 / 写 1、格式化
五、磁盘的存储结构:磁道、扇区、柱面
1. 磁道(Track)
- 盘面由一系列同心圆构成,每个同心圆就是一条磁道(类似地球的经纬线圈)
2. 扇区(Sector)—— 基本读写单位
![]()
- 磁道不连续,被切分成一小节一小节 =扇区(因磁道有宽度,截取一段呈扇形)
- 一个扇区 512 字节= 512 个小磁铁(先进磁盘也有 4K 扇区)
- 磁盘读写的基本单位是扇区:
- 哪怕只改 1 个 bit,也要把整个扇区 512 字节读进内存 → 改那一位 → 再整体写回
- 不允许按字节 I/O:外设按字节读写效率太低
- 内外圈磁道长短不同,但容量都按 512B 算——只是二进制位的疏密程度不同;先进磁盘可以让外圈密度更高从而容量更大(取决于磁盘技术,课程不做深究)
- 编号细节:扇区号从 1 开始,柱面号和磁头号从 0 开始(如"0 号柱面、0 号磁头、1 号扇区")
3. 多盘面与磁头共进退
- 一块磁盘可有多张盘片,如 3 片 = 6 面;有几面就有几个磁头
- 磁头共进退:只有一个传动臂,磁头摆动 = 传动臂伸缩,所有磁头同时前伸 / 后缩,各自独立寻道做不到
4. 柱面(Cylinder)
![]()
- 所有盘面中同一半径的磁道,逻辑上构成一个柱面
- 因为磁头共进退,大家总指向同一半径的磁道 → 柱面是逻辑概念
- 写大批数据时可以以柱面为单位,多个磁头同时写,效率高
- 数量上:柱面数 = 磁道数,盘面数 = 磁头数,每个磁道的扇区数相同
5. CHS 定位:三个数字定位一个扇区
- 传动臂带动磁头定位到柱面(先定柱面)
- 选哪个磁头(确定哪一面)
- 等盘片旋转,让目标扇区转到磁头下方
这就是最早期的寻址方式——CHS 寻址(Cylinder / Header / Sector)。
磁盘容量公式
容量 = 磁头数 × 柱面数(磁道数) × 每磁道扇区数 × 512B
CHS 的局限(老黄历,听个故事)
- 早期系统用8bit 存磁头号(最多 256 个)、10bit 存柱面号(最多 1024 个)、6bit 存扇区号(最多 63 个),一个扇区 512B
- 算下来 CHS 寻址最大只能支持约8.4GB
- 现代主流磁盘内部依然在用 CHS定位,但已经不再暴露给操作系统和用户直接使用
企业盘 vs 桌面盘
- 一次定位成功= 企业盘;需要多次读、多次确认 = 桌面盘
- 转速越高、摆臂摆动频率越高,效率越高;磁头错过了目标扇区,只能等盘片转下一圈
六、文件 = 内容 + 属性,都是数据
- 文件的大小、名称、权限、时间等属性也是数据
- 文件 = 内容 + 属性;区分内容与属性是文件系统和操作系统的事,在磁盘看来全是二进制
- 文件存储 = 占据一个或多个扇区
- 磁盘上能定位一个扇区(CHS),就能定位多个扇区——记录文件所占扇区的地址集合,即可还原文件
七、逻辑抽象:LBA——磁盘就是一个数组
磁带类比(本节的灵魂)
![]()
![]()
- 磁带卷起来是同心圆(像磁盘的磁道),拉直了就是线性结构
- 磁盘的一面不也是由同心圆磁道构成的吗?把一面"破开拉直",它就成了线性结构
- 六面都拉直拼起来 →磁盘在逻辑上就是线性结构,其中最小的基本单元就是扇区
LBA(Logical Block Address)
- 线性结构中每个扇区都有一个线性下标,这个下标就是LBA
- 从此:定位一个扇区只需要一个数字(数组下标),不再需要 CHS 三个参数
- 💡操作系统对磁盘的管理,一瞬间就变成了对数组的管理(先描述,再组织)
类比虚拟地址空间
- 操作系统开机时识别磁盘总容量,总容量 ÷ 512 → 得到 0 到最大值的扇区下标范围,瞬间全部"拥有"
- 这和虚拟地址空间非常像:
- 进程:虚拟地址 0 到全 F 线性连续,经页表转换成物理地址(最小单元 1 字节,由软件/MMU 体系完成)
- 磁盘:LBA 0 到最大值线性连续,转换成 CHS 由**磁盘内部固件(硬件电路/伺服系统)**完成
- 黑盒视角:给磁盘一个 LBA,它自己就能定位到对应扇区,OS 不需要关心内部细节
- OS 也不需要记录每个扇区的信息——知道总容量,下标范围自然全有
CHS ↔ LBA 互转(一维 ↔ 三维下标互转)
设每磁道扇区数为 S、磁头数为 H:
LBA = C × (H × S) + H' × S + (S' − 1) └─ 前面完整柱面的扇区总数 ─┘ └前面完整磁道┘ └自己−1(扇区号从1起,LBA从0起)┘ 反解: 柱面号 C = LBA ÷ (H × S) (整除) 磁头号 H' = (LBA mod (H × S)) ÷ S (整除) 扇区号 S' = LBA mod S + 1
- 推导思路:先数前面完整柱面的所有扇区,再数前面完整磁道的扇区,最后加上自己——因为扇区号从 1 开始而 LBA 从 0 开始,所以减 1
- 反解就是一路除法取整 + 模运算
- 本质:一维下标 ↔ 三维下标互转,和二维数组与一维数组互转的除 / 模运算是同一套思想
- 💡 老师强调:CHS/LBA 互转公式不是重点,重点是——OS 只需使用 LBA;磁盘 = 以扇区为元素的一维数组;用一个数字就能访问磁盘上的任意扇区
三级视角(录音补充)
- 磁道展开 =一维数组
- 柱面展开 =二维数组(柱面上每条磁道扇区数一样)
- 整个磁盘 = 多张二维表 =三维数组
- LBA 就是把三维下标拍扁成一维下标
八、一条完整的认知链
磁盘是唯一机械设备(慢、大容量、便宜) ↓ 物理结构:盘片 + 马达 + 磁头 + 摆臂(磁头共进退) ↓ 存储结构:磁道(同心圆)→ 扇区(512B,基本读写单位)→ 柱面(同半径磁道) ↓ CHS 三步定位:定柱面 → 选磁头 → 等旋转(但寻址能力上限约 8.4GB) ↓ 逻辑抽象:磁带拉直 → 磁盘 = 线性结构 = 以扇区为元素的一维数组 ↓ LBA:一个数字定位任意扇区;CHS 转换交给磁盘固件(黑盒) ↓ OS 管理磁盘 = 管理数组(先描述,再组织)→ 为下一章"引入文件系统"铺路