I mean: This build(including both x86 and ARM architecture drivers) can run on an x86 computer, and can run on an other ARM device.
I know that right now, there is no such CPU that supports both instruction sets. But in theory, will it come true? When powered up, the CPU can check which instruction sets the program is in?
This is mainly a question of support in the bootloader, and what the OS does once loaded. It’s not only theoretically possible, OSX kernels (
/mach_kernel) for versions 10.6.x-10.7.x come as universal i386/x86_64 binaries:The 10.5.x kernel even came as a i386/PowerPC universal binary:
The bootloader (Apple’s EFI firmware implementation (x86) or OpenFirmware (ppc) in the case of OSX) will need to support the “fat” binary format and be able to decide on and run the correct one. Of course, once the kernel is loaded, it needs the entire support infrastructure of the rest of the operating system to be available in a compatible format in order to do anything useful.
Note that older versions of OSX even shipped with “Rosetta”, a runtime binary translation system for running PowerPC binaries on an x86/x86-64 CPU.
To be clear, it’s completely irrelevant that the x86 and ppc versions of the kernel are stored in the same file.