Windows on Arm is production ready!
A Blog from Mike Irving, Software Developer
By Mike Irving - Published: 28/4/2024
There have been many versions of Windows that have ran on Arm based processors, or other non x86/x64 platforms, when we think about it: Windows CE, Windows Mobile, Windows Phone, Windows 10 for IoT to name but a few.
Away from specialised outlets, there have also been several attempts to bring the regular Windows PC experience to Arm.
Windows RT was a build of Windows 8 for Arm that allowed Arm built apps to run in a familiar environment. Microsoft Office and other Microsoft apps were available, but a lack of developer enthusiasm for porting apps meant a problem with consumer software. Thousands of software packages, used by millions across the globe each day, were never ported to Arm architecture.
Windows 10 on Arm represented a new beginning: Being able to run both native Arm apps, and the ability to support x86 (32-bit) Apps via emulation.
Windows 11 on Arm has built upon this, and also now offers x64 (64-bit) app emulation, in theory supporting any application you could care to run. Alongside this, many Windows on Arm computers have come to market, including the Surface Pro X. Microsoft also launched a Windows Dev Kit, specifically aimed at those developers wishing to develop Windows apps for Arm.
An external factor for the full-on drive to Arm by Microsoft, including x86 and x64 emulation, could be attributed to Apple.
Apple launched the M1 series of Macintosh computers in late 2020, to rave reviews, and offering x64 emulation at launch.
x64 emulation was then a must have for the Windows 11 version of Windows on Arm.
Perhaps fitting then, that I have been using Windows 11 for Arm, not on a dedicated Arm based Windows laptop, but on a MacBook, as a Virtual Machine, via Parallels Desktop.
This is an officially supported way to run Windows 11 for Arm, and it is fantastic.
Installation is straightforward, download Parallels Desktop, and the Installer will guide you through the process, including downloading the Windows 11 image.
So let's take a look. Once installed, open Parallels, choose your Windows 11 installation, and click Start...
What boots, and in just a few seconds, is a fully fledged Windows 11 installation, more or less identical to one on an x86 or x64 PC.
Visual Studio for Arm
I mentioned that x86 and x64 Apps can run via emulation, but many apps are now available with proper native Arm builds, offering better performance and battery life.
This includes your favourite IDE. There is now a fully featured Visual Studio for Arm
Official Announcement: Arm64 Visual Studio is officially here!
Go ahead, install direct from the Visual Studio website, and fire it up.
You'll see the familiar Visual Studio 2022 Start Screen, and the New Project Screen will allow you to pick your usual project types, such as .NET MAUI Apps.
Create or Load a project, or "Continue without code" and you'll be instantly at home.
Still not convinced at what you are seeing? Load up the About Microsoft Visual Studio screen, and you'll see we are running Microsoft Visual Studio (ARM 64-bit), with all the relevant components and build numbers listed.
The performance is great, trouble free, and exactly as you'd expect on a non-Arm computer.
So what about other Apps?
Well, let's talk browsers. Microsoft Edge, as you'd expect, is a full Arm build.
Until recently, Google Chrome was only available for Arm in a Canary build. For the regular Google Chrome, you had to choose x86 or x64 builds, to run via emulation.
Here, pictured, are Microsoft Edge (arm64), Google Chrome Canary (arm64) and Google Chrome (x86 / 32-bit), running in emulated fashion.
Regular Google Chrome is now available in arm64 flavour, so should I wish to I could uninstall the x86 version, and swap over.
So yeah, this really is the full Windows 11 experience, seamlessly combining apps from different architectures.
Over time it is likely, and encouraged, that more app vendors will produce specific Arm builds of their software.
How can we tell which apps are Arm native?
Well, one clue is to look in Task Manager, here we see Google Chrome is listed as 32-bit.
You could also look at your hard drive.. you'll notice there are three "Program Files" folders.
.. however, this can be misleading, as certain apps don't necessarily get installed in the correct folder.
A better way to check is to use a program such as Sigcheck, part of Sysinternals.
Using Sigcheck below, we can see that our shown apps are a mix. Character Map is 64-bit ARM, Scanners and Cameras is 32-bit (x86) and Audacity is a 64-bit (x64) build.
.. all happily running side by side.
Talking of "side by side", running on Parallels Desktop on macOS means that Windows can be ran alongside your Mac apps.
but we can also go a step further with Parallels "Coherence" mode.
From the Parallels App Icon, choose View > Enter Coherence
Once enabled, you lose the Windows Start Menu, and Windows Apps then sit completely side-by-side with Mac applications!
Impressive to see, but Coherence can be hit-and-miss with multi-window applications.
I prefer to run in regular mode, with a full Windows Desktop experience.
Parallels Desktop also shares your folders and Desktop, between Windows and macOS, by default. The VM can also be tweaked to specify the number of processor cores and amount of RAM allocated, along with other advanced setup options.
All apps?
Not "all apps" may run. But generally, if there's going to be a problem, it'll be down to hardware requirements of specific software, or drivers.
I'm not new to Parallels, having used it for years for Xamarin work, but this has been my first time running on Arm. My installation has been running for around 6 months now, and I'm really pleased with it.
Go ahead, try it out. If you have an M-series Mac, download a trial of Parallels Desktop and you can test out the experience without further commitment.
Further reading: Microsoft Learn - Windows on Arm
View Blog Entries...
Page: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11