Hacker News new | ask | show | jobs
by lynguist 34 days ago
Monsieur, on Windows this problem was solved with a large development effort, that's why it goes unnoticed on you. Note that CPU level instruction emulation is literally the easiest problem of emulation. (Why do you think you can't just go and execute Nintendo Switch binaries on your Mac M1? Both run ARM64.)

On Windows, this was is implemented as SysWOW64. WOW64 means Windows on Windows 64. It makes the userland emulation and pretends towards the process that everything around him (incl. drivers) are the 32-bit ones.

Source: Microsoft.

https://devblogs.microsoft.com/oldnewthing/20081222-00/?p=19...

2 comments

WOW64 is not emulation, it's just a second set of libraries exactly like the ia32-libs package on linux. OSX used to have this too but i guess apple got tired of maintaining it
One of the big things here is that Intel and ARM processors are backwards-compatible with 32-bit instructions, even if they are 64-bit processors. Apple Silicon on the other hand is not, which is why Apple completely dropped support before switching.
Newer ARM processors have also dropped 32-bit software support. You need emulation to run 32-bit apps. Apple silicon is based on ARM instruction set. There's no inherent reason it cannot support 32-bit software while ARM processors would.
I did not know this actually; I guess the more accurate statement is that Apple just didn't write emulation code for 32-bit apps for them