A cheeky programmer has produced an unofficial patch to allow the previously Iyonix-only Firefox 2 port to run on A9home computers. The hack intercepts low level ARMv5 instructions that the Iyonix’s IOP321 XScale can execute, and converts them into instructions suitable for the ARMv4 Samsung ARM920T processor in the A9home. On a related note, RPCEmu has been updated to work with RISC OS 6.
Anything that intercepts low-level calls to the OS/Platform and then converts them is technically a “emulator” and not a “port” per-say.
That said, this more in line with Wine’s “emulator” (if you could call it that) more than a virtualization layer.
Explanation:
Virtualization layer would involve an entire platform “faked” to pretend to be lyonix. This instead just has its own API that can intercept and convert the ARMv5 instructions to the ARMv4 – to be exact this is what Rosetta on Mac OS X does (except bridging two different platforms).
Now if it were a ‘port’ it would involve re-writing the Firefox 2’s high-level source code – something totally different.
Either way, the result is the same, it now works at near-full speed on ARMv4. Thank you
I thought Rosetta was a JIT Translator. As in, it translated PPC instructions to x86 on the fly. Isn’t that what this is doing? Thats not emulation… But I’m not expert on this
Edited 2006-12-05 00:01
Meh. I don’t see why the person doing the port was able to keep their port closed-sourced. I though under the MPL, only Netscape had the right to create closed-source forks of the Mozilla code. If I were the Mozilla Corporation, I would be coming down on the originator of the RISC OS port like a ton of bricks.