过去的30年,我们一直在用 x86 的计算机作为我们的主要娱乐,生活,和生产工具。但随着移动终端的普及和应用场景的改变,有更多低功耗,高性能,体积小的设备正在渐渐取代我们传统的 x86 设备,这就包括了我们的手机,平板,以及笔记本,物联网等。这些设备有别于传统的 x86 终端,采用不同的指令集。这是未来几年的增长点,不同厂商都在开始尝试在 ARM 上制造不同的终端。在上周我就收到了微软的 Windows Dev Kit 2023 , 下面我就来说说这几天我的使用体验
微软并不是 2022 年才做 Arm 的设备 ,最早的设备应该是 10 年前的 Surface RT 。在 10 年前的 Surface RT , 是一个非常超前的产品,可惜的是当时受制于系统架构以及软件生态,在出了两代设备后就暂停了这个设备的更新了。很多人说,软件生态的不完善是 Surface RT 的致命伤,那这一代的 Windows Dev Kit 2023 又有什么不一样呢?
上图是我开箱后,看到的 Windows Dev Kit 2023 硬件模样。你可以看到它像友商的 Mac mini ,比较小巧。设备放在桌面,一点也不占地方。接口也齐全,包括3个 USB A , 2 个 USB C ,1个 mini DP ,一个 RJ 45 的网口,和一个 90 瓦的电源。还有在设备上少不了一个田牌 LOGO !这告诉大家这是一个微软设备。作为一个开发者套件,已经是一个比较讨好的外观了。Windows Dev Kit 2023 配置的是高通骁龙 8cx Gen 3 的 CPU , 32 GB 内存 , 512 GB NVMe 存储, 这足够大家可以去体验和开发。从价钱上看,我也觉得是一个非常能接受的价格 4488 RMB , 对厂商或者个人开发者都是非常友好的。这也是开发者套件的意义。
软件生态是非常重要的,再好的硬件没有软件生态也是徒劳,微软的 Surface RT 就是一个非常非常大的例子 。或者当时最大的败笔就是不支持 exe 程序的运行。这次我在激活我的 Windows Dev Kit 2023 开发者套件后,就进行了深度的体验。
Windows Dev Kit 2023 带的是 Windows 11 on ARM 的版本。从设置 > 系统 > 关于 , 大家可以看到与硬件和系统相关的内容。 体验下来,这个 ARM 版本的 Windows 11 和 x86 版本是一致的。一般用户在使用该套件时,是零成本过度的。不会像 Surface RT 那样在软件体验和系统变化上有非常巨大的差别。
和十年前不一样,这次的软件可以跑 exe 。这是非常巨大的进步,毕竟 exe 影响 Windows 用户多年。还有它是向下兼容 x86 的 32 位或 64 位结构。日常用的微信,QQ ,还有腾讯会议都可以通过 exe 进行安装。
我们通过任务管理器,看看后台。你可以看到有原生 Arm64 的应用在跑,也有 x86 的应用在跑。在兼容上, Windows 11 已经非常好了。这得益于 x86 的模拟技术。x86 应用的仿真使 Win32 应用的丰富生态系统在 Arm 上可用。 这使得用户无需对应用进行任何修改,便可获得运行现有 x86 win32 应用的体验。 应用甚至不知道它在 Arm 电脑上的 Windows 上运行,除非它调用特定 API (IsWoW64Process2) 。另外 WOW64 层 Windows 允许 x86 代码在 Arm64 版本的 Windows 上运行。 x86 仿真的工作原理是将 x86 指令块编译到具有优化功能的 Arm64 指令中,以提高性能。 服务会缓存这些已转换的代码块,从而减少指令转换开销,并可在代码再次运行时实现优化。 将为每个模块生成缓存,以便于其他应用在初次启动时使用这些缓存。
向下兼容性是非常重要,为系统迁移带来了非常重要的保障。这也是微软吸取了 Surface RT 的教训。也是对现有软件生态的承诺。
向下兼容只是一个短暂做法,是否有软件厂商为 Arm 64 的 Windows 开发应用呢?这也是更重要的事情。我是一名开发者,我从我日常用的应用程序看看,首先是浏览器,除了微软家的 Microsoft Edge 已经是原生应用外,像 Firefox 和 Chromium 都已经是原生支持了,至于 Chrome 我觉得只是时间问题。像会议系统, Microsoft Teams 和 Zoom 都已经是原生应用,至于腾讯会议吧还没有。办公用的 Microsoft 365 都已经是 Arm 64 原生。其他社交类软件和工具类软件还没有做出原生软件,我比较惊喜的是 VLC Player 也已经是原生了。当然作为一个开发者套件,一些常用的像 Visual Studio , Visual Studio Code 也是原生支持的。所以在我工作和生活所需中, 原生成都达到 40% ,甚至 50% 阶段我也觉得非常满意。毕竟我在3年前经历了 Apple Silicon 的转变,当时的原生应用更少。这是一个好的开始,也希望有更多的软件制作商,加吧劲利用 Windows Dev Kit 2023 开发出体验更好的原生应用。
生态完整,大家关注的是桌面应用,其实现在 PWA 应用也可以为大家补全软件生态。现在 Web 应用也是非常强大,在互联网下,也是不错的选择。通过 PWA 我可以把我平常使用的主要社交平台应用安装到本地,还有石墨等日常工作也通过 PWA 安装到本地。对于那些做混合应用的互联网开发商也是一个比较好的支持。
Windows Dev Kit 2023 是面向开发者的产品,自然有一个完整的开发者工具链。我会从编程语言,开发工具和框架,以及应用场景三个方面和大家说说。
要有应用,必须得编程。那大家熟悉的编程语言有 Windows on Arm 的支持了吗?答案是肯定的,如 .NET 6 / .NET 7 就有支持,而像 Java( Microsoft Open JDK 11 or 17 ) , Python 3.11 , VC++ Runtime 也已经有相关原生支持了。这对于大家用不同语言编写应用都是有非常大的帮助。编程语言只是第一步,还有很多相关的库需要去兼容和扩展,这需要有更多的小伙伴努力
开发工具 Visual Studio 2022 on Arm 和 Visual Studio Code 都是原生支持。 对于可使用性来说 Visual Studio Code 更完整,我常用的如远程调试,Python /.NET / Java / NodeJS / Rust 组件都没有问题,还有一些如 Markdown 工具, PDF 工具都是没有问题的。
我重点谈谈 Visual Studio 2022 on Arm 。在安装中你会发现这个和 x86 的还是有不同的,很多模板支持也没有,包括 Azure , 包括现在比较火热的 .NET MAUI ,还有 Python 开发等。
这也比较正常,因为 Windows Dev Kit 2023 现在首先要解决的是 Windows 桌面原来的生态和开发场景。很多框架都是非常好的,如 .NET MAUI 。我就尝试用一些比较特别的方法去实现了 .NET MAUI 的调试。我也在这里分享一下
你可以通过 Visual Studio 2022 on Arm 或者直接去 dot.net 安装和下载好 .NET 7 Arm 64 的版本
打开 PowerShell 运行
dotnet workload install maui-windows
这和直接 workload install maui 不一样,但你可以看到实际 .NET MAUI 也支持在 Windows on Arm 上开发的
dotnet new maui -o demoapp
这样你就可以在 Windows On Arm 上优化你的跨平台应用了
在官方文档上,你可以看到关于 AI 的应用,而且你可以堆叠多台 Windows Dev Kit 为你的 AI 模型结合 Azure 做处理。也可以通过本地 NPU 能力去完成模型的推理工作。通过低功耗,高性能的 Arm 设备,在未来 Windows 都会成为非常重要的边缘设备。
有小伙伴问,除了桌面,AI ,那云原生呢?其实 WSL 2 就是一个云原生的环境。你可以在上面完成更多云原生的操作,毕竟 Linux 在 Arm 64 上的开发工具链非常完善。你可以通过 WSL 2 ,配置好 Docker,Dapr ,以及 K3s,还有和数据科学,机器学习相关的能力,以及 Azure 配套的 CLI 。作为一个开发者套件,我觉得 Windows Dev Kit 2023 是完美的。
Windows Dev Kit 2023 正式打开了 Windows on Arm 的软件生态之路,这是非常重要的。 Developer 优先 ,是微软 Arm 战略中重要的一环。希望有更多的厂商和小伙伴尽快投入到 Windows on Arm 的研发上。为下一代的计算终端,提供更好的支持。
了解 Windows Dev Kit 2023 Available today: Windows Dev Kit 2023 aka Project Volterra - Windows Developer Blog
了解 Windows Dev Kit 2023 工具包 Windows Dev Kit 2023 (Project Volterra) | Microsoft Learn
了解 ONNX Runtime + Windows Dev Kit 2023 ONNX Runtime | Windows Dev Kit 2023
在 Windows 11 上安装 WSL 2 Install WSL | Microsoft Learn
了解和安装 Visual Studio 2022 on Arm 64 Arm64 Visual Studio is officially here! - Visual Studio Blog
安装 Visual Studio Code on Arm 64 Documentation for Visual Studio Code
Python 3.11 Windows on Arm 下载 https://www.python.org/ftp/python/3.11.0/python-3.11.0-arm64.exe
Microsoft OpenJDK on Arm 下载 下载 OpenJDK 的 Microsoft 内部版本 | Microsoft Learn
.NET 7 for Windows Arm 64 下载 Download .NET 7.0 SDK (v7.0.100) - Windows Arm64 Installer