EMULATION MAKING WINDOWS ON ARM GREAT AGAIN How do the latest laptops and Macs run Intel software on their ARM processors? Darien Graham-Smith explores the wonderful world of emulation
  MICROSOFT’S ‘COPILOT+ PCS’ are supposed to usher in a new era of AI-assisted computing, but they’re historic in another way, too. With surprisingly little fanfare, Microsoft has for the first time endorsed a range of third-party laptops based on a mixture of AMD, Intel, and ARM processors.
This isn’t the first time it has offered a version of Windows that runs on ARM architecture, but it might be the first time the idea succeeds—as the OS now has an emulation layer. Conceptually, this is much the same as the software tools that let you tinker with a virtual BBC Micro inside a web page, or revisit Amiga games on your phone. In this case, it’s designed not for historical purposes, but to allow the latest Intel-native apps to run on the ARM hardware.
It’s a similar approach to what Apple did with the launch of its M-series processors, and it promises the best of all worlds, combining Windows’ huge existing software library with the efficiency and battery life of ARM. If you’re curious as to how we’ve got here, and what emulation could mean for your next laptop, read on.
The Surface Pro 11th Edition is powered by Snapdragon chips.
NO EMULATION, PLEASE—WE’RE WINDOWSMicrosoft has a long history of developing Windows for multiple different hardware platforms. In the 1990s, you could buy versions of Windows NT not only for the familiar Intel x86 platform, but also for rival workstation and server systems, such as PowerPC, DEC Alpha, and MIPS—each with its own proprietary instruction set architecture (ISA). In the early 2000s, support was added for Intel’s 64-bit Itanium platform, too.
However, Microsoft made no attempt to bridge the gap between these different platforms. Each edition of Windows only worked with software and drivers that had been compiled for that particular architecture. The result was a highly fragmented market that wasn’t ideal for anybody—certainly not Microsoft, which was at one point simultaneously developing and supporting Windows for at least five different hardware platforms. Partly for this very reason, the competing ISAs gradually died away, and by 2010, Windows was only available for the Intel architecture.
Remember the Surface RT, Microsoft’s first attempt to put Windows on ARM?
© ASUS, MICROSOFTTHE WOW64 STARTS NOWIronically, while Microsoft was jettisoning non-Intel architectures, it rapidly found itself having to build new emulation features into Windows. In 2000, AMD introduced the AMD64 architecture, an extension of Intel’s x86 ISA that enabled support for 64-bit addressing—meaning PCs could use more than 4GB of RAM, and work more quickly and efficiently with larger data structures.
At first, Microsoft ignored AMD64, seemingly believing that the 64-bit future lay with the Intel Itanium architecture. But while IA-64 was a completely new ISA that couldn’t run x86 apps, AMD64 included native support for 32-bit versions of Windows and applications, making it a much more attractive choice for general-purpose computing. By 2004, Intel had started licensing AMD’s 64-bit extensions for use in its own x86 chips under the not very imaginative name ‘Intel 64’. Itanium fell by the wayside, and the new x86-compatible 64-bit platform—now commonly known as x86-64, or just x64—started to become ubiquitous.
You might be wondering: if the whole point of x64 was compatibility with older x86 code, where does emulation come in? The answer lies in the interaction between the OS and the hardware. Taking advantage of the chip’s 64-bit capabilities required a 64-bit edition of Windows: the first of these was Windows XP Professional x64 edition, released in 2005. From Vista onward, all releases of Windows were offered in both x86 and x64 flavors.
But because 64-bit Windows used larger address spaces, additional registers, and other extensions, it wasn’t directly compatible with programs designed for the 32-bit version. For older applications, Microsoft designed an emulation system called WoW64 (Windowson-Windows 64-bit), on the same lines as the old WoW32 component in Windows NT that allowed the 32-bit OS to run old 16-bit applications.
The WoW64 framework includes a set of libraries that translate 32-bit operations into 64-bit compatible forms, and automatically ‘redirects’ certain operations to keep 32-bit and 64-bit components apart. For example, when 32-bit apps try to access the Registry, the OS redirects operations to a separate 32-bit datastore, and 32-bit apps install and run in a folder called ‘Program Files (x86)’—aside from the main ‘Program Files’ folder, which is reserved for 64-bit code. The actual program code, however, runs on the processor unmodified, so there’s almost no impact on performance or system resources.
WINDOWS ON ARMYou could make a case for WoW64 being the world’s most popular emulation layer, since it’s included in almost every copy of Windows in use. However, it’s not exactly ambitious, and some say it barely qualifies as emulation, since rather than emulating a CPU, it emulates a different version of Windows. The same can’t be said for Microsoft’s most recent emulation project, which aims to allow Windows apps written for the Intel architecture to run smoothly on a computer with an ARM processor.
Running Windows on ARM processors isn’t new. Cast your mind back to 2012, and you may recall the Microsoft Surface. This was built around an ARM-based Nvidia Tegra 3 T30 chip, and ran an ARM-based version of Windows called Windows RT.
At first glance, you could mistake Windows RT for Windows 8. The two were launched simultaneously, and offered nearly identical interfaces. However, as with previous non-Intel editions of Windows, RT could only run applications compiled for its hardware platform. You couldn’t even install Intel apps, as the Surface was restricted to software offered via the new Windows Store.
Microsoft spun these restrictions as a plus point: viruses and other security threats wouldn’t work on the new platform, and the sandboxed Store framework helped block new exploits. The simpler, cleaner app model also meant the operating system could be more streamlined and efficient. Even so, the lack of compatible software made RT a lame duck, and when Windows 10 was released in 2015, the ARM platform was dropped. It seemed as if the idea of Windows on ARM might be dead forever.
Clearly, though, it wasn’t. In the following years, Intel went through a period of stagnation, while ARM chips became faster and more energy-efficient. In 2019, Microsoft unveiled a new sort of Windows device dubbed the Surface Pro X. Rather than being a lightweight cousin to the Surface Pro, like the original Surface, the Pro X was positioned as a slick and stylish alternative, with a sexy name and full-sized screen. It featured a new ARM-based Microsoft SQ1 processor, developed in partnership with Arm veterans Qualcomm.
RUNNING WINDOWS ON ARM PROCESSORS ISN’T A NEW IDEA. CAST YOUR MIND BACK TO 2012, AND YOU MAY RECALL A LITTLE COMPUTER CALLED THE MICROSOFT SURFACE The Surface Pro X gave Windows on ARM a new lease of life.
© MICROSOFTMost significantly, it ran a new ARM-native build of Windows 10, known as WoA. As with Windows RT, it looked and felt almost identical to the Intel version—but for the first time, it included a realtime emulation layer allowing Intel apps to install on this non-native hardware.
THE LONG AND WINDING ROADEven in the first edition of WoA, the Intel emulation layer was pretty seamless. Unlike Windows RT, the OS allowed you to freely download and install software from anywhere, with the Windows Store and other software distribution tools serving up ARM packages where they were available, or falling back to Intel if they weren’t. Programs compiled for Intel would automatically run in emulation mode alongside native apps, and you normally wouldn’t even know it was happening: as with WoW64, the apps themselves didn’t know they were running under emulation unless they’d been coded to detect it. The main thing that couldn’t be emulated was low-level device drivers, so if you wanted to use weird and wonderful hardware devices, or play games designed for high-end GPUs, you’d need to use ARM-native software.
In the initial WoA release, however, there was one other limitation. Although the Surface Pro X system was 64-bit through and through, the bundled Intel emulator only supported 32-bit x86 apps; anything for x64 wouldn’t run.
This immediately ruled out the latest versions of many applications—after all, 64-bit Windows was at this point 14 years old. It also meant that although the Surface Pro X came with 8GB of RAM as standard, no more than half was accessible to any x86 app. Even if an x86 app would run, emulated performance could be laggy: the emulator was a work in progress and, unlike Apple’s M-series processors, the SQ1 chip lacked any custom silicon designed to speed up the translation from one ISA to another (it was basically a lightly tweaked version of Qualcomm’s general-purpose Snapdragon 8cx).
Thankfully, only early adopters using Windows 10 on ARM had these issues. Windows 11 was developed as a dual-platform OS, and the ARM edition introduced an emulation layer that’s fully compatible with 64-bit code, along with a new hybrid emulation model—a framework called Arm64EC (‘emulation compatible’), which lets programs use a mixture of native ARM code and x64 components. This means developers can build mostly ARM-native programs that only use emulation for OS components that aren’t directly supported on ARM, allowing for performance gains without requiring deep refactoring. If you’re curious which mode a program is running in, open the Task Manager and check the ‘Architecture’ column: this will show ‘x86’ for emulated code, ‘ARM64’ for native processes, or ‘ARM64 (x64 compatible)’ for Arm64EC.
GETTING BETTERAs well as a new emulation platform, Windows 11 has seen an explosion of hardware options, with the first wave of Copilot+ PCs offering ARM-based Windows laptops from both Microsoft and third-party manufacturers, all based on Qualcomm’s Snapdragon X chips. You might rarely even need emulation. Almost all the biggest apps are available for Arm: Qualcomm’s website namechecks native WoA packages, including Adobe Photoshop, Affinity Photo, CapCut, Cubase, DaVinci Resolve, Dropbox, Slack, Zoom, most major browsers, and a wide range of security and VPN software ( tinyurl.com/365armapps). A Microsoft survey found that more than 90 percent of ‘total app minutes’ on an ARM-based Copilot+ PC were spent using Arm-native software.
  Apps such as Affinity Photo, Slack, and Zoom are available for WoA.
© AFFINITY PHOTO, SLACK, ZOOMWhile no partnership has been announced, from the original Surface Pro X to the latest Copilot+ PCs, every WoA device has used a Qualcomm processor. It’s understood that Qualcomm has been involved in the development of the emulation layer, so it’s being developed by those best placed to understand the chip architecture, and continue to optimize translation.
The Windows 11 24H2 update for ARM processors introduced a new version of Prism, its emulation layer. As well as supporting the Intel instruction set, Prism emulates several optional x64 CPU extensions, including AVX2, BMI, and FMA, which can accelerate types of data operations while reducing energy consumption by using dedicated hardware. Microsoft’s support pages on emulation note that “some performance features within Prism require hardware features only available in the Snapdragon X series”. In other words, WoA is starting to benefit from hardware optimizations.
There’s one big difference: while Apple has historically used emulation to smooth over a wholesale switch from one platform to another, there’s no suggestion that Microsoft is planning to ditch Intel support. Rather, the expectation is that Windows will support both x64 and Arm platforms indefinitely, so you can pick the model that best suits your needs, without having to worry about what sort of processor it has inside.¦ |