qemu 簡介
QEMU的英文單詞是:QuickEmulator,它是一個小巧的模擬器。還有很多模擬器,比如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來深研Linux,比如研究文件系統(tǒng)、優(yōu)化等等。
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
你根據(jù)下章《QEMU快速使用》安裝QEMU后,就可以進行上述實驗了。
系統(tǒng)模式(System Mode)
很多時候我們并不滿足于在PC上運行單個ARM程序,我們想模擬出整個ARM單板:在這個模擬出來的虛擬ARM單板上,運行Linux系統(tǒng),在其中運行各種APP。
這時候需要使用QEMU的系統(tǒng)模式。
現(xiàn)在才發(fā)現(xiàn),在qemu 上運行rtt 是用戶模式。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理