Page 1 of 1

Windows 10 on cpu ARM: executable format.

Posted: Sat Aug 05, 2017 3:49 pm
by Carlo Bramix
As some of you probably know, Microsoft announced the support for Windows 10 on ARM CPUs, limited to the latest Qualcomm core, from what I have read.
Although it has been declared that it will support execution of x86 instruction with an emulation engine, I'm wondering if there are some information about the type of executable format to be used for the native code. In the past, a format for supporting ARM COFF-PE executables existed in GCC, limited to WINCE platform, but dropped by the free toolchain since version 4.7. I did some research on MS dev network, I found some pages on the support for ARM, but no useful tips about this topic.

In my opinion, it would be a good idea to collect this information and include it into the ARM port of ReactOS, although it seems to be not progressing by years...

Sincerely.

Re: Windows 10 on cpu ARM: executable format.

Posted: Sat Aug 05, 2017 8:31 pm
by val
well, I think it's no brainer, what a format is used. Of course PE/COFF.
and I don't understand what you are going to "collect" with this respect? Everything ARM specific has been documented in the open PE specification awhile ago.
Honestly, I don't know if MS provides arm targetting for WDK or is going to do so in future, or broadly if it is going to make the ARM port of Windows as open as x86 is (open as a platform, for 3d party native development, both in kernel and user modes). If it does, you have everything you need from the toolset perspective.
if your tool doesn't support PE targets, you need to write a translator. Like Tianocore project does. Or me, I am working on a MIPS firmware and it uses PE. My toolchain doesn't support PE generation. So I need ELF to PE translation. It's not the hardest part of the project.
you noticed right about the ARM port status, unlike choosing a format and dealing with it, the port by itself is not a trivial task. And first, the ARM support in ReactOS should yet happen.

PS. I am specializing on ARM/MIPS architectures and I adore NT, so personally I am very interested in the ReactOS arm port.

Re: Windows 10 on cpu ARM: executable format.

Posted: Fri Oct 27, 2017 9:50 pm
by Michael Long
The file format for executables and libraries which is used in other versions of windows is compatible with the ARM architecture. Microsoft Corporation made some small changes to this file format regarding the ARM architecture in the last years.

I am not a hundred percent sure if this information helps: There is a very comprehensive unofficial documentation about PE32. Unfortunately the document is in german and the website doesn't give much about the ARM architecture. PE32+ (that's the 64 bit version) is not covered. But it has a lot of information you won't find in the official document.

FTP://ontheserver.de/entpackt/Dokumenta ... eutsch.htm

Re: Windows 10 on cpu ARM: executable format.

Posted: Sat Nov 04, 2017 8:39 pm
by binarymaster
Windows 10 on ARM uses same PE/COFF format with machine architecture id 0xAA64 (AArch64 / ARM64).

That was recently fixed in ReactOS headers:
https://github.com/reactos/reactos/comm ... 8c84b0048b