Frequently Asked Questions (F.A.Q.)

What is emulation/virtualization?
See our page explaining emulation/virtualization?
What systems will JPC run on?
Any with a JVM and enough memory (64Mb in the current version, we can configure it to use less if necessary). This includes x86, PPC, ARM, SPARC, and other CPU's, in different platforms ranging from PC's to mobile phones. To date, we have tested JPC on x86 PC's, a Nokia N95 mobile phone, and an ARM 9 development kit. JPC is written in Pure Java, with not a line of native code, thus taking full advantage of Java's cross-platform features.

See JPC In Action for some of the systems where we have already tried JPC.
What operating systems will JPC run?
In principle, we can run any OS that runs on an IBM PC, including Linux, DOS, and Windows. This includes systems for which there is no longer any available support; e.g. JPC is a safe environment in which to run legacy Windows 95 code. We are currently developing more x86 execution modes, have tested DOS and are now developing further Linux compatibility.
Will JPC run run Linux?
NEW! Yes, JPC can run Linux! Try the online Linux demo or check out other ways to get JPC.
What's the point? (Why would anyone want to run JPC?)
Virtual computers have been around for a while, and indeed right now there's a big market for them in consolidating multiple web servers on single machines. But virtualization is also useful for running potentially buggy, unvetted programs and preventing them ruining everyone else's work on the same computer. For instance, you can run programs written for obsolete and notoriously insecure operating systems, but now in a secure environment.

In addition, JPC allows complete control over the configuration environment of those programs, so that if you wanted to run the same program over millions of devices, you don't have to worry about all the different versions of even the same peripherals or software libraries - a major problem in many massively parallel computations. We feel this is just the beginning of the possibilities for such a flexible virtualization technology.
What peripherals does JPC implement?
The standard setup includes the usual peripherals, such as a keyboard, mouse, hard disk, VGA card, and Ethernet port. For now, we've implemented these peripherals to talk through a window or a file, but we can also disconnect them entirely and even have parts running on different physical machines.
How fast is JPC?
NEW! At the current time, JPC is running around 20% of the processor's native speed, and we still expect speed improvements in the near future. Moreover, we have seen that in some circumstances a HotSpot JVM can outperform gcc-compiled C, so we believe a lot more is possible.
Could a program running in a virtual computer damage my real computer?
There is of course no absolute guarantee, but consider what must be done: a program would have to exploit either a badly implemented opcode, memory system, or peripheral emulation. Even if that's successful, the program would still have to find a corresponding flaw in the JVM implementation. If you use a JVM from a reliable source then the likelihood the first hole can exploit the second hole is virtually zero.
Why Java?
Basically, Java turns out to be ideal for this kind of project: it's robust, it works across many platforms, it's built with security in mind and, with HotSpot, it can run about as efficiently as natively compiled code. We can testify that it's not entirely straightforward to turn this into an efficient x86 PC emulator, but that's part of the fun.
Where did JPC come from?
JPC started life in Oxford University's Sub-department of Particle Physics, and particle physicists have had a long history of crunching enormous quantities of data with enormous quantities of CPU. So we're always looking for ways to access more power, especially as the Large Hadron Collider (LHC) at CERN, in Switzerland, turns on later this year. On the other hand, we know that other people have their own enormous computing problems, and JPC could help with that as well. (We may be mad, but we're not evil...)
Is JPC open source?
Yes! We have now open sourced JPC. You can get the source code here
Can I get JPC without having to mess around with the source?
If you don't want the hassle of building JPC from source, you can try our online Demo or check out other ways to get JPC.
Help, I deleted/reformated/nuked the JPC harddisk!
No worries! Just shutdown your browser completely, and then return to the JPC website. This should force the applet to reload the cached version of the harddisk.
How do I create my own hard disk image?
Most standard software that creates disk images will be able to create an image that will work in JPC. Alternatively you can create a disk image by leveraging JPC itself! You will need to get a copy of the JPC Application, to do this.

Outside of JPC, use dd or similar to create a blank file of the size you need. Then open the JPC Application, mount the new image file as one hard drive, and then run fdisk to create a DOS partition on it. Reboot the machine, remount the image file, and then run format on the drive. Now the easiest way to get data from your computer to the image file start JPC application from the command line, mounting the new image as one hard drive, and a folder as the other. Then once from JPC use DOS to copy from one disk to the other.
How can I put the JPC applet on my website?
Its easy. Just borrow the HTML that we use on our demo pages and download the JPCApplet jar file. Then to include your own hard drive image, all you have to do is change the value in the "hda" parameter to match your disk image. The disk image must be inside a jar file with the same name as the image, but with a .jar extension. The webpage, applet and image jar file must all be in the same folder.

If you would like to run another floppy image, or further customize the applet, feel free to get the JPC source, and have a play yourself!

And remember that signed applets will run faster.
I can not get JPC to work on my mobile phone!
You need a really good phone. Please note that we cannot support this verison of JPC, including requests for installtion help, configuration etc.
How do I contact you?
Send us an email.