微軟發布ARM64EC 17.3:Windows 11 on ARM迎來全面支持
早在2021 年6 月,微軟就宣布了適用於Windows 11 的ARM64EC 。官方稱之為一種使現有x64 應用程序在ARM 平台上獲得近乎原生性能的新方法—— 即便你調用了尚不支持該腳骨的插件和依賴項。轉眼一年過去,ARM64EC 終於迎來了面向Windows 11 的更完整支持。
(來自:C++ Team Blogs)
據悉,ARM64EC 的“EC”,是“仿真兼容”(Emulation Compatible)的縮寫。
其設想是提供一個二進制接口(ABI),以便開發者使用x64 和ARM 代碼構建應用程序。
這意味著ARM 代碼可在Windows 11 設備上原生運行,而其它特定於x64 的代碼則會通過仿真方式運行。
截圖(來自:Windows Blogs)
作為Windows on ARM 項目的一個重要里程碑,ARM64EC ABI 與ARM64 ABI 之間的差異,主要體現在如下方面:
ARN64EC ABI 具有與x64 代碼的二進制兼容特性,且遵循著既有的x64 軟件約定。
其中包括調用約定(calling convention)、堆棧使用(stack usage),以及數據對齊(data alignment)。
這使得ARM64EC 和x64 代碼具有可互操作的特性,基於前者構建的應用程序可能包含x64 代碼,但也不都如此。
因為ARM64EC 本身有一套完整、一流的的視窗二進制接口(Windows ABI)。
經過一年多的開發,微軟現認為ABI 已足夠穩定,能夠從實驗階段過渡到通用發布(GA)。
隨著ARM64EC 17.3 版本的推出,其能夠為開發者帶來諸多益處。
比如開發者能夠逐步更新他們的代碼,讓x64 和ARM 功能同時運行,而無需費心確保他們的整個代碼庫都具有與ARM 平台的兼容性。
當然,在Windows on ARM 設備上,還是原生ARM 代碼的性能要略勝一籌。
不過微軟的想法,是通過持續不斷的代碼庫更新來提升ARM 性能,但又不至於在此過程中丟失任何功能特性。