标题:
使用 QEMU 进行跨平台开发(1)简介
[打印本页]
作者:
look_w
时间:
2018-6-13 13:48
标题:
使用 QEMU 进行跨平台开发(1)简介
虚拟化的一个优势就是扩展了计算硬件的功能,可允许一台计算机(
主机
)通过运行多个
客户
操作系统实现多个角色。然而当今很多流行的虚拟化工具在体系结构上还有所限制 — 只允许在同一架构下运行多个操作系统,如在单一的 x86-64 计算机上运行多 x86-64 操作系统。这种功能 QEMU 也能实现,但它还能以跨平台方式运行操作系统。这项功能能够在不增加计算机的条件下测试程序的平台相关特性!
要使用 QEMU 进行跨平台开发,首先必须安装好 QEMU,然后安装客户操作系统。可能需要跳过一些额外步骤进行跨平台开发。当模拟器安装运行后,您可以访问一些能帮助管理跨平台开发的 QEMU 特性,例如允许文件在模拟器和主机之间传输或共享。
安装 QEMU通过安装包的方式安装 QEMU 会很容易,但如果您打算将该程序用于跨平台软件开发,应该再深入研究一些。例如,应该懂得 QEMU 安装选项,以及必要支持文件如固件的安装。还应懂得系统模拟与用户空间模拟的区别,因为二者都需安装各自的附加软件。
获取 QEMU 安装包和支持软件对于大多数 Linux 软件包,您都能以下列两种方式安装 QEMU:使用安装包方式或从源代码编译软件。使用如下命令 apt-get install qemu(在 Debian 或 Ubuntu 上)、yum install qemu(在 Red Hat 或 Fedora 上) 或 emerge qemu(在 Gentoo 上)在通用的发行包上安装(可从发行包说明文档中获得详细信息)。
随发行包提供的 QEMU 安装包运行良好,但似乎落后于最新的版本,而且可能未提供一些重要文件,如用于非 x86 系统的固件。因此,可以从源代码安装软件,这可以从 QEMU 网站获得(参见 部分的链接)。在根目录输入 ./configure--help 将出现一个配置选项列表,可以根据需要定制 QEMU。然后,使用常见的 make 和 make install 命令编译并安装软件。
撰写此文时,QEMU 的稳定版本是 0.11.1,但 0.12 候选版本也已经可用。我使用 0.11.1 版本作为本文参考。
如果您正使用 QEMU 在 x86 或 x86-64 计算机上进行同样模拟,您也许会对 KQEMU 感兴趣。这是一个 Linux 内核模块,它能提供加速的 CPU 虚拟化,与 Xen 或 Kernel-based Virtual Machine (KVM) 提供的一样。KQEMU 却不是标准 Linux 内核的一部分;必须从 QEMU 网站下载或从单独的安装包安装。要注意 QEMU 与 KQEMU 版本匹配;KQEMU 1.3 用于 QEMU 0.9.1 及更早版本,KQEMU 1.4 用于QEMU 的更新的版本。
QEMU 主站点包含若干现成的 QEMU 磁盘镜像文件。其中包含不同平台如 FreeBSD 和 FreeDOS 的基本的 Linux 安装程序。可以下载这些文件测试基本安装。当系统运行后,既可以扩展原有系统,又可以重新安装一个新的系统。
随 QEMU 安装包发放的有用于 x86、x86-64、PowerPC、SPARC 32 和 SPARC 64 平台的固件,以及用于模拟视频卡、 Preboot Execution Environment (PXE) 启动和其他选项的单独的固件文件。查看主安装包的 pc-bios 子目录,或已安装系统的 /usr/share/qemu 获取相关文件。
有时候随 QEMU 提供的固件并不合适。例如,用于 x86 和 x86-64 系统的固件是传统的基本输入输出系统(BIOS)。如果您想测试或开发那些依赖较新的 Extensible Firmware Interface (EFI) 或更高级固件的软件,可能需要到别处寻找。QEMU 网站提供 EFI 镜像,因此这种特殊条件能够满足。其他情况可能更困难。如果想要运行特定类型的固件,可能需要用相关的关键词上网搜索。
系统与用户空间模拟QEMU 提供两种模拟模式。第一种,系统模拟,安装完全的虚拟机。运行在该系统的软件看到的计算机与主机系统完全不同 — 例如,可以在实际的 x86-64 openSUSE 计算机上运行 PowerPC Debian 系统。用户模式模拟没有这么完整。这种方式下,QEMU 模拟库会用于每个二进制文件,他们将主计算机看成自己的,因此 PowerPC 二进制文件能看到主机 x86-64 openSUSE 系统的 /etc 目录和其他配置文件。用户模式模拟能简化对本地资源、网络等的访问。
每个模拟方式都有其安装要求。对于系统模拟,安装客户操作系统就像安装一台单独的计算机(下载并使用预先配置的磁盘镜像是一个替代方法)。对于用户空间模拟,不需要安装整个系统,但要考虑安装使用软件所需的支持库。也许还需要配置跨编译器以生成想要测试的二进制文件。
由于本文重点是使用 QEMU 开发测试跨平台软件,可能会包含少量的硬件交互,我重点介绍系统模拟。如果用户空间模拟更满足您的需要,您可以深入研究。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0