一.盘片
盘片是一个圆形坚硬的表面,通过引入磁性变化来永久存储数据,这些盘片通常由一些硬质材料(如铝)制成,然后涂上薄薄的磁性层,即使驱动器断电,驱动器也能持久存储数据位。每个盘片有两面,每面都称为表面,简单来说你可以将它想象成一张张的黑胶唱片。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面。
2、磁道、扇区
每个盘片被划分为一个个磁道(一个一个半径不同的同心圆环),每个磁道又划分为一个个扇区(磁道上的一个弧段)。扇区是磁盘的最小组成单元,通常是512字节。如下图:其中,最内侧磁道上的扇区面积最小,因此数据密度最大。
3、柱面
每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。
所有盘面中半径相同的磁道组成柱面。如下图:
4、容量计算和磁盘寻道
基于上述的三个结构,形成了磁盘的CHS参数,及磁头数(heads),柱面数(cylinders),扇区数(sectors),依据上述三个参数,能够对任意一个磁盘块进行定位。
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
寻道时间:磁头从接收到指令开始,移动到数据所在磁道(柱面)所需要的时间,寻道时间越短,I/O操作越快。目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。
旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。普通硬盘一般都是7200rpm,慢的5400rpm。
数据传输时间:完成传输所请求的数据所需要的时间。
所以读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。
5、LBA线性寻址
在老式硬盘中,由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道的记录密度,这样会浪费很多的磁盘空间为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多,采用这种结构后,硬盘不再具有实际的CHS参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。
但一些古老的软件仍然使用CHS寻址方式(如使用BIOSInt13H接口的软件),为了兼容这样的程序,在硬盘控制器内部安装了一个地址翻译器,可以通过它将老式CHS参数翻译成新的线性参数。
LBA全称是Logic Block Address(逻辑块地址),又叫线性寻址,我们可以把以扇区为单位,从0开始编号,即第一个扇区是0号扇区,第二个扇区为1号扇区依次类推.有了LBA定址方式我们可以很方便的定位到想要看的扇区号.我们可以简单的认为每个扇区都是紧挨着的,每个扇区都有自己的LBA扇区编号.
从CHS到LBA:
假设用C表示当前柱面号,H表示当前磁头号,Cs表示起始柱面号,Hs表示起始磁头号,Ss表示起始扇区号,PS表示每磁道有多少个扇区,PH表示每柱面有多少个磁道,则有以下对应关系:
LBA=(C-Cs)*PH*PS+(H-Hs)*PS+(S-Ss)
参考文章:(232条消息) 5分钟图解磁盘结构(软件层面)_奇妙之二进制的博客-CSDN博客_磁盘结构
(232条消息) 【计算机组成原理】磁盘的基本结构_磁盘结构_性感博主在线瞎搞的博客-CSDN博客
《软件安全》 彭国军