我受到Fabrice的Javascript中的x86虚拟机实现的启发,我想尝试编写能够运行Linux内核的最简单的虚拟机。这是一项纯粹的教育工作,除了理解和分享使之成为可能的代码之外,没有别的目的。
浏览了一下x86规范之后,我怀疑我可能会试图编写一台能够模拟完整x86指令集的虚拟机,从而使自己陷入困境。相反,我正在寻找一个更简单的架构,我可以尝试模仿。
我读过这个问题,它询问如何模仿x86体系结构,答案建议从更简单的东西开始,比如ARM体系结构。我的问题更具体:,我可以尝试模仿的最简单的体系结构是什么?
我感兴趣的是完全模拟整个机器,而不是简单地将指令传递回主机(例如,如果我正在编写x86模拟器,这是可能的)。我有相当多的16位组装知识,以及一些操作系统的理论背景,所以只要有足够的工作,这应该是可以做到的。
发布于 2013-02-28 19:01:00
从易于实现的角度来看,可能最简单的体系结构。由于您正在构建一个完全模拟计算机的仿真器,无论哪一个具有最简单的指令集设计/体系结构都是合适的。RISC架构无疑更好。但是,选择一个没有被广泛使用的体系结构也是不好的,如果您需要支持,很少有人能够帮助您。写模拟器可不是小菜一碟。我想说的是,无论是ARM还是MIPS,两者都很受欢迎:
另外,您必须知道Fabrice的javascript虚拟机使用32位x86兼容的CPU,这是由Linux本地支持的。您必须将linux内核(使用工具链)移植到ARM或MIPS。请参阅有关如何使用linux内核的链接。
关于MIPS:
用于手臂:
发布于 2013-02-26 13:40:59
Linux内核支持的体系结构列表:
建筑
“最简单的可能”在某种程度上是主观的,但以下是我认为不那么复杂的问题:
发布于 2013-03-05 14:11:55
正如我在评论中所说,我会在三个方面作出平衡:
最后,我会提出一些“旧”的建议:相当简单,特别是在特权模式下,经过充分研究和记录。例如,原始的MIPS,摩托罗拉68k家族,或接近原始RISC (RISC)的东西,如果有一个Linux变体的话!
https://stackoverflow.com/questions/15075678
复制相似问题