qemu:基于动态翻译技术的机器与用户空间虚拟化项目

qemu is a generic and open source machine emulator and virtualizer.

分支61Tags366
文件最后提交记录最后更新时间
4 年前
2 年前
3 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
4 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
10 年前
5 年前
13 年前
8 年前
3 年前
4 年前
3 年前
4 年前
3 年前
8 年前
2 年前
5 年前
2 年前
2 年前
17 年前
7 年前
4 年前
2 年前
6 年前
2 年前
2 年前
7 个月前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
2 年前
4 年前
3 年前
3 年前
2 年前
2 年前
3 年前
2 年前
2 年前
2 年前
2 年前
10 年前
2 年前
4 年前
4 年前
2 年前
2 年前
5 年前
3 年前
2 年前
2 年前
2 年前
2 年前
3 年前
2 年前
2 年前
4 年前
5 年前
5 年前
3 年前
5 年前

=========== QEMU 自述文件

QEMU 是一款通用的开源机器与用户空间仿真器及虚拟化工具。

QEMU 能够通过纯软件方式仿真完整的机器,无需任何硬件虚拟化支持。借助动态翻译技术,它可实现出色的性能。QEMU 还能与 Xen 和 KVM hypervisor 集成,在提供仿真硬件的同时,让 hypervisor 管理 CPU。在 hypervisor 的支持下,QEMU 的 CPU 性能可接近原生水平。当 QEMU 直接仿真 CPU 时,它能够在一台机器(例如 x86_64 个人计算机主板)上运行为另一台机器(例如 ARMv7 开发板)设计的操作系统。

QEMU 还能够为 Linux 和 BSD 内核接口提供用户空间 API 虚拟化。这使得针对一种架构 ABI(例如 Linux PPC64 ABI)编译的二进制文件,可以在使用不同架构 ABI(例如 Linux x86_64 ABI)的主机上运行。这一过程不涉及任何硬件仿真,仅包含 CPU 和系统调用仿真。

QEMU 旨在满足多种使用场景。用户可直接调用它,以完全控制其行为和设置。它还致力于通过提供稳定的命令行界面和监控 API,方便集成到更高级别的管理层中。在使用 oVirt、OpenStack 和 virt-manager 等开源应用程序时,通常通过 libvirt 库间接调用 QEMU。

QEMU 整体以 GNU 通用公共许可证第 2 版发布。有关完整的许可详情,请查阅 LICENSE 文件。

文档

文档可在以下在线地址获取: <https://www.qemu.org/documentation/>。当前开发版本的文档可在 <https://www.qemu.org/docs/master/> 查看,该文档由源代码树中的 docs/ 文件夹生成,并通过 Sphinx 构建。

构建

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' 来格式化邮件并将其发送至 qemu-devel@nongnu.org 邮件列表。所有提交的补丁都必须包含作者的 'Signed-off-by' 行。补丁应遵循《开发者指南》中 风格部分 规定的准则。

关于提交补丁的更多信息可通过 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 $ # 进行新提交的开发工作,并为每个提交添加 'Signed-off-by' 行 $ git publish

您的补丁系列将被发送,并标记为 my-feature-v1,以便您日后参考。

发送 v2 版本:

.. code-block:: shell

$ git checkout my-feature # 同一主题分支 $ # 对提交进行修改(例如使用 'git rebase') $ git publish

您的补丁系列将在主题中带有 'v2' 标签发送,并且 git 顶端将被标记为 my-feature-v2。

错误报告

QEMU 项目使用 GitLab issues 来跟踪错误。运行从 QEMU git 或上游发布源代码构建的代码时发现的错误,应通过以下方式报告:

  • <https://gitlab.com/qemu-project/qemu/-/issues>_

如果通过操作系统供应商提供的预构建二进制包使用 QEMU,建议首先向供应商自己的错误跟踪器报告错误。如果已知该错误也影响最新的上游代码,也可以通过 GitLab 报告。

有关错误报告的更多信息,请参考:

  • <https://wiki.qemu.org/Contribute/ReportABug>_

变更日志

有关版本历史和发布说明,请访问 <https://wiki.qemu.org/ChangeLog/>_,或查看 git 历史以获取更详细的信息。

联系方式

可以通过多种方式联系 QEMU 社区,其中两种主要方式是电子邮件和 IRC:

  • <mailto:qemu-devel@nongnu.org>_
  • <https://lists.nongnu.org/mailman/listinfo/qemu-devel>_
  • irc.oftc.net 上的 #qemu 频道

有关联系社区的其他方法的信息,可以通过 QEMU 网站在线查找:

  • <https://wiki.qemu.org/Contribute/StartHere>_

项目介绍

qemu is a generic and open source machine emulator and virtualizer.

定制我的领域