微软Windows 10 ARM设备运行桌面程序的原理
微软公司近期在高通举办的技术峰会上联合OEM制造商正式宣布推出基于 ARM 处理器的Windows 10 设备。
早在年中举办的微软开发者大会上该公司就演示了ARM设备上运行Windows 10系统和多款Win32桌面程序。
不过从最近的发布会上来看 Windows 10 ARM 设备尽管续航能力可以达到20个小时但不支持64位桌面程序。
那么为什么Windows 10 ARM无法运行64位桌面程序呢?微软又是如何在ARM架构上运行 x86 系列程序呢?
答案就是x86模拟器:
从下图中我们可以看到x86类应用程序实际是运行在基于ARM处理器的x86模拟器中(下图右侧中部深红色)
而下图中左侧部分可以看到诸如Windows、Edge浏览器、Shell是直接兼容ARM架构而非运行在x86模拟器。

同理所有的微软商店应用程序( UWP 类)可以直接运行不需要模拟器,需要模拟器的主要是传统桌面软件。
所以在Windows 10 ARM设备中可以运行的只有 UWP 应用程序和在x86模拟器中运行的32位传统桌面程序。
而且在微软看来实际上微软是继续推崇大家使用UWP 程序的,例如这些设备预装的系统为Windows 10 S版。
Windows 10 S 版本身就会限制运行所有桌面程序, 用户如果想要解除这个限定的话需要升级到专业版等等。
虽然现在到2018年3月底所有 Windows 10 S 设备可免费升级专业版,不过到期后用户再升级就要单独付费。
付费的话可能也没有多人愿意升级Windows 10专业版了,不付费的话那么就只能使用UWP类商店应用程序。