1.Qemu介绍

QEMU(Quick Emulator)是一个开源的虚拟化软件,它可以模拟多个硬件平台,包括处理器和外设,从而允许在一个平台上运行多个不同的操作系统。QEMU可以运行在多个主机平台上,包括Linux、Windows、macOS等。

QEMU的主要功能是模拟一个完整的计算机系统,包括处理器、内存、存储器、网络接口等,它可以将客户操作系统(例如Linux、Windows等)当作应用程序运行在主机操作系统之上,从而实现虚拟化。QEMU还支持通过二进制代码转换的方式实现虚拟化加速,例如使用KVM(Kernel-based Virtual Machine)模块加速虚拟机的运行。

QEMU可以用于多种用途,包括:

  1. 系统仿真:可以模拟不同的处理器架构(如x86、ARM等)来运行和测试操作系统和应用程序,方便开发人员进行交叉平台开发和调试。
  2. 虚拟机:可以在一个物理机上运行多个虚拟机实例,每个虚拟机可以运行不同的操作系统,实现资源的隔离和共享,提供虚拟化环境。
  3. 可移植性:QEMU可以将一个操作系统或应用程序打包成一个虚拟机镜像,这个镜像可以在不同的平台上运行,提供了一种便携式的软件分发方式。

官方源码地址:Qemu的github源码

官网地址:QEMU

qemu的文档地址:Welcome to QEMU’s documentation! — QEMU documentation

2.源码下载

在笔者下载源码的时间,目前qemu的版本已经更新到了8.0.2,我的ubuntu环境为:WSL2 ubuntu20.04.05

image-20230611160604923

安装所需编译环境:

sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libcap-ng-dev libattr1-dev libsdl2-dev device-tree-compiler bison flex gperf intltool mtd-utils libslirp-dev

源码下载与编译:

timer@DESKTOP-JI9EVEH:~$ mkdir qemu
timer@DESKTOP-JI9EVEH:~$ cd qemu/
timer@DESKTOP-JI9EVEH:~/qemu$ wget https://download.qemu.org/qemu-8.0.2.tar.xz
timer@DESKTOP-JI9EVEH:~/qemu$ tar xvJf qemu-8.0.2.tar.xz
timer@DESKTOP-JI9EVEH:~/qemu$ cd qemu-8.0.2/
timer@DESKTOP-JI9EVEH:~/qemu/qemu-8.0.2$ ./configure
timer@DESKTOP-JI9EVEH:~/qemu/qemu-8.0.2$ make -j8

编译完成后会生成一个./build目录:

timer@DESKTOP-JI9EVEH:~/qemu/qemu-8.0.2$ cd build/

安装:

#由于我之前使用package的方式在本地安装了一个qemu,因此先将其卸载
timer@DESKTOP-JI9EVEH:~$ sudo apt-get remove --auto-remove qemu-system-x86
timer@DESKTOP-JI9EVEH:~$ sudo apt-get purge --auto-remove qemu-system-x86
#卸载完成后进入build目录执行安装命令,需要sudo不然会报错
timer@DESKTOP-JI9EVEH:~/qemu/qemu-8.0.2/build$ sudo make install

测试,查看qemu版本号,

qemu-img -V

image-20230611164450596

启动qemu,这里以riscv64为例:qemu-system-riscv64

image-20230611164621585

大功告成!