没有仿真引导操作系统

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 调用。

其余部分类似于仿真启动

【讨论】:

以上是关于没有仿真引导操作系统的主要内容,如果未能解决你的问题,请参考以下文章

实验1后篇——引导linux与uboot命令仿真

仿真器进程系统没有响应

modelsim有啥优点?为啥要用它仿真?

大神们,快帮我看看EFI系统分区怎么没有了

USB 硬盘仿真导致磁盘读取失败(BIOS int 13)?

win7下安装centos后没有引导项进入centos系统