本文由 AI 翻译(ChatGPT-4)完成,并由作者进行人工校对。如有任何问题或建议,欢迎联系我。联系方式:jelin-sh@outlook.com。
原文:Supported build platforms — QEMU documentation
QEMU 旨在支持在多个主机操作系统平台上构建和运行。本附录概述了主要的构建目标平台。这些平台决定了 QEMU 所依赖的第三方软件的最低要求版本。支持的平台是 QEMU 项目在提交补丁进行审查时执行自动化测试的目标,并在合并前后进行测试。
如果某个平台没有在这里列出,这并不意味着 QEMU 无法在该平台上运行。如果未列出的平台的软件版本与列出平台的相当,那么预期它是可以运行的。欢迎报告在未列出平台上遇到的问题,除非它们的软件版本明显比这里描述的更旧。
请注意,在考虑支持的发行版提供的软件版本时,QEMU 只考虑版本号,并假定该发行版中的功能与具有相同版本的上游发布相匹配。换句话说,如果发行版将额外功能移植到其软件中,QEMU 上游代码不会为这些移植添加显式支持,除非这些功能以一种对上游发布也适用的方式进行自动检测。
Repology 网站是一个有用的资源,可以识别各种操作系统中当前已发布的软件版本,尽管它并未涵盖下面列出的所有发行版。
支持的主机架构
这些主机架构得到官方支持,并配备了各种加速器:
CPU 架构 | 加速器 |
---|---|
Arm | KVM(仅限 64 位),TCG,Xen |
MIPS(仅支持小端) | KVM,TCG |
PPC | KVM,TCG |
RISC-V | KVM,TCG |
s390x | KVM,TCG |
SPARC | TCG |
x86 | HVF(仅限 64 位),KVM,NVMM,TCG,WHPX(仅限 64 位),Xen |
其他主机架构不受支持。可以使用 --enable-tcg-interpreter
选项在不受支持的主机架构上构建 QEMU 系统仿真,以启用 TCI 支持,但请注意这会非常慢,不建议正常使用。QEMU 用户模式仿真需要主机特定的信号处理支持,因此在不受支持的主机架构上不会有 TCI 的帮助。
不支持的架构可能会在弃用过程后被移除。
Linux 操作系统,macOS,FreeBSD,NetBSD,OpenBSD
该项目旨在在初始发布后的五年内始终支持最新的主要版本。在发布新的主要版本后的两年内,将停止支持先前的主要版本,或者在供应商自身停止支持时停止支持,以先到者为准。在这种情况下,不考虑第三方努力延长发行版寿命,即使它们得到供应商的认可(例如 Debian LTS);包含从后续版本中回溯的软件包的存储库也是如此(例如 Debian backports)。在每个主要版本中,只考虑最新的次要版本。
为了确定在 Linux 上可用的支持软件版本,该项目将查看 CentOS、Debian、Fedora、openSUSE、RHEL、SLES 和 Ubuntu LTS。其他发行版将被假定为提供类似的软件版本。
对于 FreeBSD 和 OpenBSD,决策将基于各自端口存储库的内容,而 NetBSD 将使用 pkgsrc 存储库。
对于 macOS,将使用 Homebrew,尽管预计 MacPorts 将携带类似版本。
一些构建依赖可能遵循较不保守的规则:
- Python 运行时:长期支持的发行版通常提供多个版本的 Python 运行时。QEMU 最初将支持发行版的默认运行时,但随后可能将最低版本提高到供应商提供的更新的 Python 版本。在这种情况下,将需要使用
configure
脚本的--python
命令行选项将 QEMU 指向支持的 Python 运行时版本。截至 QEMU 9.0.50 版本,支持的最低 Python 版本为 3.7。 - Python 构建依赖:QEMU 的一些构建依赖项是用 Python 编写的。通常,这些依赖项只有默认 Python 运行时的发行版才会打包。如果 QEMU 提高了其最低 Python 版本,并且需要非默认运行时,则可能需要通过 pip 从 Python 软件包索引(PyPI)获取这些 Python 模块,以构建 QEMU。
- 可选构建依赖:一些构建组件的缺失不会影响 QEMU 的构建能力。这些组件可能在发行版中不可用,或者对 QEMU 的要求过旧。例如,Avocado 测试框架或各种 linter 都是用 Python 编写的,可以使用 pip 安装。另一个例子是交叉编译器;在这种情况下,可以从 EPEL 等存储库中下载它们,使用 Docker 或 Podman 进行基于容器的交叉编译,或者使用与 QEMU 一起分发的预构建二进制文件。
Windows
该项目旨在支持供应商仍在支持的最新两个 Windows 版本。当前最低支持的 Windows API 是“Windows 8”,因此理论上 QEMU 二进制文件仍然可以在旧版本的 Windows 上运行。然而,这些旧版本的 Windows 不再进行测试,因此建议改用最新的 Windows 版本。
该项目支持使用当前版本的 MinGW 工具链在 Linux(Debian/Fedora)上构建 QEMU,或者在 Windows 上通过 MSYS2 构建。始终推荐使用较新的 Windows 版本,因为这样更不容易在通过 MSYS2 构建时出现问题。QEMU 的构建过程涉及一些调用 os.symlink()
的 Python 脚本,需要特别注意构建过程才能成功完成。在较新的 Windows 10 版本中,如果启用了开发人员模式,非特权帐户可以创建符号链接。如果无法使用或启用开发人员模式,则需要 SeCreateSymbolicLinkPrivilege 特权,或者进程必须以管理员身份运行。
仅支持 64 位 Windows。
© Copyright 2024, The QEMU Project Developers. This documentation is for QEMU version 9.0.50.