operating-system - 推荐一个简单的 x86 模拟器和操作系统

标签 operating-system x86 emulation i386 emscripten

作为个人学习项目,我想将现有的 x86 模拟器库移植到 JavaScript,然后在其上运行一个非常简单的操作系统。

我对该库的唯一要求是它应该用 C\C++ 编写,因为我想使用 emscripten 和 asm.js 将源文件编译为 JavaScript。该库至少应该能够解释 x86 操作码; JavaScript 的特定环境细节(内存、GUI、中断等)我可以自己实现。操作系统没有任何要求,只要足够简单,可以在模拟器上运行即可。

到目前为止,在我的研究中,Softx86似乎是最可行的解决方案,因为它似乎很容易移植到 JavaScript(它只进行 CPU 模拟)。我能找到的最简单的 16 位实模式操作系统是 MikeOS ,唯一的问题是它需要一个 386 处理器,Softx86 无法模拟,我不确定它们是否完全兼容。

我的问题是,是否有人知道模拟器-OS 的替代组合,该组合足够简单,可以移植到 JavaScript。

最佳答案

对于将来遇到此线程的任何人,我决定移植 Fake86 JavaScript,并使用 MS-DOS 作为操作系统。

你可以看到一个 现场演示 here

它运行得非常非常慢,目前只能在 Firefox 上运行,但它仍然可以工作。

你可以看到完整的源代码here

关于operating-system - 推荐一个简单的 x86 模拟器和操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16770722/

相关文章:

multithreading - 在用户级线程中阻塞

linux - 如何更改/proc/self/pagemap 文件的权限。?

python - ascii 编解码器无法在 Ubuntu/Python 中解码位置错误中的字节 0xe3,但在 OS X/Python 上则不行

assembly - 获取操作码的简单方法

assembly - MOV BX,[SI]-ASM问题

java - 在 Java 中模拟 C++ 枚举

java - Android 应用程序在模拟器上运行正常,但在真实设备上崩溃

c++ - 实现信号量、锁和条件变量

assembly - 我怎样才能将两个数字相加,每个数字有 12 个字节?

java - 在模拟器中运行 Android 应用程序时没有布局