在iOS上运行带有虚拟机软件的Windows或Linux,其实并不是什么新鲜事。早在2017年,某小众团体就有文章介绍过。但那时候只是为了怀旧和打游戏。现在,苹果赋予了iPad越来越多的生产力元素,运行在iOS/iPadOS上的虚拟机就有了更大的意义。

UTM是一款开源的虚拟机软件,将QEMU移植到了iOS上。通过完全模拟整个计算机硬件系统,我们可以在iOS设备上运行Windows、Linux和Android。甚至,Twitter上的用户展示了在iPad上通过UTM运行旧版macOS,然后使用Xcode开发iOS的梦幻操作。

iPad上的IOS开发

如果您有自己安装ipa文件的方法,可以跳过这一节,直接进入虚拟机创建一节。或者你可以先看看体验部分,再看看有没有必要安装UTM。

由于其特殊性,UTM错过了应用商店。因此,我们需要下载ipa文件并手动安装。UTM官方建议使用AltStore进行安装。Ipa文件可以比作Android下的apk文件,是iOS的应用安装包。不同的是,ipa文件需要苹果开发者账号签名才能安装到iOS设备上。正常情况下,这个过程应该由Xcode来完成。AltStore简化了这个过程,不需要Xcode就可以安装ipa文件,为管理提供了便利。

先去GitHub获取UTM最新的ipa文件,再去AltStore官网获取AltStore的电脑端依赖软件AltServer的安装包。然后,在计算机上安装AltServer。安装完成后,在AltServer中登录我们的Apple ID,在菜单中安装邮箱插件。

然后,运行相应的邮件应用程序1。邮件应用必须登录我们Apple ID的绑定邮箱,并在设置中启用AltServer插件。最后用数据线把iOS设备连接到电脑上,在AltServer的菜单里把AltStore安装到目标设备上。稍等片刻,iOS设备主屏幕上会出现AltStore。

安装AltStore后,保持邮件应用和AltServer在电脑端运行,并确保iOS设备与电脑在同一个局域网上。将UTM的ipa文件传输到iOS设备,启动AltStore,在底部导航栏中选择我的应用程序,触摸左上角的加号,然后选择UTM的ipa文件。很快,UTM将出现在我们的主屏幕上。

回到AltStore的我的应用页面,我们会发现,在应用之后,提示应用将在7天之后过期。这是因为我们的Apple ID不购买苹果公司99美元的年度付费开发者账户,我们需要每7天重新签署一次应用程序。在应用即将到期的前一天,AltStore会发通知提醒我们,可以在电脑端启动AltServer和mail应用,点击AltStore的我的应用页面中的全部刷新字样,手动重新登录。

UTM有一个友好的交互界面,并提供中文支持。但必须注意的是,由于iOS系统的一个bug,在退出UTM时,必须使用主界面左上角的分叉按钮或者虚拟机运行工具栏上的关闭按钮。你不能直接在应用切换器中滑动UTM卡来强制关闭它。否则,UTM可能无法启动或崩溃,设备需要重启才能恢复正常。

在创建虚拟机之前,我们需要下载要安装的系统映像,并将其导入iOS设备。触摸主界面右上角的加号按钮,调出创建虚拟机界面。我们可以看到,UTM支持多种架构和CPU的虚拟化,但是如果你不知道这些选项的实际意义,请保持默认的架构和CPU。

IOS的机制会强制关闭任何占用内存超过40%的应用,所以内存设置需要谨慎。UTM官方建议我们将虚拟机内存设置为设备可用内存的25%。这是因为UTM应用本身需要占用内存,而虚拟机运行时,为了提高运行效率,UTM还会生成JIT cache 2,默认值为虚拟机内存的四分之一。

如果不知道设备的可用内存,可以在虚拟创建后进入虚拟机的配置界面。在CPU和内存选项中,UTM会为我们列出设备的可用内存,然后进行设置。UTM将在检测到设置的内存过大时警告我们,如果虚拟机正在运行,UTM将保存虚拟机当前状态的快照以避免出现问题。

接下来,我们需要加载图像。这里的镜像其实指的是虚拟机的硬盘。

。我们点开「加载镜像」选项,再轻触右上角的加号,继续点开「文件路径」,又有加号,轻触它就是了。

第一次,我们选择「创建」,不用管拓展名,随便给镜像取个名字,再设置大小,如果要安装 Windows,至少需要 10 GB 的硬盘大小,类比到一台真实的计算机,这一步相当于将硬盘用数据线连接到电脑上。

接下来,我们返回去选中我们刚才创建的镜像,确保镜像类型为 disk,类比到一台真实的计算机,这一步相当于对硬盘进行挂载。最后返回一次,我们的镜像就创建完了。我们可以创建多个镜像,类比到一台真实的计算机,就相当于多个物理硬盘。

接下来,我们重复刚才的动作。只是这次,我们选择「导入」我们导入的系统安装镜像,并将镜像类型改为 CD/DVD 镜像,这就相当于插入了系统安装盘。

UTM 会将我们的虚拟机以 .utm 文件的形式保存在「文件」应用中的 UTM 文件夹下,我们也可以通过将 .utm 文件传输到 UTM 文件夹中来快速导入别人 创建好的虚拟机。我们创建了镜像后 UTM 不会马上在设备上占用这么多空间,而 .utm 文件的大小会在使用的过程中逐步增长,直到达到我们设置的镜像大小。

接下来,返回 UTM 主界面,启动虚拟机,我们就会引来经典的系统安装向导。且听小娜吟诗,待其消停后,我们可以看到虚拟机的系统桌面,此时点击工具栏 3上的暂停按钮,UTM 会为我们保存一个虚拟机当前状态的快照。

然后再点击工具栏上的关闭按钮,回到 iOS 系统桌面重新打开 UTM,轻触虚拟机卡片下的 按钮,进入虚拟机「配置」中的「驱动器」,删除导入的系统安装镜像。

UTM 主界面

为了完整发挥虚拟机的性能,我们可以在虚拟机系统内安装一些工具,但这并不是必须的。

以上工具的安装包都可以 在此 获得,值得注意的是,直接下载 Guest 客户端即可,UTM 已经内置了服务端。以上工具仅在少数系统,如 Windows 和 Debian 上工作。

至此,我们的虚拟机就已经完全配置完成了。

使用 UTM 在 iPad Pro 上安装的 Windows 7

我安装 UTM 的设备是 iPad Pro 11 吋第二代的蜂窝数据版本,A12X 的处理器,储存空间是 256 GB,UTM 显示我设备的可用内存是 3057 MB。在清空后台后,我给每个虚拟机分配了 1024 MB 内存,没有触发报警和强制关闭。

说到虚拟机,大家最关心的莫过于性能。在上文中也有提及,UTM 实现虚拟机的方法是模拟整个计算机硬件系统,加之苹果并没用提供 A 系列芯片的虚拟化接口,导致整个虚拟机的运行效率差强人意。我安装 Windows 10 和 Android 9 都失败了,二者都可以正确安装,但是无法进入桌面。最后我安装成功的是 Windows 7 和 Android 4.4.4。在 Android 4.4.4 中,我使用了 Geekbench 3 进行了跑分,结果供大家参考。

Android 4.4.4 Geekbench 3 跑分结果

这个跑分大概是什么水平呢?我去大概翻找了一下历年来的 Android 旗舰,其中跑分最接近的是 2011 年发布的三星 Galaxy S II。当然这只是旗舰机,在后几年发布的非旗舰平板中,例如 2015 年发布的华为 T1-701U,和这个跑分也比较接近。

这个跑分如此低,有一个重要的原因,是 UTM 不支持虚拟多核处理器,虽然提供了相关的设置,但官方说尽量不要尝试更改。在运行 Android 4 的过程中,帧率很低,一些拖动操作也十分不跟手。

在 Windows 7 的体验过程中,IE 浏览器是可以正常使用的。众所周知,IE 浏览器的最大意义就是拿来下载其他浏览器。于是我尝试安装 Chrome,在运行安装的过程中,UTM 崩溃并导致了我的 iPad 死机。不过在运行 Windows 7 的过程中,并没有肉眼可见的卡顿,操作也十分流畅。或许 UTM 对 Windows 的支持更加友好。

UTM 在输入上有着十分完美的体验。UTM 支持两种方式的输入,一种是「触屏模式」将触控屏幕模拟为触控板,一种是「平板模式」,顾名思义,效果就像直接在平板上运行的系统一样。这里面可圈可点是平板模式,在平板模式下,可以完美触控 Android 4,直接就像使用一台 Android 平板那么简单,我相信如果我安装了 Android 2,没有流畅度的困扰,使用体验可能真的和真正的 Android 平板不相上下。

Windows 7 下,可完美使用 Windows 的「笔和触控」相关功能。在性能更好的 iPad 设备上,如果可以成功安装 Windows 10 的话,应该可以完美使用 Windows 10 平板模式的相关功能,可惜流畅度估计还是不行(Surface 用户长吁一气)。

我将 Magic Mouse 用蓝牙连接到了我的 iPad,令我十分惊喜,可以直接用 Magic Mouse 操控虚拟机中的鼠标,辅以 iPad 上连接到键盘式智能双面夹,体验和一台真正的电脑别无二致。但是仍然有两个点是很遗憾的:

依我愚见,生产是一个开放创造力的过程,而生产力设备,则应给我们提供开放创造力的条件,给我们提供尽可能多的可能性,以供我们的创造力恣意发挥。一个优秀的生产力设备,应该在「可能性」与「易用性」中达到一个平衡点。UTM 的出现,无疑扩大了 iPad 的可能性,拓展了其生产力。

针对 Linux 系统,UTM 提供了命令行模式,可以让我们使用 UTM 内建的终端连接到虚拟机,发送命令,进行操作。UTM 也给虚拟机提供了健全的网络设置。这也就是说我们可以在 UTM 上运行 Linux,作为一个小型的服务器。这对一部分开发人员,可能是有一些用处的。在 Windows 上,我们也可以运行 Office 套件,来达成一些办公需求。也别忘了本文的开头,在 iPad 上进行 iOS 开发已经成为现实。

今年的 WWDC,宣告了 arm 处理器的 Mac 的信息。这又扩大了 UTM 的意义。x86 和 arm 是两个截然不同的平台,在 arm Mac 上,Parallels Desktop 这类 Mac 老牌虚拟机软件能不能工作,也许是个问题。此时,UTM 就占据了优势。根据 UTM 官方的消息,UTM 2.0 正在开发过程中,已经完成的有 UI 优化和对 macOS Big Sur 的支持。

有关 UTM for macOS Big Sur 的消息

UTM 的出现,拓展了 iPad 的生产力新可能;说不定在 ARM Mac 上,苹果能放开一些虚拟化的接口,那时完善了易用性的 UTM,说不定真可以掀起一番浪花。

虽然本文注重 UTM 在 iPad 上的体验,但 UTM 在 iPhone 上也是可以正常运行的。如果你对 UTM 感兴趣,可以前往其 官方网站 更进一步地了解 UTM,其源代码亦在 GitHub 开源。