我正在浏览linux启动过程的细节.据了解,主引导加载程序驻留在512字节图像(程序代码+分区表)中.510字节包括可执行代码,错误消息和分区表信息.最后2个字节包含幻数0xAA55.有人提到"神奇数字用作MBR的验证检查".现在什么是验证检查?我的猜测是像CRC这样的检查,以确保MBR没有损坏.
我在网上搜索,没有关于魔法数字及其工作的解释.但有趣的是,即使是微软操作系统,它们的启动加载器中也有魔术数字.在这方面能有人启发我们吗??????????????
小智 17
嗨,我希望这会对你有所帮助:
http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders
http://en.wikipedia.org/wiki/Extended_boot_record
"0xAA55签名是bootdisk的第一个扇区的最后两个字节(bootsector/Master Boot Record/MBR).如果是0xAA55,那么BIOS将尝试启动系统.如果没有找到(乱码或0x0000) ,你会从你的BIOS收到一条错误消息,它没有找到可引导的磁盘(或者系统尝试启动下一个磁盘).这个签名以二进制形式表示为0b1010101001010101.交替位模式被认为是防止某些故障(驱动器或控制器).
当然,这是一个i386主义(我相信也出现在amd64上).许多其他架构可能采取不同的方法."
http://www.mail-archive.com/misc@openbsd.org/msg18029.html