2.3.3 IDE磁盘【译】
现代个人计算机器磁盘是从IBM PC XT进化而来,XT的磁盘控制器位于插件卡中,控制着10MB的希捷磁盘。希捷磁盘由4个磁头,306个柱面,每个磁道有17个扇区。控制器能够操作两个驱动。操作系统读写磁盘的方式是:把参数放进CPU寄存器,然后调用PC内建只读内存中的BIOS(基本输入输出系统)。BIOS发布机器指令来加载硬盘控制器寄存器。 从控制器位于分开的板子上,到控制器和驱动紧密集成,技术的飞速发展始于20世纪70年代中期的IDE驱动(电子集成驱动器)。然而,BIOS的调用规范由于向后兼容的原因并未发生变化。调用规范通过给磁头,柱面和扇区编号来给扇区编址,磁头和柱面从0开始编号,扇区从1开始。这种选择可能是来自早期BIOS程序员犯的错误,他在8088汇编器中编写他的杰作。磁头编号有4位,扇区编号有6位,柱面有10位,最大的驱动可能有16个磁头,63个扇区和1024个柱面,合计1032192个扇区。这样一个最大的驱动能存储504MB,在当时看起来似乎是无限的,在今天肯定不是。(你会抱怨今天新买的计算机不能驾驭超过1000TB的驱动吗?) 很不幸的是,不久,504MB以下的驱动诞生了,但是它的结构是错的(比如,4个磁头,32个扇区,2000个柱面共计256000个扇区)。由于一成不变的调用规范,操作系统无法给扇区编址。就这样,磁盘控制器开始撒谎了,假装驱动结构处于BIOS的限制下