这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。
图1 老式磁盘一个盘片的结构
图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。
图2 老式磁盘的整体结构
简简单介绍了磁盘结构后,下面我们将对磁盘的参数进行讲解。磁盘的常见参数如下:
- 磁头(head)
- 磁道(track)
- 柱面(cylinder)
- 扇区(sector)
- 圆盘(platter)
图2中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6*7*12*512字节。即:
ps:总结到位
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
关于磁盘的一些常识:
- 扇区(sector):最小的物理存储单位,每个扇区512bytes
- 柱面(cylinder):扇区组成的一个圆,柱面是分区(partition)的最小单位
- 第一个扇区:包含开机启动记录(MBR,Master boot record)以及分区表(partition table),其中MBR为446bytes,partition table为64byte,因为分区表大小只有64byte,所以只能存储4个分区信息,这也是为什么一块硬盘只能分为四个主分区,或者将其中一个作为扩展分区,在其中再划分逻辑分区。
2 现代磁盘 (不是很理解)
下面讲一下现代磁盘,在老式磁盘中,尽管磁道周长不同,但每个磁道上的扇区数是相等的,越往圆心扇区弧段越短,但其存储密度越高。
不过这种方式显然比较浪费空间,因此现代磁盘则改为等密度结构,这意味着外围磁道上的扇区数量要大于内圈的磁道,寻址方式也改为以扇区为单位的线性寻址。为了兼容老式的3D寻址方式,现代磁盘控制器中都有一个地址翻译器将 3D 寻址参数翻译为线性参数。
图3 一张Linux的分区表
如图3所示,在Linux中是以柱面为单位来分区的。这里分区大小除以Blocks数的值约1024说明,在磁盘上读写时的最小单位是1024字节----这是我猜的。