
qemu v11.1.0
QEMU 官方镜像。请参阅 https://www.qemu.org/contribute/ 了解如何向 QEMU 提交更改。Pull Requests 已被禁用。请仅使用 QEMU 网站上的 release tarballs。
QEMU 自述文件
QEMU 是一个通用且开源的全机器与用户空间模拟器及虚拟化器。
QEMU 能够在不依赖硬件虚拟化支持的情况下,通过软件模拟完整机器。借助动态翻译技术,它能获得非常好的性能。QEMU 还可以与 Xen 和 KVM 虚拟机监控器集成,在提供模拟硬件的同时,让虚拟机监控器管理 CPU。借助虚拟机监控器支持,QEMU 可以在 CPU 方面达到接近原生的性能。当 QEMU 直接模拟 CPU 时,它能够在一台机器(例如 x86_64 PC 主板)上运行专为另一台机器(例如 ARMv7 开发板)设计的操作系统。
QEMU 还能够为 Linux 和 BSD 内核接口提供用户空间 API 虚拟化。这允许针对一种架构 ABI(例如 Linux PPC64 ABI)编译的二进制文件,在采用不同架构 ABI(例如 Linux x86_64 ABI)的主机上运行。这并不涉及任何硬件模拟,仅仅是 CPU 和系统调用模拟。
QEMU 的目标是适应多种使用场景。用户可以直接调用它,以获得对其行为和设置的完全控制。它还旨在通过提供稳定的命令行界面和监控 API,促进与更高级管理层的集成。在使用 oVirt、OpenStack 和 virt-manager 等开源应用程序时,通常通过 libvirt 库间接调用它。
QEMU 整体采用 GNU 通用公共许可证第二版发布。有关完整的许可细节,请查阅 LICENSE 文件。
文档
文档可以在线托管于 <https://www.qemu.org/documentation/>。当前开发版本的文档可在 <https://www.qemu.org/docs/master/> 获取,它由源码树中的 docs/ 文件夹生成,并通过 Sphinx <https://www.sphinx-doc.org/en/master/>_ 构建。
构建
QEMU 是跨平台软件,旨在所有现代 Linux 平台、OS-X、Win32(通过 Mingw64 工具链)以及各种其他 UNIX 目标上构建。构建 QEMU 的简单步骤如下:
.. code-block:: shell
mkdir build cd build ../configure make
也可以通过 QEMU 网站在线查找更多信息:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_
提交补丁
QEMU 源码采用 GIT 版本控制系统维护。
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
在提交补丁时,一种常见的方法是使用 'git format-patch' 和/或 'git send-email' 来格式化并将邮件发送到 [email protected] 邮件列表。所有提交的补丁必须包含作者的 'Signed-off-by' 行。补丁应遵循开发指南中 样式部分 <https://www.qemu.org/docs/master/devel/style.html>_ 中设定的准则。
有关提交补丁的更多信息,可以通过 QEMU 网站在线查找:
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_
QEMU 网站也采用源码控制维护。
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu-web.git
<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>_
'git-publish' 工具旨在使上述过程不那么繁琐,强烈建议用于常规贡献,或者仅仅用于发送连续的补丁系列修订版。它还需要一个可用的 'git send-email' 设置,并且默认情况下不会自动完成所有操作,因此你可能需要手动完成上述步骤一次。
对于安装说明,请访问:
<https://github.com/stefanha/git-publish>_
使用 'git-publish' 的工作流程如下:
.. code-block:: shell
$ git checkout master -b my-feature $ # work on new commits, add your 'Signed-off-by' lines to each $ git publish
你的补丁系列将被发送并标记为 my-feature-v1,以便将来需要时参考。
发送 v2:
.. code-block:: shell
$ git checkout my-feature # same topic branch $ # making changes to the commits (using 'git rebase', for example) $ git publish
你的补丁系列将在主题中包含 'v2' 标签发送,并且 git 顶端将被标记为 my-feature-v2。
报告 Bug
QEMU 项目使用 GitLab 问题跟踪器来跟踪 Bug。发现从 QEMU git 或上游发布源码构建的代码运行时出现的 Bug,应通过以下方式报告:
<https://gitlab.com/qemu-project/qemu/-/issues>_
如果通过操作系统供应商预构建的二进制软件包使用 QEMU,最好首先向供应商自己的 Bug 跟踪器报告 Bug。如果该 Bug 也已知会影响最新的上游代码,则也可以通过 GitLab 报告。
有关 Bug 报告的更多信息,请查阅:
<https://wiki.qemu.org/Contribute/ReportABug>_
更新日志
有关版本历史和发布说明,请访问 <https://wiki.qemu.org/ChangeLog/>_ 或查看 git 历史以获取更详细信息。
联系方式
可以通过多种方式联系 QEMU 社区,其中两种主要方式是电子邮件和 IRC:
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_- irc.oftc.net 上的 #qemu 频道
有关联系社区的其他方式的信息,可以通过 QEMU 网站在线查找:
<https://wiki.qemu.org/Contribute/StartHere>_