Windows 10 on cpu ARM: executable format.

All development related issues welcome

Moderator: Moderator Team

Post Reply
Carlo Bramix
Posts: 282
Joined: Thu Jan 04, 2007 12:43 am
Location: Italy

Windows 10 on cpu ARM: executable format.

Post 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.
val
Posts: 69
Joined: Fri Feb 10, 2017 5:22 am

Re: Windows 10 on cpu ARM: executable format.

Post 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.
User avatar
Michael Long
Posts: 40
Joined: Wed Oct 25, 2017 7:51 pm

Re: Windows 10 on cpu ARM: executable format.

Post 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
User avatar
binarymaster
Posts: 481
Joined: Sun Nov 16, 2014 7:05 pm
Location: Russia, Moscow
Contact:

Re: Windows 10 on cpu ARM: executable format.

Post 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
Post Reply

Who is online

Users browsing this forum: No registered users and 11 guests