3 ms·
> Is it a virtual machine? Yes. Yes it is. Mostly. > It is, essentially, a 68040 emulator with a Mac ROM and System 7.5.3 sitting on top of it. It sounds like
by adrianmonk 5y ago
> Is it a virtual machine? Yes. Yes it is. Mostly.
> It is, essentially, a 68040 emulator with a Mac ROM and System 7.5.3 sitting on top of it.
It sounds like they basically reused the same design that they used to build PowerPC Macs that could run (legacy) Motorola 68k applications.
https://en.wikipedia.org/wiki/Mac_68k_emulator https://en.wikipedia.org/wiki/Mac_68k_emulator
When you ran a legacy 68k app, the code of the app itself ran under CPU emulation. But they ported some of the system to PowerPC, and when the legacy app called into those particular parts of the system, that part of the code ran natively. Some lucky apps (with the right workload) ran surprisingly fast.
Looking at the MAE architecture diagram, it looks very similar, with some of the Mac system sitting atop the 68k emulator but some of it sitting atop a layer that doesn't go through emulation.
- marcodiego 5y ago> When you ran a legacy 68k app, the code of the app itself ran under CPU emulation. But they ported some of the system to PowerPC, and when the legacy app called into those particular parts of the system, that part of the code ran natively. Sounds like qemu-user.
- jchw 5y agoI think qemu-user is a cleaner split due to the syscall interface being the barrier. IIRC, what Apple was doing was a bit more interesting because there wasn’t a clean boundary between what was emulated and what was native.
- marcodiego 5y agoSo it is like box86, which translates some API calls?
- jchw 5y agoIf I’m not mistaken, System 7 itself was not entirely ported to PowerPC. So the OS itself still needed m68k emulation for some components. But yes, box86 sounds a bit closer based on my understanding.
- kbob 5y agoDifferent code bases. MAE was developed in parallel with, and started a little earlier than the PowerPC Macs. I thought MAE emulated a 68030, specifically a Mac IIci. But I could be wrong -- it's been a while. I am 99% certain we used an IIci ROM image, and it's unlikely that an '040 could run that unmodified.