【问题标题】:Can a bootloader or bootstrap program run in a 32bit protected mode?引导加载程序和引导程序可以在 32 位保护模式下运行吗?
【发布时间】:2015-01-31 16:03:27
【问题描述】:

当系统启动时,它以 16 位实模式运行,因此引导加载程序被写入 16 位模式。我们可以在 32 位模式下编写引导加载程序吗?

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 是的,如果您首先编写一个小型引导加载程序来引导您的引导加载程序(我认为)。
  • 您可以使用现有的支持多重引导的加载程序,例如grub。你也可以使用 UEFI。

标签: assembly operating-system


【解决方案1】:

当然,只需编写一个小引导加载程序,将实际引导加载程序加载到内存中的某个点,给小引导加载程序一个 GDT 并跳转到保护模式。

但我相信你现在知道了^^

【讨论】:

  • 但是切换到32位模式后,怎么访问磁盘呢? BIOS int 调用大多只在 16 位模式下工作。还是您的意思是您的“实际引导加载程序”只是一个独立程序,而不是加载更多代码?或者它应该包含 AHCI SATA、IDE、USB 存储等驱动程序?正如 cmets 中所建议的,使用 UEFI 将为您提供 32 位或 64 位代码的环境,其中仍有固件提供的存储接口。
  • 通过编写基本的 SATA 驱动程序或类似的 :) 如果有人开始编写引导加载程序,他们可能也想做真正的 fun 东西^^
  • 必须编写驱动程序意味着这不是“只需编写...”的情况,那么。 :P
猜你喜欢
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 2014-10-03
  • 2018-10-17
相关资源
最近更新 更多