【发布时间】:2015-01-31 16:03:27
【问题描述】:
当系统启动时,它以 16 位实模式运行,因此引导加载程序被写入 16 位模式。我们可以在 32 位模式下编写引导加载程序吗?
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
是的,如果您首先编写一个小型引导加载程序来引导您的引导加载程序(我认为)。
-
您可以使用现有的支持多重引导的加载程序,例如
grub。你也可以使用 UEFI。
当系统启动时,它以 16 位实模式运行,因此引导加载程序被写入 16 位模式。我们可以在 32 位模式下编写引导加载程序吗?
任何帮助将不胜感激。谢谢。
【问题讨论】:
grub。你也可以使用 UEFI。
当然,只需编写一个小引导加载程序,将实际引导加载程序加载到内存中的某个点,给小引导加载程序一个 GDT 并跳转到保护模式。
但我相信你现在知道了^^
【讨论】:
int 调用大多只在 16 位模式下工作。还是您的意思是您的“实际引导加载程序”只是一个独立程序,而不是加载更多代码?或者它应该包含 AHCI SATA、IDE、USB 存储等驱动程序?正如 cmets 中所建议的,使用 UEFI 将为您提供 32 位或 64 位代码的环境,其中仍有固件提供的存储接口。