Где в исходном коде GRUB2 находится передача / переход к коду ядра?


11

Я ищу строку кода, где GRUB2, наконец, переходит к коду ядра и таким образом передает выполнение на системах x86? Я предполагаю, что это в файле на ассемблере, так как это очень слабая архитектура. Я посмотрел на исходные файлы /grub-core/boot/i386/pc/*.Sи нашел JMPв boot.S строку 455, но это kernel_addressмог быть адрес ядра GRUB2 в памяти, а не ядро ​​linux.

Кто-нибудь со знанием сборки и GRUB2 может мне помочь?


Вы отслеживали параметры ядра?
phk

1
Я не могу добавить здесь слишком много, поскольку я отправляю сообщения с телефона, но я могу догадаться, основываясь на том, что я помню о совместимости с ПК и GRUB2, что он загружает образ ядра в память по адресу 0x900000 (реальный режим), причем 0x0c000000 является адрес перескочил, как только вы выйдете из реального режима в защищенный режим. Это было в системе EFI с «доверенной загрузкой», хотя, так что я могу ошибаться. Может быть, ваше initrdизображение будет содержать подсказки?
Wyatt8740 10.07.16

Ответы:


1

Просто прочитав исходный код, это должно быть место в загрузчике linux и это место в перегрузчике (независимо от загрузчика).

Надеюсь, это поможет :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.