DOS 应该仍然能够启动现代 PC,但可能无法使用大多数硬件(由于缺乏驱动程序或“操作系统”的固有限制)。
如果你想完全模拟一台能够运行 MS-DOS(或克隆)的 PC,我认为你必须:
解码和解释操作码
模拟内存控制器
模拟 BIOS 和 VGA BIOS
实现所需的 BIOS 系统调用
免责声明:我没有不写模拟器。
To know what is required from your emulator to run DOS, I think the best place would be to turn to the FreeDOS project that has reimplemented a DOS clone. By studying the source, you should be able to come up with a list of requirements.
Concerning the opcode, you can consult X86 Opcode and Instruction Reference, or the Intel documentation. You should also consider using the recent processor capabilities for virtualization.
DOS should still be able to boot a modern PC, but would probably be unable to use most of the hardware (due to lack of drivers, or to inherent limitation of the "OS").
If you want to emulate completely a PC to be able to run MS-DOS (or a clone), I think you'll have to:
发布评论
评论(2)
要了解运行 DOS 的模拟器需要什么,我认为最好的地方是转向 FreeDOS 项目重新实现了 DOS 克隆。通过研究源代码,您应该能够列出需求列表。
关于操作码,可以参考X86操作码和指令参考 ,或英特尔文档。您还应该考虑使用最新的处理器功能进行虚拟化。
DOS 应该仍然能够启动现代 PC,但可能无法使用大多数硬件(由于缺乏驱动程序或“操作系统”的固有限制)。
如果你想完全模拟一台能够运行 MS-DOS(或克隆)的 PC,我认为你必须:
免责声明:我没有不写模拟器。
To know what is required from your emulator to run DOS, I think the best place would be to turn to the FreeDOS project that has reimplemented a DOS clone. By studying the source, you should be able to come up with a list of requirements.
Concerning the opcode, you can consult X86 Opcode and Instruction Reference, or the Intel documentation. You should also consider using the recent processor capabilities for virtualization.
DOS should still be able to boot a modern PC, but would probably be unable to use most of the hardware (due to lack of drivers, or to inherent limitation of the "OS").
If you want to emulate completely a PC to be able to run MS-DOS (or a clone), I think you'll have to:
Disclaimer: I didn't write an emulator.
由于 MSDOS 是纯 16 位代码,因此它本身无法在 64 位处理器上运行。
Since MSDOS is pure 16 bit code it can not run on a 64 bit processor natively.