博客專欄

EEPW首頁(yè) > 博客 > qemu 簡(jiǎn)介

qemu 簡(jiǎn)介

發(fā)布人:電子禪石 時(shí)間:2020-02-18 來(lái)源:工程師 發(fā)布文章
QEMU簡(jiǎn)介

  • QEMU的英文單詞是:QuickEmulator,它是一個(gè)小巧的模擬器。還有很多模擬器,比如VMWare、Virtual Box等。

  • 但是VMWare、VirtualBox只能模擬x86、AMD64/Intel64等PC系統(tǒng);而QEMU可以模擬更多硬件:ARM、MIPS、PPC、x86、AMD64/Intel64。

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

  • 在嵌入式領(lǐng)域,很多人使用QEMU來(lái)深研Linux,比如研究文件系統(tǒng)、優(yōu)化等等。

  • QEMU有兩種模式:

用戶模式(User Mode)

  • 簡(jiǎn)單地說(shuō),一個(gè)使用arm-xxx-gcc編譯出來(lái)的程序,是給ARM板子使用的,它無(wú)法在PC機(jī)上運(yùn)行,只能放到ARM板子上去運(yùn)行。

  • 借助qemu,可以在PC機(jī)上運(yùn)行ARM程序。比如:

    $ gcc -o hello hello.c -static
    $ ./hello  // 這個(gè)hello程序是使用gcc給PC機(jī)編譯的,可以直接運(yùn)行
    Hello, world!
    $ arm-linux-gnueabihf-gcc -o hello hello.c -static // 它是給ARM板子編譯的
    $ ./hello // 所以無(wú)法在PC上運(yùn)行
    bash: ./hello: cannot execute binary file: Exec format error
    $ ./qemu-arm ./hello // 我們可以用QEMU在PC上運(yùn)行它
    Hello, world!

  • 在PC上使用qemu運(yùn)行單個(gè)ARM程序時(shí),這就是使用QEMU的用戶模式。

  • 它會(huì)把ARM指令翻譯為PC的指令去運(yùn)行。

  • 注意,你可能無(wú)法做上述實(shí)驗(yàn),因?yàn)椋?/p>

    • a) 你沒(méi)有安裝ARM交叉編譯工具鏈

    • b) 你沒(méi)有安裝QEMU

  • 你根據(jù)下章《QEMU快速使用》安裝QEMU后,就可以進(jìn)行上述實(shí)驗(yàn)了。

系統(tǒng)模式(System Mode)

  • 很多時(shí)候我們并不滿足于在PC上運(yùn)行單個(gè)ARM程序,我們想模擬出整個(gè)ARM單板:在這個(gè)模擬出來(lái)的虛擬ARM單板上,運(yùn)行Linux系統(tǒng),在其中運(yùn)行各種APP。

  • 這時(shí)候需要使用QEMU的系統(tǒng)模式。

現(xiàn)在才發(fā)現(xiàn),在qemu 上運(yùn)行rtt 是用戶模式。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


LCD顯示屏相關(guān)文章:lcd顯示屏原理


lcd相關(guān)文章:lcd原理


關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉