Bìn*_*yên 4 grub boot x86 linux-kernel
据我所知,保护模式将在内核中激活,在 grub 阶段它仍然是实模式。我的误解是:在实模式下,可用总内存小于 1MB,但是 grub 如何将内核甚至根文件系统(通常大于 1MB)加载到内存中?
GRUB 不必将整个内核加载到内存中。内核映像分为两部分:
引导加载程序只加载实模式内核代码,然后引导其余部分(查看go_to_protected_mode()中的arch/x86/boot/pm.c)。这就是进程如何保持在实模式下运行的内存限制内的方式。
小记:GRUB可以运行两个实模式和保护模式,这取决于它在做什么。它可能会因为某些事情(某些硬件检测和菜单显示)而切换到保护模式。但是,您认为它在击中内核时处于实模式是正确的。