据说bios程序只能在实模式下看到,也知道bios存储在ROM中,但CPU通常映射的是RAM,它是指实模式,内存的某些空间是映射到ROM,所以我们可以看到bios程序。
答案 0 :(得分:4)
物理地址空间不仅仅是RAM。它包含ROM和内存映射设备,如APIC和视频内存。您无法在实模式之外使用BIOS的主要原因是它被编写为在实模式下使用。某些功能可能在16位保护模式下工作,而更多功能可在虚拟8086模式下工作,但尝试调用错误的功能可能会导致系统崩溃。此外,中断在保护模式下的工作方式与实模式不同,因此您必须重新映射这些功能。
BIOS在实模式之外可用的另一个原因是分页。分页是将虚拟地址映射到物理地址的过程。如果操作系统使用分页,它可以选择不将包含ROM的页面映射到虚拟内存中,因此它们实际上不会存在,因此无法调用。 ROM仍占用一些物理地址空间,但通过虚拟内存不可用。