为什么55 AA用作IBM PC上的启动签名?

时间:2012-06-17 21:39:18

标签: boot signature bootloader bootstrapping

为什么 IBM PC 架构在启动签名的bootsector的最后两个字节中使用55 AA幻数?

我怀疑这与它们的位模式有关:01010101 10101010,但不知道是什么。

我的猜测是:

  1. BIOS正在对这些字节进行一些按位和/或/ xor运算以将它们进行比较,例如,如果结果为0,则可以轻松检测到并跳转到某处。
  2. 它可能是一些奇偶校验/完整性保护,如果其中一些位被破坏,它可以被检测到或仍然被认为是有效的签名以正确启动系统,即使磁盘上的这些特定位已被破坏或东西。
  3. 也许有人能帮我回答这个唠叨的问题?

    我记得我曾经读过某些关于这些位模式的内容,但不记得在哪里。而且它会出现在一些纸质书中,因为我在网上找不到任何关于它的东西。

1 个答案:

答案 0 :(得分:5)

我认为这是任意选择的,因为10101010 01010101似乎是一个很好的位模式。 Apple [[重置向量]与$ A5到(10100101)xor'ed以产生一个校验值。有些机器使用更具“特定”的东西进行启动验证;对于PET衍生机器(例如Commodore Business Machines的VIC-20和Commodore 64),可引导的盒式磁带图像位于例如地址$ 8000将PETASCII字符串“CBM80”存储在地址$ 8004(从$ A000开始的购物车将有$ A004的字符串“CBMA0”等),但我想IBM认为任何其他机器的磁盘都不会插入并在第一个扇区的最后两个字节中有$ 55AA。