Qemu

来自资料库(何亚红)
跳转到导航 跳转到搜索

源代码

主要

https://gitlab.com/qemu-project/qemu

备用

https://github.com/qemu/qemu.git

说明

开源模拟器与虚拟机。

Qemu主要有以下功能:

  • 机器模拟器:可在任意受支持的架构的机器上运行操作系统。模拟器的优点时要求的支持较少,缺点是效率低。
  • 用户模式模拟:可在Linux/BSD上运行其它架构上的Linux/BSD用户程序。如在x86_64的Linux上运行arm的Linux程序。不支持windows。通常可用来测试应用程序。
  • 虚拟机:可运行KVM/XEN虚拟机。可获得接近原生机器的效率(即宿主机的效率)。

Win32版Qemu

安装

  • 可安装MSYS2并使用其中的qemu软件包。

加速

默认情况下Qemu未启用任何加速,纯粹以模拟器方式运行,效率较低。在部分架构上可启用加速提高效率。

HAXM

Intel CPU的加速驱动。源代码:https://github.com/intel/haxm

通过在Qemu的命令中添加-accel hax启用haxm,启用条件:

  • 在BIOS/UEFI中启用VT-X
  • 安装HAXM
  • 关闭Hyper-V

WHPX

Windows的Hyper-V虚拟机管理平台,通过在Qemu的命令中添加-accel whpx启用WHPX,启用条件:

  • 支持并启用Hyper-V
  • 启用HypervisorPlatform(Dism /Online /Enable-Feature:HypervisorPlatform

注意:64位windows应当使用64位Qemu,32位windows应当使用32位Qemu。

Virtio

Virtio是一种虚拟化标准,通常用于磁盘与网络设备,对于Qemu而言,还包括但不限于以下设备:

  • GPU:用于显示。
  • 鼠标
  • 键盘
  • 串口

对于客户机而言,virtio提供了一组通用的虚拟设备,与实际物理硬件无关,这样可以方便设计在各种架构的驱动。

对于宿主机而言,可通过virtio的接口提供各种资源(如磁盘、文件共享、网络),具体实现根据宿主机的环境不同而不同。

使用virtio可测试绝大多用户程序而不需要了解具体的特定硬件,只在Qemu测试CPU指令集而不关心具体物理硬件的实现。

9p文件系统

使用9p文件系统+Virtio可用作宿主机到客户机(虚拟机内部)的文件共享,即实现宿主机与客户机(虚拟机内部)相互文件传输。

对于Linux而言,可使用9p文件系统将宿主机某个目录挂载到客户机(虚拟机内部)某个目录上,也可将其挂载为根文件系统。

参考链接:

技术文档

文件:Virtio-v1.2-cs01.pdf

参考资料

官方资料

网站:https://www.qemu.org/

相关资料

  • Box86:在非x86(x86_64)小端模式架构上运行x86(x86_64) Linux用户模式程序。
  • virt-manager:通过libvirt管理虚拟机的桌面界面。主要管理KVM虚拟机,也可管理XEN虚拟机、LXC(Linux容器)。