Win10 ARM版为什么可以运行x86程序?
感谢网友Star2011的投稿
在微软Build 2017开发者大会上,微软宣布ARM版Windows10将会支持x86软件。讨论之前,我们有必要首先回顾下64位Windows如何运行32位应用。

首先聊聊64位CPU,Intel和AMD早期采用了完全不同的策略。Intel为64位设计了全新的IA64架构。由于是原生的64位架构,性能更强,但是对传统X86应用兼容不佳。AMD则选择在原始32位X86指令集的基础上扩展64位X86-64指令集,并且将其命名为AMD64。在兼容原有X86的基础上,同时支持X86-64的扩展64位计算。由于市场对IA64架构反应冷淡,Intel最终按照AMD64的模式推出EM64T技术。类似于AMD64,EM64T包括两种工作模式,传统IA-32模式(传统32位模式)和IA-32e扩展模式(支持扩展64位计算)。最终,IA64逐步退出历史舞台,而采用AMD64/EM64T技术的处理器称为x86-64处理器,简称x64处理器。
对于64位Windows如何运行32位应用,选择有两种。第一,将32位系统库(C :\Windows\System32)移植,并直接在x64处理器(x86-64)上运行32位代码。第二,将32位系统库移植,转换为64位代码,随后在本机运行。WOW64(Windows on Windows64)选择了后者,首先将32位系统库Windows\System32移植至Windows\SysWOW64,随后通过动态二进制编译器,将32位数据类型重新编组为64位,调用约定则自动封装(X86-64对X86指令集的扩展)。最终,无论是32位应用还是64位应用,全部通过调用同样的NTDLL完成与内核的交互,确保了与内核和设备的交互都可以按本地硬件的速度进行。


WOW64系统库(Windows\SysWOW64,移植自32位System32)
Windows ARM运行32位x86应用的方案与64位Windows运行32位x86应用类似。不同是,为了降低二进制翻译器的开销,Windows ARM采用CHPE(Compiled Hybrid Portable Executable)技术,CHPE在X86 DLL中嵌入相同的ARM64代码。唯一的不同是,为了32位x86应用交互,数据类型仍使用32位。64位据类型的封装则在WOW抽象层进行。通过CHPE技术,X86 to ARM64二进制编译器得以高效进行。最终的过程则与64位运行32位应用完全一致,不再赘述。整个开销取决于应用程序代码、系统代码和内核融合的速度。最终,x86应用将获得非常接近于处理器原生性能的运行速度。

相关文章
Win10/Win11系统截图和录屏后都是直接保存的,想要看看截图和录屏默认保存路径,该怎么操作呢?下面我们就来看看详细教程2025-04-22
Win10多余本地账户是删除还是禁用? Windows删除账户和禁用账户的区别
windows10系统中有很多不用的本地账户,是删除账户还是禁用账户好呢?禁用账户与删除账户是两个不同的概念,下面我们就来看看区别介绍2025-04-18
Win10 RP 预览版 Build 19045.5794今日发布:附KB5055612更新日志
微软为Windows 10今日推送了KB5055612,用户安装后版本将升至22H2 Build 19045.5794,这个版本只有两项错误修复,详细请看下文介绍2025-04-16
无需理会! Win10 WinRE KB5057589更新导致0x80070643错误
部分用户在安装 4 月 8 日发布的 WinRE 安全更新 KB5057589 后,可能会再次遇到 0x80070643 错误,微软官方建议用户忽略 0x80070643 错误2025-04-14
Win10 四月累积更新KB5055518发布: 修复打印乱码等问题
微软在4月补丁星期二活动中为Windows 10用户推送了KB5055518累积更新,此次更新包含9项改进,涉及夏令时调整、新增Noto CJK字体支持,并修复了打印乱码、远程桌面工具故障2025-04-09
微软计划在Win10 四月更新将移除任务栏日历弹窗时间秒数显示
微软将在2025年4月8日发布的Windows 10更新中,移除任务栏日历弹窗的秒数显示功能,实际上,这一调整已在3月的可选更新KB5053643中实施2025-04-08
一般情况下,Win10系统的搜索功能都是建立在索引的基础上的,因此如果想要加快搜索索引速度,就想要禁用索引器回退设置,该怎么设置呢?详细请看下文介绍2025-04-01
Win10 22H2 预览版19045.5679今日推送:附KB5053643完整更新日志
微软今日向Windows 10 22H2用户推送了可选更新KB5053643,安装后系统版本号将升级至19045.5679,下面我们就来看看这个版本更新内容2025-03-26
怎么设置禁止用户使用电脑光驱刻录功能呢?对于局域网电脑而言,为了保护电脑文件的安全,我们需要限制用户对电脑设备的访问操作,特别是禁止用户在非授权情况下对电脑设备2025-03-24
Win10三月累积更新KB5053606惹祸:安装失败/系统卡顿/打印机故障
Win10三月累积更新 KB5053606 存在 BUG,有用户反馈安装失败、系统卡顿、打印机故障等问题,不仅影响个人用户,还波及企业客户2025-03-24



最新评论