The libraries would probably be easy. We’ve already got x86 and amd64 libraries on the same machine, but the kernel I imagine would be awful. Would two kernels have to run on the same machine? What about memory access? What about the scheduler? Would it really be more efficient than emulation? For every x86 instruction, there is either an equivalent instruction or an equivalent set of instructions for ARM.
The libraries would probably be easy. We’ve already got x86 and amd64 libraries on the same machine, but the kernel I imagine would be awful. Would two kernels have to run on the same machine? What about memory access? What about the scheduler? Would it really be more efficient than emulation? For every x86 instruction, there is either an equivalent instruction or an equivalent set of instructions for ARM.
Correct me if I’m wrong, but afaik, applications talk through APIs. It shouldn’t matter if app runs x86 and kernel is ARM
But the code that loads other code (launches an app, switches to it, etc) needs to be running on the same CPU, afaik.