2

I've downloaded the Windows ARM64 ISO from https://uup.rg-adguard.net/ and open it with Qemu as in this article. But Qemu is so slow to emulate the whole Windows ARM64 OS (I know emulation << hypervisor). Hence I thought if it possible to emulate a single executable (like arp, ping etc) in Qemu (or with other programs). If yes then how can I do that? If not then why?

  • Try to add --accel tcg,thread=multi. This article might also help. But I don't think you will be able to do too much with ARM64. – harrymc Apr 14 '18 at 17:47
  • 2
    I don't think there is a solution - emulating a totally dissimilar hardware architecture will always be excruciatingly slow, since each ARM hardware instruction is executed by several Intel instructions, using memory instead of hardware registers, so can be dozens of times slower. I don't know of any other virtualisation product that supports ARM except QEMU, so cannot advice another emulator. Get a Raspberry Pi if you wish to play with ARM architecture at native speed. – harrymc Apr 15 '18 at 11:45
  • My goal is to compile and debug a program in Windows 10 ARM. – Biswapriyo Apr 15 '18 at 12:22
  • You can do it with QEMU, but you would need to be patient. – harrymc Apr 15 '18 at 13:47
  • You can find instructions on creating the VM, and you can also download pre-made VMs. Do you wish me to post an answer with this information? – harrymc Apr 15 '18 at 17:27
5
+50

If the QEMU emulator for the ARM computers is too slow, you could try the Microsoft Device Emulator 3.0 -- Standalone Release. You could find some information in the article Developer’s Guide to the ARM Emulator, although it dates from 2005 and is about Microsoft Device Emulator 2.0.

The Xen Project has also announced Support for ARM CPUs, although I don't know how advanced is that development and it is unclear whether it can emulate ARM or just run on an ARM physical CPU. It is another emulator that you could try.

If you wish to use ARM architecture at native speed, the only solution is to get an ARM device. The Raspberry Pi is a cheap possibility here.

For getting a ready-made image with Raspberry Pi on QEMU, see the project Raspberry Pi emulation for Windows. It comes with a run.bat file and you need to run it and follow instructions.

If all you wish is to play with ARM assembler programs, you could use CEMU, supporting Arm/AArch64, and described as :

a bundled GUI application that empowers users to write assembly and test it by compiling it to bytecode and executing it in an QEMU-based emulator.

Instructions on constructing and also ready-made virtual images can be found in the Azeria ARM Lab Environment. They also furnish an ARM Assembly Basics Cheatsheet

Some more useful information may be found in these resources :

  • This article mentions the Microsoft Emulator for Windows 10 Mobile, but I don't know it it helps. The Surface RT uses ARM, but I don't know of any images. – harrymc Apr 15 '18 at 19:44
  • I'm thinking about running a ARM64 Windows executable in ARM64 Wine (if available) in X64 Linux. Will it work? – Biswapriyo Jun 2 '18 at 15:13
  • @Biswapriyo: Sorry, I cannot help there. You may need to try and see. – harrymc Jun 2 '18 at 17:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.