Looking for the way to build a software under Windows arm64 while using Windows 10 x64 as a host.
Search engine didn't show useful results.
AI mentioned some "ARM64 Emulation Tools (Hypervisor Platform)" but further searching didn't give results.
- 141
2 Answers
This is impossible. A virtualizer like Hyper-V allows multiple Operating Systems to use the existing CPU, pretending they are the only ones using it.
You want to run on OS which requires an ARM CPU on a host that has an AMD64 CPU. A virtualizer cannot do that, on principle. It doesn't matter which virtualizer you use (Hyper-V, VMWare, VirtualBox, Xen, KVM, …) since that is simply what virtualization means.
What you need is an emulator such as QEmu.
- A virtualizer makes physical hardware that exists virtually available to more than one guest.
- A para-virtualizer does the same thing, but the guest knows that it is being virtualized and can thus use more efficient ways to talk directly to the para-virtualizer instead of having to pretend it is talking to physical hardware.
- Virtualizers are also sometimes called hypervisors, because in the olden days, Operating Systems were also sometimes called supervisors (and the privilege level on CPUs that the OS runs in is still called supervisor mode on many CPUs) and the hypervisor is "one level up" in privileges from the OS: Hyper > Super.
- An emulator "fakes" hardware that does not physically exist.
- A simulator is essentially an emulator, but with a specific purpose – usually, you want to measure something, test something, observe something, etc. For example, in my work, I often use a network simulator. This network simulator does not behave like a real network in lots of ways, but it does behave "close enough" to a real network in the aspects where it matters to me. I like to say that "a simulator is an emulator on a mission". Basically, you use an emulator because you want to run some piece of software in order to use it, you use a simulator because you want to run some piece of software in order to study some aspect of its behavior.
[But note that the usage around the terms emulator and simulator is not consistent. If you see those terms somewhere, you will almost always need to check how they are defined. If you use those terms yourself, it is best to explicitly define them.]
This can get somewhat confusing because almost all virtualizers still need to emulate some devices. For example, almost all virtualizers are able to emulate hard disks and network devices. Ever since Windows 11 requires a TPM 2.0 to work, most AMD64 virtualizers are also capable of emulating a TPM 2.0. However, they never emulate the thing that matters most: the CPU. (OTOH, they may emulate certain specific instructions of the CPU.)
Also, because QEmu – which was originally a pure emulator, as the name implies – is generally well-written, very fast, and supports a ton of platforms and emulated devices, several virtualization technologies have just re-used its codebase instead of starting completely from scratch. So, the combination of KVM for virtualizing the CPU and QEmu for emulating BIOS/UEFI, network cards, hard disks, etc. is pretty common, and is sometimes just called "QEmu", further adding to the confusion.
- 3,959
This is possible, although not as simple to do as building a VM for a non-ARM Windows release.
The article How to Set Up a Windows 11 ARM64 Virtual Machine in Hyper-V contains a detailed description of the methodology to use, which includes instructions on converting the ISO to a VHDX file (since direct installation is impossible).
Useful references :
- How to emulate ARM64 programs in Windows X64 with Qemu?
Uses Microsoft Device Emulator for emulation - How can I virtualize an ARM machine in Windows?
Links to an image which contains everything needed to emulate the Raspberry Pi in a Windows environment with QEMU.
- 498,455