没有模拟启动 OS

no emulation booting OS

我正在研究 no-emulation 引导 OS ,正如你在 no-emulation 引导中所知道的,引导映像可以是任何 (实模式)二进制可执行代码。

我为我的 os 使用 2 阶段引导加载程序,首先我加载第一阶段 我遇到的问题是在第二阶段,当引导加载程序尝试加载 OS 图像时,它需要一个设备号 CD/DVD 驱动器进行 BIOS 调用

问题是:我应该使用哪个设备号?

我试过0x81(第一个IDE奴隶)和0x82(第二个IDE主人) 在某些电脑上它可以在其他电脑上工作但不能

The El Torito (CD-ROM standard) 协议仅声明 BIOS 应模拟 CD/DVD由任意设备号驱动。

不同的BIOS可能想出 不同的驱动器编号。

当 BIOS 调用引导加载程序时,它还会通过 CPU 的 DL 寄存器中的模拟驱动器编号 .

引导加载程序必须捕获驱动器 编号并使用它进行 BIOS 调用。

其余部分与仿真启动类似