没有仿真引导操作系统
Posted
技术标签:
【中文标题】没有仿真引导操作系统【英文标题】:no emulation booting OS 【发布时间】:2019-01-30 10:36:34 【问题描述】:我正在研究 no-emulation 引导操作系统,正如您在 no-emulation 引导中所知道的,引导映像可以是任何 (实模式)二进制可执行代码。
我为我的操作系统使用 2 阶段引导加载程序,首先我加载第一阶段 我遇到的问题是在第二阶段,当引导加载程序尝试加载操作系统映像时,它需要一个设备号 用于进行 Bios 调用的 CD/DVD 驱动器
问题是:我应该使用哪个设备号?
我尝试过0x81
(第一个 IDE 从站)和0x82
(第二个 IDE 主站)
在某些电脑上它可以在其他电脑上工作它不是
【问题讨论】:
@PeterCordes 你能提供更多细节吗 我完全不知道。但是,如果您搜索wiki.osdev.org,您应该会找到一些东西。 (或者可能是@MichaelPetch 在 SO 上的答案之一。)或者查看相关的侧边栏;标题中有“dl register and drive number”的问题。 在无仿真模式下,您的引导加载程序可以使用 INT 13H AH=4Bh, AL=1 查询引导驱动器 【参考方案1】:The El Torito (CD-ROM standard) 协议仅声明 BIOS
应模拟
CD/DVD
由任意设备号驱动。
不同的BIOS
可能会想出
不同的驱动器号。
当 BIOS 调用引导加载程序时,它也会通过
CPU DL
寄存器中的模拟驱动器号。
引导加载程序必须捕获驱动器 号码并使用它来进行 BIOS 调用。
其余部分类似于仿真启动
【讨论】:
以上是关于没有仿真引导操作系统的主要内容,如果未能解决你的问题,请参考以下文章