Wednesday, September 23, 2009

JPC: A Java based x86 Emulator

JPC is a Java based x86 emulator that is capable of launching a full OS.

What advantages do emulators have over VMs? What advantages do VMs have over emulators?
An emulator is fully run in software, it does not allow the actual code to run on hardware at all. A VM typically runs the code on the processor, at a much faster speed, while an emulator can run code for one hardware on a totally different platform.

Why would one prefer to use a Java emulator like JPC over a C++ emulator like Bochs, and vice-versa?
A Java implementation gives the security of the sandbox and ease of portability without recompiling, at the sacrifice of some speed.

Are there any performance and/or security considerations the JPC design team missed?
They didn't mention how few full OSes they can currently boot. Until it is capable of running common OSes, it will not be used for some of the security applications, such as auditing users without their knowledge.

For what purposes can you see yourself using an emulator like JPC? Any interesting uses on your mobile phone?

I would typically use an emulator for debugging otherwise hard - to - debug code, such as the bootup sequence of a computer. It provides the ability to save at any point, making is possible to debug tough race conditions if one can be produced once.

No comments:

Post a Comment