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.