为什么将55 AA用作IBM PC上的启动签名? [英] Why 55 AA is used as the boot signature on IBM PCs?
问题描述
为什么 IBM PC 体系结构在引导区的最后两个字节中使用55 AA
幻数作为引导签名?
Why does the IBM PC architecture use 55 AA
magic numbers in the last two bytes of a bootsector for the boot signature?
我怀疑这与它们的位模式有关:01010101 10101010
,但不知道是什么.
I suspect that has something to do with the bit patterns they are: 01010101 10101010
, but don't know what.
我的猜测是:
- BIOS会对这些字节进行按位和/或/或xor运算,以将它们进行比较,例如,如果结果为0,它可以很容易地检测到并跳转到某个地方.
- 某种奇偶校验/完整性保护措施是:如果这些位中的某些位被破坏,则可以检测到它,或者某些东西仍然被认为是有效引导系统的有效签名,即使磁盘上的这些特定位已被破坏或东西.
也许你们中的某人可以帮助我回答这个令人讨厌的问题?
Maybe someone of you could help me answer this nagging question?
我记得我曾经读过一些关于这些位模式的文章,但不记得在哪里.而且它可能会出现在一些纸质书中,因为我无法在网上找到任何有关它的信息.
I remember I've once read somewhere about these bit patterns but don't remember where. And it migt be in some paperbook, because I cannot find anything about it on the Net.
推荐答案
我认为它是任意选择的,因为10101010 01010101似乎是一个不错的位模式.将Apple] [+重置向量与$ A5异或到(10100101)以产生校验值.有些机器使用更多特定"的东西来进行启动验证.对于PET衍生机器(例如Commodore Business Machines的VIC-20和Commodore 64),可启动的盒式磁带映像位于地址$ 8000会将PETASCII字符串"CBM80"存储在地址$ 8004(以$ A000开头的购物车的字符串"CBMA0"在$ A004等),但是我想IBM认为其他任何机器的磁盘都不会插入,并在第一个扇区的最后两个字节中存储$ 55AA.
I think it was chosen arbitrarily because 10101010 01010101 seemed like a nice bit pattern. The Apple ][+ reset vector was xor'ed with $A5 to (10100101) to produce a check-value. Some machines used something more "specific" for boot validation; for PET-derived machines (e.g. the VIC-20 and Commodore 64 by Commodore Business Machines), a bootable cartridge image which was located at e.g. address $8000 would have the PETASCII string "CBM80" stored at address $8004 (a cart starting at $A000 would have the string "CBMA0" at $A004, etc.), but I guess IBM didn't think disks for any other machine would be inserted and have $55AA in the last two bytes of the first sector.
这篇关于为什么将55 AA用作IBM PC上的启动签名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!