魔术数字在Linux引导加载中的作用是什么?

我正在浏览linux启动过程的细节。 据了解,主引导加载程序驻留在512字节的图像(程序代码+分区表)。 510字节包含可执行代码,错误消息和分区表信息。 最后2个字节包含一个幻数0xAA55。 有人提到“魔术数字是MBR的validation检查” 。 现在什么是validation检查? 我的猜测是像CRC一样的检查,以确保MBR没有损坏。

我在网上search,没有神奇的数字和它的工作的解释。 但有趣的是,即使是微软操作系统的启动加载器也有神奇的数字。 有人可以在这方面给我们启迪吗??????????????

嗨,我希望这会帮助你:

http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders

http://en.wikipedia.org/wiki/Extended_boot_record

“0xAA55签名是引导盘第一扇区(bootsector / Master Boot Record / MBR)的最后两个字节,如果是0xAA55,BIOS将尝试引导系统,如果没有找到(乱码或0x0000) ,你会从BIOS中得到一个错误信息,它没有找到可启动的磁盘(或者系统试图启动下一个磁盘),这个签名被表示为(二进制)为0b1010101001010101,交替的位模式被认为是防止某些故障(驱动器或控制器)。

当然,这是一个i386ism(也相信amd64我相信)。 其他许多架构可能采取不同的方法。“

http://www.mail-archive.com/misc@openbsd.org/msg18029.html

不是校验和,而是更多的签名。 它确实提供了一些简单的证据表明有一些 MBR存在。

0xAA55也是一个交替位模式:1010101001010101

它通常用于帮助确定您是在小端还是大端系统,因为它会读取AA55或55AA。 我怀疑这是为什么它被放在MBR的末尾。

另请参阅这篇维基百科文章

快速搜索出现了这个: http : //en.wikipedia.org/wiki/Master_boot_record

似乎这只是一个神奇的数字来标记MBR的结束