【发布时间】:2018-04-08 20:12:14
【问题描述】:
对于 x86,内核由 bios 在 0x7c00 加载并在那里执行。 我不熟悉内核映像,并且在 0x7c00 处执行时对环境感到困惑。我最近研究了 ELF 格式,知道可加载文件中有很多扇区,ld 加载 ELF 文件并在程序执行时初始化环境。但是对于内核引导案例,发生了什么?
【问题讨论】:
-
你的意思是引导扇区被加载在那里? BIOS 不能加载整个内核,除非它很小,这就是为什么我们使用像 GRUB 这样的引导加载程序 (wiki.osdev.org/Bootloader)。或者在过去,en.wikipedia.org/wiki/LILO_(boot_loader)
-
请参阅the GRUB documentation 以了解有关机器在跳转到其加载的内核时所处的状态的更多信息。
-
内核几乎从不在0x7c00。
标签: assembly linux-kernel