在GRUB2源代码中,到内核代码的切换/跳转在哪里?


11

我正在寻找GRUB2最终跳到内核代码并因此在x86系统上移交执行的代码行?我猜它在汇编文件中,因为这是非常低的体系结构。我看着在源文件中/grub-core/boot/i386/pc/*.S,发现JMP以线455 boot.S,但kernel_address可能是在内存中GRUB2内核,而不是Linux内核的地址。

有汇编和GRUB2知识的人可以帮助我吗?


您跟踪内核参数了吗?
phk 2015年

1
由于我是从手机发帖的,所以我在这里不能添加太多,但是根据我记得的与PC兼容和GRUB2的信息,我可以猜测它以0x900000(实模式)将内核映像加载到内存中,其中0x0c000000为一旦您退出实模式进入保护模式,地址就会跳至。不过,这是在具有“受信任启动”的EFI系统上,因此我可能是不正确的。也许您的initrd图像会包含线索?
Wyatt8740 '16

Answers:


1

单从阅读源,应该是在Linux加载程序的地方,在拆迁的地方(独立于装载机)。

希望对您有所帮助:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.