你的Mac,不只是macOS
介绍
在 Apple 宣发 iPad Pro 2020 时,打出了标语“你的下一台电脑,何必是电脑“。
如今已经时隔三年,iPad Pro 2022 也用上了 M2 处理器,硬件水平上早已经与电脑持平,但从平板的软件生态上来看,“你的下一台电脑,还得是电脑”。
Apple Silicon的推出,使得电脑的能耗比达到了一个新的高度。Apple 也为了 Apple Silicon 的软件生态,推出了Rosetta2,而且支持安装 iOS/iPadOS 软件。
Windows 11的推出,带来了Windows Subsystem for Android,使得 Windows 支持安装 Android 软件。
也就是在 Windows 11 推出的时候,我就有一个想法,用一台 Mac 是不是就能体验全平台的生态。
随着近日 macOS 最好用的虚拟机软件Parallels与 Microsoft 达成商业合作,使得在 Apple Silicon 系统上安装 Windows 获得正式许可,得到 Microsoft官方支持。那么在 Mac 上使用全平台就可以开始正式开始探索。
macOS
Apple Silicon 的推出,至今已经近 3 年。macOS 下的 Arm(即 Apple Silicon)生态已经基本完善。大部分软件都已经对 Apple Silicon 进行适配,有通用(Universal)版本或 Apple 芯片(Apple Silicon)版本。甚至机器学习框架Tensorflow和Pytorch也已经适配(64 核的 GPU 和 128G 的统一内存有了用武之地)。
就我个人使用方面,仅EasyConnect(学校 VPN)和Zotero6(Zotero7 将提供原生 Apple Silicon 支持),以及一些游戏(Steam 商城和League of Legends)没有进行适配。对于没有适配的一部分,Rosetta2 的兼容性还是很强大的。例如,League of Legends 在Metal的加持下,甚至可以达到 200 帧。
随着 Apple 对 Metal 的推广,macOS 下的游戏生态也会逐渐改善。3D 游戏生化危机:村庄就已经提供原生 Apple Silicon 支持。而且 Steam 商场虽然还是 Intel 版本,但其中的部分游戏已经是原生支持的。关于游戏的更多详情可参考AppleGamingWiki。
如上所述,实际上 macOS 已经可以满足绝大部分需求,但是为什么还要去安装其他平台呢,这里引用隐藏 APP 软件Cloak开发者ezzz的一句话“geek 表示产出内容哪有折腾服务器有意思“,以及 Newsletter林中来信的出品人郝海龙的回复“折腾服务器和产出内容在 Geek 这里是等价的“。是的,纯属折腾(我是不会承认是为了用 Windows 玩英雄联盟的事实的)。
此外,还有一个对一些人很重要的软件——原神,是没有 macOS 版本的。
iOS/iPadOS
Apple Silicon 是官方支持安装 iOS/iPadOS 软件的,在 App Store 中搜索即可。
通过官方提供的这种方式,可以安装一些好用的 iOS/iPadOS 软件,但是暂时没有提供 macOS 版本的,例如游戏阴阳师,博客客户端Overcast和 Reddit 第三方客户端Apollo,而且这几个软件是我已知的虽然不提供 macOS 版本,但是会对 macOS 进行适配的 iOS/iPadOS 软件。
是的,虽然可以安装,但是很多软件并不会对这种情况专门适配,所以体验上并不比 macOS 原生软件或者 WEB 端好。
在 Apple Silicon 刚推出的时候,是可以随意安装 iOS/iPadOS 软件的,但后来 Apple 添加了限制,这就需要安装额外的软件才能安装未上架 App Store 的 iOS/iPadOS 软件(据说上架 Mac Apple Store 只需要开发者提交软件时选择 Mac 平台即可,但不上架也可以理解,减少维护成本)。
PlayCover
为了安装未上架的软件,例如前面提到的原神,需要安装PlayCover,并在Decrypt IPA Store下载所需 iOS/iPadOS 软件的 IPA 即可,也可添加 IPA 源,以便直接在 PlayCover 中进行下载安装。详细使用方法参考官方文档。
这样,macOS 使用 iOS/iPadOS 生态已经完全覆盖,如需要 iOS/iPadOS 桌面体验,macOS 上的 AirPods 及蓝牙设备电量管理软件AirBuddy开发者Guilherme Rambo近期正在研究在 Mac 上利用 Virtualization.framework 运行 iOS 16 VM,可以关注一下后续。更简单的方法是用Xcode中的模拟器。
Linux
在 Apple Silicon 上运行 Linux 从推出以来就一直在研究,Linux 6.2 已经官方支持 M1 Mac,但实际上,据在 Apple Silicon 上运行 Linux 的推动者Asahi Linux所称,这只是最基本的支持,并无法正常运行任何 Linux 6.2 内核的标准发行版。
所以,运行 Linux 目前还是需要使用 Ashli Linux 项目,该项目底层使用 Arch Linux ARM,甚至已经支持 GPU 驱动。现在已经在 Alpha 测试阶段,安装流程可参考官方博文。
除了原生运行 Linux 之外,还有一种方式是通过虚拟机。现在各种虚拟机都已成熟,例如Parallels,VMware Fusion,UTM,Multipass。其中体验最好的依然是 Parallels,如果只需要一个虚拟环境不需要桌面,可尝试 Multipass。
Virtualization.Framework
但这些都不是主要介绍的,这里主要关注利用Virtualization.Framework运行的虚拟机,这是 Apple 在 macOS 11 引入的一个新的虚拟化框架,并在 macOS 13 中添加了运行 GUI Linux以及在 Linux 中通过 Rosetta 运行 Intel 程序的支持,而且这是在 Apple Silicon 下运行 macOS 虚拟机的唯一方式。
由于 Virtualization.Framework 推出时间短,各种适配上还有待提高,也不能提供一些已经成熟的虚拟化技术的高级功能,所以各大虚拟机软件目前在 Linux 上还没采用这个框架。我已知的用于个人的只有Docker容器和UTM。
Docker 容器处理方案就和虚拟机是两种方案了,所以这里不进行介绍,主要介绍 UTM。
UTM
UTM 是一个 macOS 上的一个开源虚拟机解决方案,为QEMU虚拟化及模拟进行包装以及提供 GUI 支持。与其他虚拟机软件不同,UTM 以 QEMU 提供支持,除了提供 ARM 虚拟化之外还提供 x64 及 x86 模拟,所以可以通过 UTM 安装 amd64 系统,在创建虚拟机时即可进行选择。
而且 UTM 不止提供 Linux 的虚拟,还可安装 Windows 和 macOS,可以说是免费又强大。
在安装 Linux 时即可选择使用 Apple 虚拟化,以及启用 Rosetta。若不选择 Apple 虚拟化,则是用 QEMU 进行虚拟,两种后端能实现的功能也不太一样。对于 Rosetta 有需求的,还是选择 Apple 虚拟化。
详细的安装流程可参考官方文档。
官方文档中对 Ubuntu Arm 的安装是安装服务器版本,再安装桌面。
在实际操作中可直接下载Daily Build 桌面版镜像。
UTM iOS/iPadOS
UTM 除了提供 macOS 程序以外,还提供 iOS/iPadOS 上的虚拟机 App,由于系统限制,无法直接在 App Store 上安装。
对于已越狱的 iOS/iPadOS 设备,可通过 Cydia 安装(我相信越狱设备的肯定比我了解安装方法)。
对于未越狱的 iOS/iPadOS 设备,满足TrollStore系统要求的(大概在 iOS/iPadOS 14.0 - 15.6 beta5),可通过 TrollStore 安装。不满足 TrollStore 要求的,则需要通过AltStore安装,并启用 JIT。
不同安装方法可实现的功能有所不同,自上到下,功能限制增多。
详情参考官方文档。
安装后就可以在 iOS/iPadOS 上安装 Windows/Linux 了,iOS/iPadOS 只支持模拟,不支持虚拟化,所以不能安装 macOS。“你的下一台电脑,何必是电脑”,也可以是手机。
Windows
Windows 可以说应该是 Mac 上需求最高的平台,毕竟要玩英雄联盟(bushi)。
从 Microsoft官方文档中介绍,在 Apple Silicon 设备上使用 Windows 有两种方式,Windows 365,Microsoft 提供的云电脑解决方案,适用于商业及企业;以及 Parallels 虚拟机。这是官方授权的方式。此外,还可使用前述的 UTM 或者 VMware Fusion 安装。
在使用体验上,Parallels 可以说完全碾压其他方案,我接下来会一一介绍。
Windows 下载
安装 Windows,由于 Microsoft 不提供 Windows on Arm 的 ISO 镜像,所以需要用其他方法获取:
- Microsoft 官网下载。此方式下载的是 VHDX 文件,需要用 QEMU 转化为 ISO 文件。
- Parallels 一键安装。Parallels 提供了一键安装的方式,最方便快捷。
- UUP dump下载。UUP dump 通过脚本从 Microsoft 获取系统文件,并将其转化为 ISO。需要注意的是 Windows 11 22H2 或更高版本需要使用 Windows 10、版本 2004 或更高版本才能正确创建 ISO。macOS 的当前脚本将输出一个损坏的 ISO。如果您没有 Windows 计算机,您可以先安装旧版本的 Windows,然后使用它为新版本创建 ISO。
- ITELLYOU下载。国内的一个很神奇的网站,提供各种镜像下载。
下载后在虚拟机软件中自行安装即可,不同的虚拟机可能在安装流程中无法提供网络导致无法安装的情况出现,具体解决方法可参考UTM和VMware Fusion的文档。
Windows 激活
Windows 建议使用 Pro 版本。如有美国支付方式,可在美区商店直接购买。如没有,可在国区商店购买 Home 版本,并在安装后的 Microsoft Store 中升级为 Pro 版本。如果已有许可证,可通过疑难解答转移许可证,详见Parallels 文档。需要注意的是,该转移有次数限制,在虚拟机中激活需谨慎。
其他激活方式请各显神通,这里不作介绍。
Parallels 配置及功能
Parallels 的配置中,有一个地方是我个人喜欢的配置,在显示这里的分辨率选择 Retina 显示最佳,这样子可以让 Windows 有类似原生系统的感觉,但因分辨率变高,未进行高分适配的 App 会变得模糊。其余配置可按自己喜好自行配置。
安装后全屏模式如下图。
我只能说 Windows 有了 MacBook Pro 的屏幕素质,还是很好看的。
共享
Parallels 可以在共享 Mac 和 Windows 文件,这个功能很实用。
可以让 Mac 和 Windows 共用文档和下载等用户文件,这样 PowerShell 配置,Visual Studio 项目都会在 Mac 上出现,方便管理和备份,同样 Mac 上的也会在 Windows 上出现。
在访达的网络与云存储一栏,会出现 Windows,可以访问 Windows 硬盘和 Onedrive 文件。
在 Windows 文件管理器中 iCloud 和 Mac 的用户文件夹及云存储会作为网络磁盘出现,当然也可以设置共享更多的文件。
应用程序
应用程序也是共享的,Mac 上可以访问一切 Windows 上安装的应用程序。
Windows 上也可以访问 Mac 上的应用程序。
甚至可以设置默认应用程序。
融合模式
这个模式让 Windows 就像 Mac 的一个组件一样在 Mac 的 Dock 栏中。
打开的 Windows 程序也像一个原生的 Mac 程序一样直接显示在 Mac 桌面。
Windows on Arm App
但 Windows on Arm 的 Arm 生态相比于 macOS 和 Linux 来说是真的很差,适配 Arm 版本的软件屈指可数:
- Microsoft 的软件基本已经全部适配,包括Visual Studio和Microsoft 365
- Firefox
- Adobe的Photoshop和Lightroom
- Spotify Beta
- 7-Zip,Bandizip
- VLC
- ZOOM
- Rufus
- Clash for Windows
- Obsidian
- 一些国外流媒体Netflix,Disney+,Prime Video
- 一些通过 Edge PWA实现的网络应用程序Instagram,Twitter,TikTok等
- Git for Windows Arm Fork,Python,Github Desktop,Notepad++,PuTTY
大概也就这么多了,毕竟自 Windows on Arm 推出以来就说了多年的 Photoshop Arm 版是在 Apple Silicon 推出后才适配的,Microsoft 对比 Apple 的号召力显然易见。
那既然 Arm 生态这么差,Apple 又没有为 Windows 提供 Rosetta,Windows on Arm 是不是就不能用呢,实际上不是的,因为 Microsoft 的实力还是毋庸置疑的,Windows on Arm 本身就支持对 x64 和 x86 的模拟,对 Microsoft 365 的支持就有一部分是通过 x64 的模拟实现的,不然怎么玩英雄联盟呢(bushi)。
WSL && WSA
正如前文所述,Windows Subsystem for Android 的推出让 Windows 可以运行 Android 程序,但可惜的是 Apple Silicon 芯片目前不支持嵌套虚拟化,WSA 和 WSL2 都是无法安装的。
但还是可以安装 WSL1 的,根据官方文档正常安装即可。
需要注意的是,要先更改 wsl 版本
wsl --set-default-version 1
这样就可以在 macOS 的虚拟机 Windows 中通过 WSL 开发 Linux 程序了,经典套娃。
Windows Tips
对于 Windows 的使用有一些小 Tips:
- 个人体验上来说 Microsoft Store 的体验并不好,除了一些只能通过 Microsoft Store 安装的软件,例如国外流媒体以及 PWA 网络应用程序之外,尽量通过包管理器安装软件(当然不会用命令行的还是用 Microsoft Store 吧)。Windows 自带了winget,可以用来安装绝大多数软件了,而且有 Arm 支持,此外还有Scoop(Arm 支持),Chocolatey(目前不支持 Arm)。
- 日常使用的程序还是用 macOS 原生应用,毕竟 Windows 需要虚拟化之后再进行一次 x64 模拟,性能损耗过大,英雄联盟帧率只有 40-50。
- 这里列举一下除了系统自带软件之外,我安装的软件:
- Clash for Windows,仅用于测试 Clash 配置
- Cherry 实用软件,配置机械键盘
- Netflix,Disney+,Prime Video
- Git for Windows Arm Fork,Visual Studio 2022 Preview,Visual Studio Code Insiders
- Microsoft 365 Insider
- Microsoft Edge Dev
- Windows Terminal Preview,PowerShell Preview,Oh My Posh,posh-git,Terminal-Icons
- Obsidian
- Microsoft PowerToys
- Rufus
- 英雄联盟
- 可以看出,大多数都是 Microsoft 的软件,且都是 Insider 或者 Preview 版本,因为用 Windows 主要是体验一下 Microsoft 的新产品,新功能,而且 Microsoft 的很多产品多是 Insider 版本才有的,比如Phone Link iPhone 支持,全新的Onedrive设置,全新的Outlook for Windows。
- 而且现在Windows Insider Canary 频道送 U 盘,快去领。
- 这里列举一下除了系统自带软件之外,我安装的软件:
- 非 Unicode 程序的语言需设置为简体中文并不启用 Unicode UTF-8(不然打不开英雄联盟)。设置->时间和语言->语言和地区->Administrative language settings->非 Unicode 程序语言设置。
Android
由于 WSA 不能使用,运行 Android 程序的想法破灭了。
而且目前也没有什么可用的 Android 模拟器,但是不要忘了最基础的方法。
Android Studio开发软件自带 Android 模拟器,用来装一些 Android 软件体验一下还是不成问题的。
Tips
- 虚拟机中的网络连接不需要在虚拟机中重新安装代理软件。虚拟机安装时会创建一个虚拟网卡,也会有一个路由 IP,只需要设置虚拟机内的操作系统的代理指向这个路由 IP 即可使用主机的代理软件上网;如果开启了 Surge 或 Clash 的增强模式,则不需要额外配置即可上网。详见scomper的博客壹页单章的博文PARALLELS DESKTOP 的网络设置。UTM 也可进行配置,我这里 UTM 分配的路由 IP 是 192.168.64.1。
- 运行 Parallels 时连接的有线设备,蓝牙设备可以选择是连接到主机还是虚拟机,以此可以使用一些只能 Windows 使用的设备。
总结
一台 Apple Silicon Mac,可以运行 iOS/iPadOS,Android 软件,运行 x64 和 Arm 两个架构下的 macOS,Linux 和 Windows 软件。“你的 Mac,不只是 macOS”。
有 UTM 加持下的 iPhone/iPad,可以模拟运行 Linux 和 Windows 虚拟机。”你的下一台电脑,何必是电脑“。