北京时间 6 月 23 日凌晨 1 点,苹果即将召开第一次线上开发者大会活动——WWDC 2020。
按照惯例,这是一个属于开发者的饕餮盛宴,人人都在期待新的 iOS 14,期待新的 macOS、iPadOS、watchOS、tvOS 等等。 因为大家都知道硬件更新一般都要等到秋季和春季。
但今年的 WWDC 上可能会有一些对硬件事关重大的变化措施。
就在最近,传出了苹果要转换平台的消息。准确点说,是苹果准备推出 ARM 版本的 MacBook 产品,而最近几年和在售的笔记本与桌面产品,苹果一直使用的是英特尔平台。
▲ 从 PowerPC 转向 intel. 图片来自:iMore
从英特尔到 ARM,是整个软硬件生态的迁移
其实平台转换这事苹果并不是第一次干,早在十五年前苹果就经历过一次从 IBM 的 PowerPC 平台转换到英特尔平台。但今天和 2005 年不一样,当年苹果的平台转换需求是十分迫切的,因为 IBM 本身设计能力跟不上,PowerPC G5 的功耗和发热都很高,根本不适合笔记本电脑这样的移动平台。
根据知乎用户@蓬岸 Dr.Quest 在相关问题下的答案,我引用了一部分苹果从 PowerPC 转向英特尔几个比较重要的时间节点:
2005 年 7 月 6 日,苹果宣布进行平台转换,并向部分开发者提供开发者转换工具(Developer Transition Kit),同期发布的 Xcode 2.1 支持生成通用二进制(universal binaries)格式的应用程序。
2006 年 1 月,苹果发布 15 寸 Macbook Pro 和英特尔处理器的 iMac。
2006 年 8 月,苹果发布英特尔处理器 Xserve,完成产品线的转换。QuarkXPress 7.0 以通用二进制形式发布。
2007 年 10 月,Mac OS X 10.5 发布。这是最后一代可以安装在 Power PC 处理器上的 Mac OS X。同期发布的 Xcode 3.0 增强了对 64 位处理器的支持
2009 年 8 月,Mac OS X 10.6 发布。10.6 以及更新版本的 Mac OS X 无法安装在 Power PC 处理器的苹果电脑上,但仍然提供 Rosetta 转译器使用户可以继续使用为 Power PC 处理器编译的软件。
2011 年 3 月,Xcode 4.0 放弃了对 PowerPC 处理器的支持。
2013 年 8 月,苹果结束对 PowerMac G5 的支持。
▲ 图片来自:AppleInsider
苹果当时能够转换成功有很多现实原因,比如当时体量比现在更加小众,英特尔在移动处理器方面足够强势等等。而如今 iPhone 的爆红和苹果生态粘性的逐渐加大,在 Mac 平台上促生了大量的 iOS 开发者。
移动平台的壮大成熟,也反哺了桌面平台,现在很多开发者都是先从 iOS 起步,之后再转向 OS X(macOS)开发,从软件生态上就能看出来,先有的 iOS 版之后才有的 Mac 版的情况并不少见。
而在 iOS 时代之前,Mac 的生态其实处于比较小众的状态,甚至说难听点就是蛮荒时代,和今天完全无法相提并论,自然也是没有历史包袱。
▲ 图片来自:IDC
根据 IDC 的统计,2005 年苹果电脑的出货量为 217 万台,而在 2019 年这个数字达到了 1768 万台。这其中固然有笔记本电脑市场整个市场的扩大,但 Mac 的市份额仍然提升到了之前的两倍。
而从绝对数量上说,如今使用 Mac 电脑的人数,可能是十几年前的十倍。今天苹果是这个世界市值最高的公司,要撬动这个庞然大物的生态,即便是苹果自己来做也着实不容易。
从英特尔切换到 ARM,所面临的最大问题可能是整个软件生态的颠覆。
▲ 图片来自:blopeur
如果把这些眼花缭乱的软件追根溯源,我们可以回到处理器和软件运行最原始的一种关系——指令集。
简单说,指令集就是处理器运行的「指导思想」,是一套让处理器能理解程序的行为规范。如果「指导思想」不同,那肯定就没有互相理解的基础,而基于这一整套架构开发出来的下游软件就像由此衍生的各国文化,但亚洲不懂非洲的文化,非洲也不懂南美的文化。
如今的 macOS 其软件生态构建在多年来使用的英特尔处理器上,而英特尔使用的是 X86 架构,现在整个 macOS 软件生态都迁移到了 64 位,也可以说是 X86-64 或者 X64 架构。
▲ 图片来自:9to5Mac
像 iPhone 等移动产品使用的芯片则用的是 ARM 的 ARMv8 指令集,你别看现在苹果已经使用自研的架构多年,但在指令集部分依然是基于 ARMv8 的,不过传闻说苹果也准备对指令集这部分动手了。
也就是说,桌面设备和移动设备在指令集的层面就是不一样的,所以换到 ARM 平台后,软件是并不能通用的。
有人可能想说,那个谁,微软不是早前一点也发布了使用 ARM 芯片的 Surface 产品吗,就那个 Surface Pro X,它不是也能直接运行 Windows 10 的程序吗?
没错,Surface Pro X 使用的 Microsoft SQ1 的确是微软找高通定制的 ARM 处理器,同时运行的也是完整的 Windows 10 而非先前 Windows RT 那样的「残疾版」系统,同时也能运行 Windows 10 的应用。
但 Surface Pro X 的问题依然很多,比如它只能运行 UWP 应用和 32 位的 Windows 应用,基于 64 位开发的软件就无法支持。另外通过翻译架构的方式兼容 win32 应用导致性能出现大幅损失,效率大概只有原生应用的 30%-40%,更别说闪退、软件重启等各种各样不稳定的小毛病。
▲ 微软 Surface Pro X.
而对于苹果来说,连通过翻译架构兼容 32 位的程序也无法实现,因为苹果已经通过自己对生态的控制力将全部的应用迁移到了 64 位。而面对大批不能直接运行的软件,这个阵痛期一定会比想象中的更痛。
苹果能做的,就是通过自己的控制力,去要求开发者将已有的软件在一定的时间内编译成 ARM 平台可以运行的版本,只是这并不是一件容易的事,毕竟各个软件的情况复杂,某些软件要想迁移到 ARM 可不是重新编译一下那么简单。
▲ Dell XPS 13 2020. 图片来自:Dell
在软件之外,如今的 ARM 在性能和功耗上可能也占不到什么优势了。无风扇的被动散热,接近 20 小时的续航,如今已经陆陆续续被非 ARM 的笔记本完成,比如最新的戴尔 XPS13 2020 就号称有最长 19 小时续航。
而且对于桌面环境来说,苹果目前基于 ARM 的 A 系列芯片性能仍然是不够的,比如频率已经处于「灰烬」状态,再往上就撞到了功耗墙,也就是没有超频或者说像英特尔处理器类似的睿频空间。
更别说十几二十个核心的高性能服务器版本,还处于路漫漫其修远兮的状态。
如果今天 MacBook 还在被说散热不佳和续航普通,那苹果可能应该更多在自己身上找找原因,比如 WWDC 2020 都快来了但还是 Bug 一身的 macOS 10.15 Catalina?
▲ 运行 Windows 的 MacBook. 图片来自:Jon Rettinger
选择 ARM 对苹果来说可能还有一个预料之外的打击——这些苹果电脑将不再能用 Windows 系统。
众所周知,购买 MacBook 并不一定等于加入苹果生态,选择装 Windows 系统使用的用户也大有人在,因为本身苹果早就敏锐的察觉到了这件事,并推出了 Bootcamp 工具让用户能够选择双系统运行,但如果推出 ARM 版,那肯定无法使用了。
ARM 版 MacBook 的对手还有 iPad Pro
比起生态迁移和兼容带来的不确定,ARM 版 MacBook 其实并没有什么外敌,Surface Pro X 肯定不算,这个产品在微软这里只是一款实验性产品,而真正会对 ARM 版 MacBook 造成威胁的,其实是内患。
当「你的下一台电脑何必是电脑」的广告语从今年 iPad Pro 宣传片中蹦出来的时候,就意味着 iPad 和 MacBook 这两条原先还算平行的线路终于「火星撞地球」一样,正式短兵相接了。
如果对比一下这两条线,可与看到 ARM 版 MacBook 其实处于一个很尴尬的位置。
iPad Pro,采用 ARM 处理器,使用精简指令集,iPadOS 系统脱胎于移动设备 iOS,在妙控键盘的加持下从移动走向桌面。
MacBook,英特尔处理器,使用复杂指令集,立足于 macOS 桌面操作系统和生态。
ARM 版 MacBook,采用 ARM 处理器和精简指令集,继续使用 macOS 的话原先的桌面生态会丢失,只能通过部分移植应用或者 zh 虚拟机的方式运行之前的桌面软件,效率大打折扣。
其实到这里我依旧没有想通,苹果出一个 ARM 处理器版 MacBook,失去了桌面生态最大的优势,然后去和 iPad Pro 打架,这究竟是一个什么样的逻辑,或者说其巨大的内在驱动力到底在哪。
当然,倒也并非找不出苹果想要这样做的理由,比如说想要对自己的产品和生态有更多的控制力,就像 iPhone 上使用的自家 A 系列芯片,早期的时候 CPU 用的是三星的,GPU 用的 PVR,到了后面全部变成自研架构之后,A 系列芯片的性能才算在手机和平板中一骑绝尘。
▲ 图片来自:TechCrunch
而现在 iPhone、iPad、乃至 Apple Watch 这些产品的生态与核心硬件已经被苹果攥在了手里,几乎就唯独笔记本和桌面系列还要看英特尔的脸色,像英特尔过去几年那种「挤牙膏」以及打磨 14nm 的行为,对于 MacBook 系列来说其实是挺大的一个掣肘。
但最后我还是觉得这样的理由不足以说服我,至少我不觉得英特尔没有余力。
因为英特尔过去几年的「挤牙膏」,很大程度上是因为 AMD 在 K10 架构的错误方向之后一直没有缓过劲来,直到 Zen 和 Zen2 架构的奋起直追,终于让很多人喊出了「AMD Yes!」。
▲ 图片来自:TechSpot
面对 AMD 的穷追猛赶,英特尔确实在制程上遇到了一些困难,导致新的工艺节点一直在延后,但在这几年中并非只是放羊摸鱼而没有技术积累,新品 Tiger Lake(Willow Cove 架构)性能提升明显,终于牙膏管挤出了一截。
而从英特尔转向 ARM 也非朝夕之功,显然还有好几年的路要走,甚至可能要付出移山挖河般的时间和财力才能逐渐追上,而那个时候,可能已经是 2025 年甚至更久之后了。