The JPC Project is Computer Virtualization in Java

analysis
Mar 25, 20073 mins

JPC is a pure Java emulation of an x86 PC with fully virtual peripherals. And it can run anywhere that has a JVM, whether x86, RISC, mobile-phone or set-top box. It has been developed since August 2005 in Oxford University's sub department of Particle Physics and has been released in beta for members of Oxford University. The developers say that emulators for the x86 PC are rare and until now there hasn't been o

JPC is a pure Java emulation of an x86 PC with fully virtual peripherals. And it can run anywhere that has a JVM, whether x86, RISC, mobile-phone or set-top box. It has been developed since August 2005 in Oxford University’s sub department of Particle Physics and has been released in beta for members of Oxford University.

The developers say that emulators for the x86 PC are rare and until now there hasn’t been one written in pure Java. They claim that this is because the x86 PC is an extremely complex architecture, with a long history of incremental improvements, and therefore a legacy of many subtle features. Most people believed that an x86 emulator written in Java would be far too slow to be of any use to anyone. The JPC Project took that on as a challenge.

JPC is a pure Java x86 PC emulator which currently runs up to 10% native speed. It uses a number of optimization strategies to achieve an acceptable speed – strategies that are similar to those used by modern x86 hardware. It then uses dynamic binary translation to help achieve the best performance.

Key Features of JPC include:

  • Cross Platform – Programs are generally compiled for a specific computer architecture and, once compiled, will only run on that machine (or another like it). Pure Java can be compiled once and run on any platform that has a Java Virtual Machine (JVM). Thus JPC runs on Windows, Linux, MacOS, mobile phones, set-top boxes, ARM boards and anything else with a JVM without the need to build different versions for each platform.

  • Secure – Malicious software in a JPC virtual computer cannot harm your real computer because your real machine is protected by multiple independent layers of security. The first layer is JPC itself, supported by the industry-standard Java virtual machine and then scrutinized by your machine’s real operating system. These layers combine to form an impregnable shield for your computer and data.

  • Flexible – You can interact with the virtual computer through a window on your desktop, or just watch it while a virtual robot taps at a virtual keyboard. The different components of the virtual computer are completely separated. This enables you to use the hard disk of one computer, the CPU of another, while displaying it all on a screen across the network and typing input on a keyboard on a mobile phone.

You can try out an interactive demo of the product, here.

I would have told you about this product sooner had I not wasted an hour or two geeking out on my machine playing some of these older DOS based games like Mario and Donkey Kong.