【发布时间】:2012-05-08 09:44:17
【问题描述】:
据说bios程序只能在实模式下才能看到,也知道bios是存储在ROM中的,但是CPU映射的通常是RAM,是不是说在实模式下,内存的一些空间是映射到ROM,所以我们可以看到bios程序。
【问题讨论】:
标签: operating-system x86 kernel bios
据说bios程序只能在实模式下才能看到,也知道bios是存储在ROM中的,但是CPU映射的通常是RAM,是不是说在实模式下,内存的一些空间是映射到ROM,所以我们可以看到bios程序。
【问题讨论】:
标签: operating-system x86 kernel bios
物理地址空间不仅仅是 RAM。它包含 ROM 和内存映射设备,例如 APIC 和视频内存。您不能在实模式之外使用 BIOS 的主要原因是它被编写为在实模式下使用。有些函数可能在 16 位保护模式下工作,更多的函数可以在虚拟 8086 模式下工作,但尝试调用错误的函数可能会导致系统崩溃。此外,中断在保护模式与实模式下的工作方式不同,因此您必须重新映射函数。
BIOS 在实模式之外不可用的另一个原因是分页。分页是将虚拟地址映射到物理地址的过程。如果操作系统使用分页,它可以选择根本不将包含 ROM 的页面映射到虚拟内存中,因此它们实际上不存在,因此无法调用。 ROM 仍然占用一些物理地址空间,但无法通过虚拟内存获得。
【讨论】: