Qemu:修订间差异
跳转到导航
跳转到搜索
(未显示同一用户的17个中间版本) | |||
第12行: | 第12行: | ||
Qemu主要有以下功能: | Qemu主要有以下功能: | ||
* | * 机器模拟器:可在任意受支持的架构的机器上运行操作系统。模拟器的优点时要求的支持较少,缺点是效率低。 | ||
* 用户模式模拟:可在Linux/BSD上运行其它架构上的Linux/ | * 用户模式模拟:可在Linux/BSD上运行其它架构上的Linux/BSD用户程序。如在x86_64的Linux上运行arm的Linux程序。不支持windows。通常可用来测试应用程序。 | ||
* 虚拟机:可运行KVM/ | * 虚拟机:可运行KVM/XEN虚拟机。可获得接近原生机器的效率(即宿主机的效率)。 | ||
== Win32版Qemu == | |||
=== 安装 === | |||
* 可安装MSYS2并使用其中的qemu软件包。 | |||
* 从<nowiki/>https://qemu.weilnetz.de/<nowiki/>下载安装程序并安装。 | |||
=== 加速 === | |||
默认情况下Qemu未启用任何加速,纯粹以模拟器方式运行,效率较低。在部分架构上可启用加速提高效率。 | |||
==== HAXM ==== | |||
Intel CPU的加速驱动。源代码:https://github.com/intel/haxm | |||
通过在Qemu的命令中添加<code>-accel hax</code>启用haxm,启用条件: | |||
* 在BIOS/UEFI中启用VT-X | |||
* 安装HAXM | |||
* 关闭Hyper-V | |||
==== WHPX ==== | |||
Windows的Hyper-V虚拟机管理平台,通过在Qemu的命令中添加<code>-accel whpx</code>启用WHPX,启用条件: | |||
* 支持并启用Hyper-V | |||
* 启用HypervisorPlatform(<code>Dism /Online /Enable-Feature:HypervisorPlatform</code> ) | |||
注意:64位windows应当使用64位Qemu,32位windows应当使用32位Qemu。 | |||
== Virtio == | |||
Virtio是一种虚拟化标准,通常用于磁盘与网络设备,对于Qemu而言,还包括但不限于以下设备: | |||
* GPU:用于显示。 | |||
* 鼠标 | |||
* 键盘 | |||
*串口 | |||
对于客户机而言,virtio提供了一组通用的虚拟设备,与实际物理硬件无关,这样可以方便设计在各种架构的驱动。 | |||
对于宿主机而言,可通过virtio的接口提供各种资源(如磁盘、文件共享、网络),具体实现根据宿主机的环境不同而不同。 | |||
使用virtio可测试绝大多用户程序而不需要了解具体的特定硬件,只在Qemu测试CPU指令集而不关心具体物理硬件的实现。 | |||
====9p文件系统==== | |||
使用9p文件系统+Virtio可用作宿主机到客户机(虚拟机内部)的文件共享,即实现宿主机与客户机(虚拟机内部)相互文件传输。 | |||
对于[[Linux]]而言,可使用9p文件系统将宿主机某个目录挂载到客户机(虚拟机内部)某个目录上,也可将其挂载为根文件系统。 | |||
参考链接: | |||
* https://wiki.qemu.org/Documentation/9psetup | |||
* https://wiki.qemu.org/Documentation/9p_root_fs | |||
==== 技术文档 ==== | |||
[[文件:Virtio-v1.2-cs01.pdf|居中|缩略图]] | |||
==== 参考资料 ==== | |||
* https://wiki.libvirt.org/Virtio.html | |||
* https://docs.oasis-open.org/virtio/virtio/v1.2/virtio-v1.2.html | |||
* https://www.linux-kvm.org/page/Virtio | |||
== 官方资料 == | == 官方资料 == | ||
网站:https://www.qemu.org/ | 网站:https://www.qemu.org/ | ||
== 相关资料 == | |||
* [[Box86]]:在非x86(x86_64)小端模式架构上运行x86(x86_64) Linux用户模式程序。 | |||
*[https://virt-manager.org/ virt-manager]:通过[https://libvirt.org/ libvirt]管理虚拟机的桌面界面。主要管理KVM虚拟机,也可管理XEN虚拟机、[https://linuxcontainers.org/lxc/ LXC](Linux容器)。 |
2023年8月31日 (四) 08:59的最新版本
源代码
主要
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软件包。
- 从https://qemu.weilnetz.de/下载安装程序并安装。
加速
默认情况下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文件系统将宿主机某个目录挂载到客户机(虚拟机内部)某个目录上,也可将其挂载为根文件系统。
参考链接:
技术文档
参考资料
- https://wiki.libvirt.org/Virtio.html
- https://docs.oasis-open.org/virtio/virtio/v1.2/virtio-v1.2.html
- https://www.linux-kvm.org/page/Virtio
官方资料
相关资料
- Box86:在非x86(x86_64)小端模式架构上运行x86(x86_64) Linux用户模式程序。
- virt-manager:通过libvirt管理虚拟机的桌面界面。主要管理KVM虚拟机,也可管理XEN虚拟机、LXC(Linux容器)。