用于培训嵌入式开发的x86仿真器

时间:2010-01-17 16:24:18

标签: architecture assembly embedded x86

我希望更多地了解计算机的内部工作,以增强我对嵌入式系统开发的了解。

在工作中,我从未参与过低级细节(例如,GDT,从闪存到RAM的代码加载器等),因为所有这些都已经写好了。

我现在不想购买任何其他硬件。 有没有一个模拟器,一个非常简单的操作系统,我可以玩,以掌握嵌入式programmimng的所有低级方面?是否有一个教程可以指导我设置一个非常简单的嵌入式环境(设置内存段,GDT,进入保护模式,并执行main()

4 个答案:

答案 0 :(得分:6)

x86模拟器的常见疑问是BochsQEMU

您可能还想查看James Molloy's kernel development tutorial及其链接的资源。

答案 1 :(得分:2)

对于我们的操作系统课程,我们目前正在使用名为 POTATOES 的玩具操作系统。这是非常基础的AFAIK,基于James Molloy的内核教程。你可能会看一下here

此外,我可以在OSdev.org推荐Wikidiscussion board

快乐的黑客攻击! :)

编辑:有关x86架构的一些有用信息可以在英特尔IA-32 Architectures Software Developer's manuals的第3卷中找到。第1卷具有基本体系结构,在第2卷中,您将找到x86汇编指令集的完整参考。

答案 2 :(得分:1)

在嵌入式系统开发中,模拟器具有非常特定的含义;你在谈论“模拟器”吗?但是如果你在x86上进行开发,那么当你可以使用VM时,指令集模拟器是不必要的并且是有限的。

事实上,如果你想要“一个非常简单的嵌入式环境”,你就不会选择x86。引导和配置这些复杂的设备(及其相关的芯片组和内存)并非易事。

如果您的平台是x86,那么最简单的方法是使用在真实x86上运行的虚拟机。最灵活,最强大的VM可以从VMWare免费获得,另一个免费来自Microsoft。然而,微软的Virtual PC针对运行Windows进行了优化,让Linux在其上工作可能很麻烦,更不用说一些小众RTOS了。

答案 3 :(得分:1)

使用真正的嵌入式计算机可能会更好。 Arduino的开发环境非常昂贵,你可以在金属上工作:http://www.sparkfun.com/commerce/product_info.php?products_id=9284

AVR是合理的开始,x86不是。