Nice high-level overview from Apple’s developer documentation team. One pedantic note worth emphasizing (I made this mistake in my M1 MacBook Pro review) — Rosetta is translation, not emulation, and technically that’s a big deal:
To the user, Rosetta is mostly transparent. If an executable
contains only Intel instructions, macOS automatically launches
Rosetta and begins the translation process. When translation
finishes, the system launches the translated executable in place
of the original. However, the translation process takes time, so
users might perceive that translated apps launch or run more
slowly at times.
The system prefers to execute an app’s
arm64 instructions on
Apple silicon. If a binary includes both
instructions, the user can tell the system to launch the app using
Rosetta translation from the app’s Get Info window in the Finder.
For example, a user might enable Rosetta translation to allow the
app to run older plug-ins that don’t yet support the