据说bios程序只能在实模式下才能看到,也知道bios是存放在ROM中的,但是CPU映射的通常是RAM,是不是说在实模式下,内存的一部分空间被映射到了ROM ,这样我们就可以看到bios程序了。
最佳答案
物理地址空间不仅仅是 RAM。它包含 ROM 和内存映射设备,例如 APIC 和视频内存。不能在实模式之外使用 BIOS 的主要原因是它是为在实模式下使用而编写的。一些函数可能在 16 位保护模式下工作,更多的将在虚拟 8086 模式下工作,但尝试调用错误的函数可能会导致系统崩溃。此外,中断在保护模式下与实模式下的工作方式不同,因此您必须重新映射函数。
BIOS 在实模式之外不可用的另一个原因是分页。分页是将虚拟地址映射到物理地址的过程。如果操作系统使用分页,它可以选择根本不将包含 ROM 的页面映射到虚拟内存中,因此它们实际上不存在,因此无法调用。 ROM 仍然占用一些物理地址空间,但不能通过虚拟内存使用。
关于operating-system - bios和实模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354088/