4 ms·
It's probably doable because VMware did something very similar about 20 years ago, back before x86 had virtualisation hardware. That was x86 on x86, but it too
by jlokier 6y ago
It's probably doable because VMware did something very similar about 20 years ago, back before x86 had virtualisation hardware.
That was x86 on x86, but it took a similar level of sophistication then as with cross-architecture "software virtualisation" now to run all 32-bit Windows software, as well as all 16-bit software, other OSes such as Linux, BSD and MS-DOS and Netware, etc.
Considering all the things around like self-modifying code, generated code, thunks etc in Windows and other OSes and applications, VMware did a great job of scanning all code for entry points, intercepting every path that couldn't be executed directly, patching what needed to be patched.
I expect they can revive that approach with cross-architecture translation now, and I would be very surprised if VMware and Parallels are not working on exactly this for x86-on-ARM VMs right now.