MacOS

UTM:具有一些独特额外功能的 Apple 虚拟机管理程序

UTM:具有一些独特额外功能的 Apple 虚拟机管理程序

FRIDAY FOSS FEST UTM 是一款适用于 Mac 和 Apple fondlelabs 的便捷虚拟机管理程序,但它的用途远不止于此。它有一些非常特殊的技能。

UTM 是适用于 Apple 套件的桌面虚拟机管理程序 – 特别适用于运行 macOS 11 或更高版本的 Mac,但它也支持一些 iOS 设备。 (遗憾的是,Reg FOSS 桌面没有足够新的或强大的功能来尝试这一点。)它支持 x86-64 和基于 Apple Silicon 的 Mac,但它比大多数其他虚拟机管理程序可以做更多的事情。从其 Github 页面上对 Alan Turing 的引用来看,我们认为该名称代表通用图灵机。

除此之外,UTM 可以充当 Apple 内置虚拟机管理程序的前端,这是 macOS 10.10 或更高版本中的一项功能,简称为虚拟机管理程序。就其本身而言,Apple 虚拟机管理程序提供了一些有用的功能:例如,它使 Linux VM 能够调用 Rosetta 2 以实现非常快速的 x86-64 到 Arm64 转换。然而,UTM 也支持其他形式的虚拟化。

当然,Mac 上已经有多种桌面虚拟机管理程序可供选择:VMware Fusion、Parallels Desktop,当然还有跨平台 VirtualBox。大多数也有适用于 Apple Silicon Mac 的本机版本 – 但与任何标准虚拟机管理程序一样,它们所做的是运行与底层主机相同 CPU 类型的虚拟机。例如,Parallels 的知识库仔细地解释说,它只能在 Apple Silicon Mac 上运行 Windows for Arm。

这是虚拟机管理程序的标准行为:它们虚拟化底层硬件,因此虚拟机获得与主机相同类型的 CPU。因此,如果您在 x86-64 上运行 x86-64 虚拟机管理程序,则它只能运行 x86-64 虚拟系统,而如果您在 Arm 上运行 Arm 虚拟机管理程序,则它只能运行 Arm 虚拟系统。

这就是UTM的不同之处。除了 Apple hypervisor 之外,它还支持法国低级编程 überboffin Fabrice Bellard 的开源 QEMU。

QEMU 是一种不寻常且复杂的工具,能够以多种不同的方式进行操作,这意味着它经常被误解。 QEMU 能够充当全系统仿真器,在完全不同的 CPU 上运行一个 CPU 系列的软件。为此,它提供了用于创建和管理模拟硬盘驱动器、显卡和网卡等的工具:模拟系统运行所需的所有虚拟硬件。

然而,令人困惑的是,自 2007 年的 2.6.20 版本以来,Linux 内核就有了自己的内置 KVM 虚拟机管理程序,而该管理程序又使用所有现代 Intel 和 AMD 芯片中的硬件虚拟化设施,如 Reg FOSS早在 2011 年,Desk 就详细介绍了这一点。但 KVM 所能做的就是与 CPU 的内置设施进行对话,以启动和停止虚拟化实例。 KVM 本身无法定义虚拟磁盘驱动器、图形适配器等。

这就是 QEMU 的用武之地。它在大多数 Linux 发行版中广泛使用,以提供补充的前端支架:为虚拟机创建、提供和管理所有附加硬件。本质上,Linux 内核提供 CPU,QEMU 完成其余工作。在此模式下,QEMU 根本不进行处理器模拟:操作系统提供这种模拟,这意味着来宾代码在真正的底层 CPU 上以接近本机速度运行。不太为人所知的是,它可以在 macOS 上执行相同的操作。

这就是对QEMU的误解的由来。在提供相关功能的内核和 CPU 的帮助下,它既可以用作全系统模拟器,也可以用作 2 类虚拟机管理程序。

UTM 在两个不同的虚拟机管理程序周围封装了一个友好的 GUI,其中一个能够在两种不同的模式下运行。它可以直接使用 Apple 虚拟机管理程序,虚拟化您的底层 Intel 或 Apple Silicon CPU,但除此之外,它还可以使用 QEMU,既可以作为本机速度虚拟化的虚拟机管理程序,也可以在仿真模式下使用。

这意味着 UTM 可以在 Apple Silicon 上运行 x86 虚拟系统,也可以在 Intel Mac 上运行 Arm64 虚拟系统。而且它不仅限于 Arm 和 x86:它还可以在 Intel 和 Arm64 Mac 上运行 PowerPC 或 SPARC VM。

为了测试这一点,我们从 MacOS9Lives 下载了 MacOS 9.2.2 通用安装 ISO 文件,选择了 PowerPC VM,几分钟后,我们对在 macOS Ventura 下运行 Classic 印象深刻。我们还在 Core i7 iMac 上安装了 Arm64 版本的 Debian 12。

如果您不想配置自己的虚拟机,UTM 提供了一系列预构建的来宾映像,并且在测试中,我们已在 M1 和 Core i7 Mac 上成功运行了 PowerPC 原生经典 MacOS 9.2.1。我们还在两台机器上运行了 SPARC 版本的 Sun Solaris 9。

仿真远没有真正的虚拟化快:SPARC VM 并不十分敏捷,但它很可用。然而,即使是使用了 8 年的 Core i7 也比能够本地启动 MacOS 9 的最快 Mac 快得多,而且 MacOS 9 仅需要 40MB RAM,并且在 233MHz G3 Mac 上运行良好:按照 21 世纪的标准,它不是一个要求苛刻的操作系统。

这与 Mac OS X 10.0 到 10.4 中的经典模式不同:主机和来宾操作系统之间几乎没有集成,您必须自己弄清楚如何在它们之间移动文件。即便如此,UTM 能够如此轻松地实现这一仿真壮举,给我们留下了深刻的印象。

我们还在 UTM 中测试了 Fedora 39 beta,它比在 VirtualBox 下运行得更流畅——毫无疑问,因为 Fedora 的本机管理程序 GNOME Boxes 使用相同的底层 QEMU 工具。

在我们的 M1 MacBook Air 上运行整个 x86-64 操作系统就不那么令人印象深刻了:Rosetta 2 可以逐个应用程序进行转换,并且无法帮助进行全系统模拟。来宾操作系统的性能有点迟缓,但可以忍受:适度使用是可以忍受的。

这让这位秃鹰强烈地想起了 20 世纪 80 年代末在 RISC 操作系统下的原始 ARM 台式计算机 Acorn Archimedes 上使用 Acorn 的 !PCEm [PDF] 软件 PC 模拟器。虽然您总是更喜欢使用可用的本机软件,但令人印象深刻的是 8MHz ARM2 拥有以可用速度完全模拟 x86 PC 的原始马力。 35 年前,ARM 计算机能够模拟与 640 kB RAM 兼容的低于 5MHz XT 级 IBM 令人印象深刻,如今它能够模拟具有 4GB RAM 的 64 位多核 PC 也同样令人印象深刻。

UTM 可以从 Github 免费下载,但如果你从 Apple 的 macOS App Store 获取它,则需要花费 9.99 美元,这有助于为该程序的开发提供资金。

分享此文章