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
Will JPC run run Linux?
JPC can run Linux! Try the online Linux demos
or check out other ways to get JPC.
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?
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.
This puts it amongst the fastest emulators of an x86
PC, despite needing only a pure Java environment.
At first sight it might seem impossible for a Java based emulator
to approach other emulators which use "native" code.
However JPC uses a number of optimization strategies to achieve an acceptable speed.
In fact these strategies are very similar to those used by modern x86 hardware;
e.g. using a RISC microcode set to streamline the x86 instructions.
JPC then uses dynamic binary translation to get the best performance.
have seen that in some circumstances a HotSpot JVM can
outperform gcc-compiled C (even in actual scientific analysis code), so we believe a lot more is
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.
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.
What happened to the old JPC website?
You can find the old JPC website here.
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?
JPC reads raw disk images. You can create one in the JPCApplication clicking "Create disk" in the "Disks" menu, or in the JPCDebugger via the "Tools" menu.
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 or similar to partition and format it to your desired format.
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 in JPC use DOS to copy from one disk to the other.
Another option if the disk is formatted to ext2 and you are running linux is to mount the image directly using loopback: "mount -o loop disk.img ./mnt/"
How can I put the JPC applet on my website?
Refer to the applet tutorial and have a play yourself!
I can not get JPC to work on my mobile phone!
You need a really good phone.
Unfortunately this software is ALPHA, so sorry, but we can not support it right now.
How do I contact you?
Send us an email.