新闻  |   论坛  |   博客  |   在线研讨会
qemu 简介
电子禅石 | 2020-02-18 09:27:35    阅读:20662   发布文章

QEMU简介

  • QEMU的英文单词是:QuickEmulator,它是一个小巧的模拟器。还有很多模拟器,比如VMWare、Virtual Box等。

  • 但是VMWare、VirtualBox只能模拟x86、AMD64/Intel64等PC系统;而QEMU可以模拟更多硬件:ARM、MIPS、PPC、x86、AMD64/Intel64。

  • QEMU用途广泛,比如Xen、Android模拟器等都是基于QEMU的。

  • 在嵌入式领域,很多人使用QEMU来深研Linux,比如研究文件系统、优化等等。

  • QEMU有两种模式:

用户模式(User Mode)

  • 简单地说,一个使用arm-xxx-gcc编译出来的程序,是给ARM板子使用的,它无法在PC机上运行,只能放到ARM板子上去运行。

  • 借助qemu,可以在PC机上运行ARM程序。比如:

    $ gcc -o hello hello.c -static
    $ ./hello  // 这个hello程序是使用gcc给PC机编译的,可以直接运行
    Hello, world!
    $ arm-linux-gnueabihf-gcc -o hello hello.c -static // 它是给ARM板子编译的
    $ ./hello // 所以无法在PC上运行
    bash: ./hello: cannot execute binary file: Exec format error
    $ ./qemu-arm ./hello // 我们可以用QEMU在PC上运行它
    Hello, world!

  • 在PC上使用qemu运行单个ARM程序时,这就是使用QEMU的用户模式。

  • 它会把ARM指令翻译为PC的指令去运行。

  • 注意,你可能无法做上述实验,因为:

    • a) 你没有安装ARM交叉编译工具链

    • b) 你没有安装QEMU

  • 你根据下章《QEMU快速使用》安装QEMU后,就可以进行上述实验了。

系统模式(System Mode)

  • 很多时候我们并不满足于在PC上运行单个ARM程序,我们想模拟出整个ARM单板:在这个模拟出来的虚拟ARM单板上,运行Linux系统,在其中运行各种APP。

  • 这时候需要使用QEMU的系统模式。

现在才发现,在qemu 上运行rtt 是用户模式。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客