windows系统|macOS换用ARM来势汹汹!Win10 ARM失败在哪里( 二 )


苹果打算将Mac迁移到ARM平台 , 其实很早就能看出端倪了 。 为了平滑过渡到ARM平台 , 苹果早有准备 , 对开发套件作了大量工作 , 以统合的思路 , 开始改造其应用生态 。
【windows系统|macOS换用ARM来势汹汹!Win10 ARM失败在哪里】苹果这两年做的很多事 , 就是为了解决ARM迁移到X86平台上的问题 。 苹果在2019年的WWDC大会上 , 推出了SwiftUI和Mac Catalyst 。 这两个套件的作用 , 在于架起了ARM和X86间、以及移动平台和桌面平台间跨平台开发的桥梁——苹果本身就有着成熟的ARM移动生态 , 这无疑能成为桌面平台迁移到ARM的强劲助力 。
先来说说Mac Catalyst , 这是一个跨ARM和X86平台的开发套件 。 通过Mac Catalyst , 开发者在构建一个iPad App的同时 , 这个App也能成为macOS的原生应用 。 从某个角度来说 , Mac Catalyst将会是iPadOS和macOS新的开发基准 , iPadOS将会和macOS的应用生态深度融合 。 此后 , 即使macOS迁移到了ARM平台 , 基于Mac Catalyst开发的软件应用 , 也可以无缝兼容 。
windows系统|macOS换用ARM来势汹汹!Win10 ARM失败在哪里
本文插图

Mac Catalyst可以让一个软件应用同时兼容iPadOS和macOS
而SwiftUI , 其作用则在于为移动平台和桌面平台提供了跨平台的UI适配方案 。 通过SwiftUI , 开发者能用较为简单的代码 , 一次开发出适配多个平台的软件UI 。 例如开发者想要为macOS和iOS、iPadOS做软件应用 , 那么通过SwiftUI就可以轻松做出能适配这几个平台应用的UI 。 可以说 , SwiftUI大大降低了为不同苹果平台开发软件应用的门槛 , 意义重大 。

windows系统|macOS换用ARM来势汹汹!Win10 ARM失败在哪里
本文插图

SwiftUI可以让同一个应用的UI同时适配多个苹果平台
无论是Mac Catalyst还是SwiftUI , 目前都已经投入了实战当中 , 通过新版的Xcode以及高质量的开发文档 , 每个苹果开发者都可以制作出基于新技术的高质量软件应用 。
很大程度上 , 苹果已经解决了新软件同时兼容X86/ARM、移动/桌面平台的开发问题 。 请注意 , 这是在ARM版macOS发布之前做的工作 , 可谓是兵马未动粮草先行 。 目前 , 苹果尚未发布ARM版Mac电脑 , 但为其配套的开发组件 , 却已相当完备了 。 待到macOS真正迁移到ARM平台时 , 基于Mac Catalyst以及SwiftUI开发的软件应用早已经花繁叶茂 , macOS迁移ARM其软件生态不至于会“休克” 。
步步为营的生态迁移
Mac Catalyst解决了代码在X86和ARM平台的编译问题 , 而SwiftUI则解决了移动平台和桌面平台的UI适配问题 , 但这是针对于新开发的软件应用的 。 对于macOS旧有的软件 , 苹果也祭出了招数 。
在今年的WWDC大会 , 苹果宣布 , 将会为macOS平滑过渡到ARM平台 , 推出Rosetta 2中间转换层 。 如果你是老果粉 , 对于Rosetta这个词一定很熟悉——苹果Mac电脑当年从IBM PowerPC架构 , 迁移到Intel X86平台 , 所使用的转换层正是Rosetta 。

windows系统|macOS换用ARM来势汹汹!Win10 ARM失败在哪里
本文插图

Mac迁移平台这事 , 苹果已经干过一次了 , 当年Mac从PPC迁移到X86的兼容层被称为“Rosetta”
Rosetta 2的作用在于 , 它通过指令翻译 , 可以让ARM平台的macOS , 直接运行绝大部分的X86软件 。 而且Rosetta 2的性能还相当不错 , 它并不是在软件运行的时候 , 才翻译指令的 , 而是在软件安装时就做好了转换 。 当然 , 这也并非说Rosetta 2可以实现性能完全无损 , 它对AVX指令兼容并不好 , 如果X86软件依赖AVX乃至AVX2 , 那么在ARM平台上由于没有对应的高性能指令 , 运行效率会有明显下滑 。 并不是所有的软件都会用到AVX指令集 , 总体来说 , Rosetta 2的性能还是可以接受的 。


推荐阅读