我受到了 Fabrice Bellard在 Javascript 中实现 x86 虚拟机的启发,我想尝试编写能够运行 Linux 内核的最简单的虚拟机。这是一项纯粹的教育努力,除了理解和分享使之成为可能的代码之外没有其他目的。
浏览了x86 规范后,我怀疑我可能会因为尝试编写能够模拟完整 x86 指令集的虚拟机而陷入困境。相反,我正在寻找一种可以尝试模仿的更简单的架构。
我已经阅读了这个询问如何模拟 x86 架构的问题,答案建议从更简单的东西开始,比如 ARM 架构。我的问题更具体:我可以尝试模拟能够运行 Linux 内核的最简单的可能架构是什么?
我有兴趣完全模拟整个机器,而不是简单地将指令传回主机(例如,如果我正在编写 x86 模拟器,这将是可能的)。我有相当多的 16 位汇编知识,以及一些操作系统理论背景,所以只要有足够的工作,这应该是触手可及的。