Why is 55 AA used as a boot signature on an IBM PC?

Why the IBM PC architecture uses 55 AA magic numbers in the last two bytes of the boot sector to sign

I suspect this has something to do with bit patterns: 01010101 10101010 , but I don't know what.

My guess is this:

  • The BIOS performs some bitwise and / or / xor operations on these bytes in order to compare them together, and if it, for example, leads to 0, it can easily detect this and go there.
  • there may be some kind of parity / integrity protection which, if some of these bits are broken, can be detected or something else and still be considered a valid signature for the system to boot properly, even if these specific bits on the disk were broken or something.

Maybe one of you could help me answer this glaring question?

I remember I once read about these bit patterns, but I don’t remember where. And it may be in some kind of paper book, because I can not find anything on the Web.

+8
bootloader bootstrapping signature boot
source share
1 answer

I think it was randomly chosen because 10101010 01010101 seemed like a nice bit. The Apple vector [+ reset was linked from $ A5 to (10100101) to get a checksum. Some machines used something more "specific" for boot authentication; for PET-based machines (for example, VIC-20 and Commodore 64 Commodore Business Machines) the image of the loading cartridge that was located, for example, the address $ 8000 would have the PETASCII string β€œCBM80” stored at $ 8004 (for a basket starting with $ A000 , there would be the string "CBMA0" at the price of $ A004, etc.), but I think that IBM did not think that the disks for any other machine would be inserted and have $ 55AA in the last two bytes of the first sector.

+5
source share

All Articles