Какова роль Магического номера при загрузке в Linux?

Я просматривал детали процесса загрузки Linux. Было понятно, что основной загрузчик находится в 512-байтовом изображении (код программы + таблица разделов). 510 байт состоят из исполняемого кода, сообщений об ошибках и информации таблицы разделов. И последние 2 байта содержат магическое число 0xAA55. Было отмечено, что "Магическое число служит проверкой проверки MBR" . Теперь какова проверка валидации? Мое предположение - это своего рода проверка, подобная CRC, чтобы убедиться, что MBR не поврежден.

Я искал в сети, и нет объяснения магических чисел и его работы. Но интересно, что даже Microsoft OS также имеет магические числа в своих загрузчиках. Может кто-нибудь просветить нас в этом отношении??????????????

Ответ 1

Привет, надеюсь, это поможет вам:

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. чередующийся бит-паттерн считался защитой от определенных сбоев (диск или контроллер).

Конечно, это i386ism (также присутствует на amd64, я считаю). Лоты других архитектур могут принимать разные подходы ".

http://www.mail-archive.com/[email protected]/msg18029.html

Ответ 2

Не контрольная сумма, а больше подписи. Это дает некоторые простые доказательства того, что присутствует некоторый MBR.

0xAA55 также является чередующимся битовым шаблоном: 1010101001010101

Он часто используется, чтобы определить, находитесь ли вы в системе little-endian или big-endian, потому что он будет читать как AA55 или 55AA. Я подозреваю, что это часть того, почему он помещен в конец MBR.

См. также Статья в Википедии