ARM64 vs x64 emulation on Windows on ARM

x64 applications on Windows on ARM run through a translation layer that Windows provides. A native ARM64 terminal removes that layer for the terminal itself. The programs you run inside it are separate processes, and each one has its own story: this page is about the terminal.

How an x64 application runs on an ARM machine

The ARM64 processor does not execute x64 instructions directly. Windows translates them as the application runs: the operating system itself is native ARM64, and an x64 program is the thing moving through translation. The layer is designed to be transparent, and for a great many programs it is. It is still work between the program and the processor.

What the emulation layer means for a terminal

A terminal is not a pass-through for the programs running inside it. The window, the grid, the font shaping, the escape-sequence parsing and the rendering path are all the terminal's own code, and that code is what runs under translation when the terminal is an x64 build. The shell and the tools it starts are separate processes with separate architectures. A terminal's own code is the part a native build changes.

What a native ARM64 build removes

The ARM64 build of Wintty is ARM64 code, so the terminal's own work is not translated. That is the whole claim: one less layer under the terminal. It does not make the terminal's output arrive sooner by some measured factor, and this page will not pretend it does.

What it does not remove

Your shell, your toolchain and everything you launch from the terminal are their own processes with their own architectures. An ARM64 terminal does not make an x64 node native, and it does not change how an x64 program performs. If what you run is x64, it still runs the way it ran before.

What we have measured: nothing

No benchmark, on any Windows on ARM machine, by anyone here. The project has no ARM hardware to test on, which is exactly why the ARM64 build is labelled experimental even on its stable channel. The structural statement above is what the project can honestly say today; a number would be a guess wearing a decimal point. If you run it and have something to report, the issues page on GitHub is where it goes.

How to tell which build you have

On Windows 11, Settings > Apps > Installed apps lists the architecture in the app's details, and Task Manager's Details tab shows it per process. If the build you installed is x64 on an ARM machine, that is the emulated one; the install page for ARM covers getting the native one.

The Windows on ARM page keeps the current state of the ARM64 build and its installers, the Snapdragon X page covers that hardware specifically, and the docs have the install steps.

FAQ

Is the ARM64 build a different terminal or the same one?

The same terminal, built for the ARM64 processor. It ships on its own channels under the same sponsorship as the x64 build, and it installs and updates the same way.

Does a native ARM64 terminal change how x64 programs run?

No. The shell and the programs launched from the terminal are separate processes with their own architectures, so an x64 program still runs through Windows' translation layer. What the native build changes is the terminal's own code.