其中比较重要的是 SysArm32 System32 SysWOW64。这三个文件夹基本对应了 ARM32 ARM64 x86。你会发现这里并没有 x64,那么 Windows 是通过什么方式保证 x64 兼容性的呢?是靠 ARM64X。但在开始之前,我们先回顾 Arm 兼容 x86 的方法。
Arm 与 x86
在 Arm 上,我们能找到 SysWOW64 文件夹,里面的文件全部是标准的 x86 架构的二进制文件,而 x86 应用在调用的时候就会直接调用该文件夹下的文件,就像在 x64 系统上一样。但是由于 Arm64 无法“理解”(执行)x86 的指令,所以要通过翻译,将其翻译为 Arm 架构的指令才能运行。所以在 Arm 上,系统通过 xtajit.dll 将 x86 指令即时翻译为 Arm64 指令。但是这样一来连系统提供的二进制文件也要翻译,效率太低,所以微软后面引入了 SyCHpe32。SyCHpe32 包含了 x86 与 Arm64 ,能够提升运行效率,可近似理解为后文所说的 Arm64EC 的工作模式。
Arm 与 x64