Slashdot Mirror


Java-Based x86 Emulator

jaavaaguru writes "Researchers at Oxford University have produced a Java-based x86 emulator that they hope will be useful in testing applications and learning about viruses without damaging the host, utilizing the robust sandboxing that Java provides. They have an online demo available that boots DOS and has some games to play. Being purely Java, this emulator should be able to run on almost anything, including cell phones." The code is not yet available outside the Oxford community; the developers are said to be working on a suitable general license. In the meantime the code can be licensed on a case-by-case basis.

10 of 263 comments (clear)

  1. Re:Well for one by daeg · · Score: 5, Informative

    If you are using Firefox with Java and having ridiculous applet startup times, you need to disable your Java Cache. This is Java's fault, not Firefox's (supposedly).

    Under the Java control applet, under the General tab, click "Settings..." under "Temporary Internet Files". Then click "View Applets...". It will take a moment to load (or in my case, 2-3 minutes). Then UNcheck "Enable Caching". Firefox now starts my applets almost instantly. This doesn't affect downloaded Java applications such as Azureus or Eclipse (both of which I use extensively).

    Hope this helps.

  2. Re:Ah, a Java-based x86 emulator... by gravis777 · · Score: 2, Informative

    Since when did emulators become news on slashdot? Its still buggy too. No mouse support (makes playing Lemmings a pain), graphic corruption in some places in Lemmings, arrow keys get effed up when playing Prince of Persia, no sound support, and, well, its kinda slow. Some lagging in Prince of Persia, and I am on a p4. Now, did the original post say that they wanted to use this to test viruses? Please tell me they are not planning on installing windows on this thing.

    Although I would smile if they installed Windows 3.1 and the thing dropped into dosshell when you exited. Of course many licensing things there. I guess there is no licensing issues showing off a product you are trying to license with shareware titles, is there?

  3. Re:Interesting, but by Victor+Antolini · · Score: 2, Informative

    A little bit of searching brought this

    Btw, here's a Gameboy emulator written in Visual Basic!
    It's quite fast... puzzling.

  4. Re:can you run java in the x86? by faragon · · Score: 2, Informative

    Why not? Just you get execution speed and available memory progressively downgraded/shrinked (doing it ad infinitum or ad nauseam , until you're out of memory for the next emulation context) :~P

  5. Other projects doing the same/faster thing.. by Boj · · Score: 3, Informative

    There are at least 2 solutions doing a similar thing. The open source binarytranslator.org/PearColator offers x86 and PowerPC emulation:
    http://binarytranslator.org/
    There are attempts to integrate this into the JNode open source Java OS to make a JNode/GNU stack.

    There is also the VEELS/JXEmu system:
    http://nil.ics.uci.edu/~gal/?page=VEELS
    which appears not to be publicly available.

  6. Why not Simics? by Anonymous Coward · · Score: 2, Informative

    I can get Simics for free if I am an academic and Simics gives over 300 MIPS on 2GHz AMD64s (and probaly a lot more on the Core 2 CPU). I really fail to see the use of something that probably is dog slow, written in Java, and probably cannot do reverse execution. Oh, btw, Simics does x86, x86-64, SPARC V8/V9, PPC32/64, MIPS32/64, ARM and perhaps some more.

    Can someone explain the advantages of the Java based x86-emu in TFA over something like Simics?

  7. Re:Interesting, but by Anonymous Coward · · Score: 1, Informative
    "Dynamic Recompilation" is exactly what this emulator does, which is the reason it's novel.


    The X86 machine code is translated directly into java bytecode, which is then compiled to the target architecture and cached by the JVM.

  8. Re:So... by Anonymous Coward · · Score: 1, Informative

    Whoosh!

  9. Re:How's the efficiency? by kestasjk · · Score: 3, Informative

    near-native speeds are necessary to actually boot Windows Vista before the sun goes supernova.
    The sun isn't close to large enough to end in a supernova; it'll be a red giant, then end as a white dwarf.
    --
    // MD_Update(&m,buf,j);
  10. Run using your own floppy/hd images... by Anonymous Coward · · Score: 1, Informative

    I was able to run it manually, outside of the applet framework, by doing the following:

    (1) Download jar from "http://www.physics.ox.ac.uk/jpc/JPCAppletObfs.jar "

    (2) Execute using the following java command line:

    > java -classpath JPCAppletObfs.jar org.jpc.j2se.PCMonitor

    Also the jar archive contains the floppy and HD images, so you can replace them with your own:

    > unzip -l JPCAppletObfs.jar
    . . .
            38400 03-16-07 16:07 vgabios.bin
            65536 03-16-07 16:07 bios.bin
      10485760 03-16-07 16:07 dosgames.img
        1474560 03-16-07 16:07 floppy.img
    . . .
      13756027 285 files

    I tried replacing the floppy.img with a freesco.org linux image, but it failed to boot complaining about missing instructions. I'm guessing it only does the 8086 ISA.