Windows 10 can run on 64-bit ARM CPUs. The operating system's %PROCESSOR_ARCHITECTURE% environment variable shows ARM64 - meaning that its a 64-bit operating system running on ARM. This operating system can run 64-bit ARM applications, plus it can run 32-bit ARM applications (%PROCESSOR_ARCHITECTURE%=ARM) and 32-bit IA-32/x86 applications (%PROCESSOR_ARCHITECTURE%=x86) through the Windows on Windows (WOW) compatibility/emulation layer.

Windows also released a few 32-bit ARM operating systems. The recent ones I know of are:

  • Windows RT (Windows 8 / Windows 8.1 on ARM)
  • Windows 10 Mobile
  • Windows 10 IoT Core
  • (there may be others; if I am missing any, please drop a comment!)

My question is: can any of the 32-bit ARM operating systems run Intel IA-32/x86 applications through the WOW compatibility/emulation layer? If so, which? Or do all 32-bit ARM Windows operating systems lack a WOW subsystem for these x86 applications?

(I know that Windows RT does not support any x86 applications, but I am not sure about the others. I'm also not sure that my bulleted list is complete)

Related question: https://stackoverflow.com/questions/66004902/is-there-a-programmatic-way-to-determine-which-application-processor-architectur

  • To scope the question and exclude operating systems like Windows CE, I'm only really interested in versions of Windows capable of running PowerShell or maybe VBScript. Thanks! – Frank Lesniak Feb 2 at 6:31
  • The Surface Pro X runs Windows on an ARM processor and has 32-bit x86 emulation. 64-bit emulation is on the way. I doubt this is supported in 32-bit builds, IoT, RT, or mobile editions of Windows, you probably need to find an image for the full version of Windows 10 for your device. – Mokubai Feb 2 at 8:17
  • More information about Windows-on-Arm x86 emulation blogs.windows.com/windows-insider/2020/12/10/… – Mokubai Feb 2 at 8:23
  • Windows on ARM is only sold on compatible devices with specific ARM processors. – Ramhound Feb 2 at 10:22
  • 1
    @FrankLesniak hence why I only posted a couple of comments, reading your question it was not 100% clear that you knew that x86-32 emulation was available on ARM64. I suspect from the GPU driver support required by x86-32 on ARM64 (from that blog page) that it uses the GPU (or features provided by modern hardware through it) to do fast JIT compiling and hence requires a minimum hardware baseline which may well put it outside of being possible on older ARM32 systems. Repurposing old hardware that does not support this use case may not be workable. – Mokubai Feb 2 at 14:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.