Hacker News new | ask | show | jobs
by saagarjha 2031 days ago
Rosetta is an emulator.
1 comments

“an emulator is hardware or software that enables one computer system (called the host) to behave like another computer system” (Wikipedia).

This is not the case for Rosetta 2, which does a translation pass before running the generated ARM binary. No x86 code is run.

I'd argue that "translation" is an implementation detail of emulation. Your translated app still thinks it is x86-64 (witnessed by running "uname -a" in a Rosetta terminal.)
That's just the difference between a JIT and not - something like QEMU in the other direction doesn't "run" ARM code either, but in the end it really doesn't matter and is only a minor pedantry.