【问题标题】:x86 emulator for training embedded development用于培训嵌入式开发的 x86 模拟器
【发布时间】:2023-04-09 19:59:01
【问题描述】:

我想进一步了解计算机的内部工作原理,以增强我对嵌入式系统开发的了解。

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

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

【问题讨论】:

    标签: architecture assembly embedded x86


    【解决方案1】:

    x86 模拟器的常见嫌疑人是BochsQEMU

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

    【讨论】:

    • BOCHS自带的调试器不错,懂分段。 bochs.sourceforge.io/doc/docbook/user/internal-debugger.html(GDB 不会,即使在远程调试在实模式下运行的 QEMU 客户机时,它也不适用于在切换到保护模式之前和期间调试代码)。 BOCHS 的调试器还可以执行解析 GDT 和页表之类的操作,以确保您设置了您想要的内容,并告诉您为什么您会出现双重或三重错误。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      在嵌入式系统开发中emulator有很具体的含义;您实际上是在谈论“模拟器”吗?但是,如果您在 x86 上进行开发,那么指令集模拟器是不必要的,并且在您可以使用 VM 时受到限制。

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

      如果您的平台是 x86,那么最简单的做法是使用在真正 x86 上运行的虚拟机。 VMWare 免费提供最灵活、最强大的 VM,Microsoft 提供了另一个免费的 VM。然而,微软的 Virtual PC 已针对运行 Windows 进行了优化,让 Linux 在其上运行可能会很麻烦,更不用说一些利基 RTOS。

      【讨论】:

      • 我说的确实是一个完整的虚拟机,比如 virtualbox/Qemu/Bochs/VMware 等。我只是觉得有一些更适合嵌入式系统的东西。
      • 当然,x86 很复杂,这就是为什么我想学习它所有有趣的特性(段、分页保护模式,哦,我的……)
      • 如果您有预算,也许真正的硬件可能更合适 - 例如工业 PC 卡,低端 PC/104 规格板不需要很贵。
      【解决方案4】:

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

      AVR 是进入该领域的合理起点,x86 不是。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多