西西河

主题:苹果要全面转向(all-in)ARM啦!? -- 杨微粒

共:💬28 🌺135
全看分页树展 · 主题 跟帖
家园 微软对 ARM 其实并没有那么上心

https://www.zhihu.com/question/403068258/answer/1305199884

移植 Win32 程序到 ARM 并没有那么难,但发布一个 Windows ARM 的编译器似乎很难,至少微软是这么认为的。

Windows 10 ARM64 是在 WinHEC 2016 上首次公布的,16 年 12 月。微软演示了骁龙 820 上运行的全功能 Windows 10,支持 Win32 程序,还带 x86 模拟器。

https://www.bilibili.com/video/BV1Xs411Y7ah

但微软完全没有提该要怎么移植现有的程序,对于桌面程序来说,只能靠模拟器。模拟器能跑就跑,不能跑就拉倒。

等了快半年,17 年 5 月的 Build 2017 大会,微软再一次演示 Windows 10 ARM64,但还是没有演示要怎么移植程序。你要原生?写 UWP 吧(还只能是 32 位的)。

https://www.bilibili.com/video/BV1Fx411v7Cz

但社区不想再等下去了。几乎在同一时间,5 月 11 日,Pete(Rufus 作者)在博客上发布了用 VS2017 编译 ARM64 Win32 程序的教程,并且将 Rufus 移植到了 ARM64。

https://pete.akeo.ie/2017/05/compiling-desktop-arm-applications-with.html

原来 ARM64 的库已经躺在公开的 Windows SDK 里很久了,VS2017 也早就提供了 ARM64 编译器。但微软就是不愿意公开,甚至限制用户用这个编译器编译 Win32 程序,要改 VS 工程才能绕过。

又等了一年,Build 2018 大会上,微软终于宣布公开 ARM64 工具链。这么重要的事情居然没有上到大会的 Keynote,只是一个 Session 和一篇博客更新完事。

在这个 Session 上,微软演示了 VS2017 编译 OpenVPN 驱动,以及 ARM64 的 VLC,一行代码都不用改。

https://www.bilibili.com/video/BV1cE411Y7Va

但微软没有演示用 VS2017 编译 VLC,只是说了一句“他们的编译系统比较特殊,做了很多改动才能用 MSVC 编译”。

嘛,编译系统的确很特殊,特殊到他们根本就没用 MSVC 编译。在 LLVM 的邮件列表上,Martin Storsjö 提到大会上演示的 ARM64 VLC 其实用的是 Clang/LLVM/MinGW 工具链。

[llvm-dev] Showcase of the Windows/ARM64/MinGW target

http://lists.llvm.org/pipermail/llvm-dev/2018-May/123457.html

至于 LLVM 的 Windows ARM64 支持是什么时候开始的呢?第一个 PR 在 17 年 8 月。在微软犹豫的一年时间里,社区自己用爱发电都把工具链搞完了。

⚙ D36364 [AArch64] Add support for a MinGW AArch64 target

https://reviews.llvm.org/D36364

微软对Windows on ARM不上心,感觉就和微软的手机业务失利类似,微软的重心在商业客户,2C(消费电子)业务很多时候都有一种漫不经心的感觉,Windows 8以来的微软应用商店也是如此,很容易在商店里面找到质量不达标的垃圾应用。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河