首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以虚拟化并运行Linux内核的最简单的架构

可以虚拟化并运行Linux内核的最简单的架构
EN

Stack Overflow用户
提问于 2013-02-25 20:16:23
回答 4查看 2.7K关注 0票数 26

我受到Fabrice的Javascript中的x86虚拟机实现的启发,我想尝试编写能够运行Linux内核的最简单的虚拟机。这是一项纯粹的教育工作,除了理解和分享使之成为可能的代码之外,没有别的目的。

浏览了一下x86规范之后,我怀疑我可能会试图编写一台能够模拟完整x86指令集的虚拟机,从而使自己陷入困境。相反,我正在寻找一个更简单的架构,我可以尝试模仿。

我读过这个问题,它询问如何模仿x86体系结构,答案建议从更简单的东西开始,比如ARM体系结构。我的问题更具体:,我可以尝试模仿的最简单的体系结构是什么?

我感兴趣的是完全模拟整个机器,而不是简单地将指令传递回主机(例如,如果我正在编写x86模拟器,这是可能的)。我有相当多的16位组装知识,以及一些操作系统的理论背景,所以只要有足够的工作,这应该是可以做到的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-28 19:01:00

从易于实现的角度来看,可能最简单的体系结构。由于您正在构建一个完全模拟计算机的仿真器,无论哪一个具有最简单的指令集设计/体系结构都是合适的。RISC架构无疑更好。但是,选择一个没有被广泛使用的体系结构也是不好的,如果您需要支持,很少有人能够帮助您。写模拟器可不是小菜一碟。我想说的是,无论是ARM还是MIPS,两者都很受欢迎:

  • ARM指令集
  • MIPS指令集

另外,您必须知道Fabrice的javascript虚拟机使用32位x86兼容的CPU,这是由Linux本地支持的。您必须将linux内核(使用工具链)移植到ARM或MIPS。请参阅有关如何使用linux内核的链接。

关于MIPS:

用于手臂:

  • http://www.arm.com/community/software-enablement/linux.php
  • http://www.arm.linux.org.uk/docs/kerncomp.php
票数 6
EN

Stack Overflow用户

发布于 2013-02-26 13:40:59

Linux内核支持的体系结构列表:

建筑

“最简单的可能”在某种程度上是主观的,但以下是我认为不那么复杂的问题:

  • MIPS
  • H8 (μClinux)
  • 68k/Coldfire (μClinux)
票数 4
EN

Stack Overflow用户

发布于 2013-03-05 14:11:55

正如我在评论中所说,我会在三个方面作出平衡:

  • 简单的指令集(很少的指令格式,很少的操作码:任何不像x86的东西)
  • 文件:广泛提供。这意味着有可能放弃一些简单的体系结构,将精力集中在受到广泛支持的体系结构上(例如,x86在这里获胜,但您也会发现许多关于RISC的材料,尤其是来自学术界的MIPS )。或者去找一些开放的东西,比如OpenRisc
  • 在“内核模式”中易于使用。在特权、内核模式中,有一个全新的世界需要考虑寄存器、指令和内部。不要忘记处理器也有总线,而简单的处理器可能有非常复杂的总线!你也需要效仿这一点。或者,你可以选择用户模式Linux,如果你对它满意的话。

最后,我会提出一些“旧”的建议:相当简单,特别是在特权模式下,经过充分研究和记录。例如,原始的MIPS,摩托罗拉68k家族,或接近原始RISC (RISC)的东西,如果有一个Linux变体的话!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15075678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档