QEMU編譯及使用方法

CopperDong發表於2017-09-26

QEMU是一個支援跨平臺虛擬化的虛擬機器,有user mode和system mode兩種配置方式。其中qemu在system mode配置下模擬出整個計算機,可以在qemu之上執行一個作業系統。QEMU的system mode與常見的VMware和Virtualbox等虛擬機器比較相似,但是QEMU的優勢是可以跨指令集。例如,VMware和Virtualbox之類的工具通常只能在x86計算機上虛擬出一個x86計算機,而QEMU支援在x86上虛擬出一個ARM計算機。qemu在user mode配置下,可以執行跟當前平臺指令集不同的平臺可執行程式。例如可以用qemu在x86上執行ARM的可執行程式,但是兩個平臺必須是同一種作業系統,比如Linux。

QEMU還支援很多其他的平臺,詳細列表參見這裡

QEMU中有兩個重要的名詞host和target(guest),其中host表示qemu程式本身執行的平臺,target(guest)表示qemu虛擬出的計算機平臺(system mode)或支援的可執行程式的執行平臺(user mode)。

下面描述一下編譯和使用host為x86,target(guest)為ARM的步驟

1. 下載QEMU原始碼

wget http://wiki.qemu-project.org/download/qemu-1.4.0.tar.bz2

2. 解壓、configure

tar xvf qemu-1.4.0.tar.bz2
cd qemu-1.4.0
./configure --target-list=arm-softmmu,arm-linux-user --prefix=<prefix>

其中--target-list指定需要編譯的target(guest),arm-softmmu表示要編譯system mode的QEMU,arm-linux-user表示要編譯user mode的QEMU。

如果configure提示缺少某些庫的話,按照提示安裝即可。

3. make和安裝

make && make install

編譯完成之後,得到的qemu-system-arm對應的就是system mode的虛擬機器,qemu-arm對應的就是user mode的模擬器。

4. 使用qemu-arm

使用qemu-arm的方法很簡單,只需要在原來的程式執行命令之前新增qemu-arm即可。

例如: 原來執行命令

<executable> <arg1> <arg2> ...

  使用qemu-arm執行

qemu-arm <executable> <arg1> <arg2> ...

5. 使用qemu-system-arm

使用qemu-system-arm的方法相對稍微複雜。

這裡有一個qemu-system-arm安裝使用debian教程,教程中用到的版本比較老,可以在這裡下載較新的版本,安裝原理是類似的。



轉自:http://www.cnblogs.com/richardustc/archive/2013/03/15/2961180.html

0

相關文章