Armed with all of this trickery, we now have a highly optimized emulation system that can be improved and extended without the need for major architectural revision. A better compiler can be plugged into the backend of the system, and other components can be adapted and replaced with different implementations to suit a wide range of purposes. For example:
The data that forms the virtual hard disk could actually be served (on demand) by any server anywhere in the world.
The user interaction of the emulated system (virtual screen, keyboard, and mouse) could be via a remote system.
JPC can run x86 software on any standard Java 2 virtual machine, and thus the underlying hardware can be chosen independently from the choice of operating system and software. In addition, the complete state of the virtual machine can be saved and the emulated machine “frozen” in time. It can then be resumed at a later date or on a different physical machine without any of the hosted software being aware of any change.
With JPC, your disk image can be carried with you on a memory stick, together with a complete JVM and JPC code. You can then plug this into any computer and “boot” your machine up to do all your private email and other work, and when you finish and unplug, you’ve left nothing on the host hardware.
Alternatively, your hard disk image could reside on a server on the Internet, and you could access your own machine from anywhere in the world simply by loading ...