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.
I can only imagine that this will make even Bochs look fast in comparison!
Still, I'd love to tinker with this from a 'gee whiz' standpoint.
... now we should say: "x86 assembler: write once, run everywhere (slow as molasses in January)" ?
Java only: snail speed
Java+DOS: Snail with ball and chain
Java+DOS on non x86: Snail nailed to the table
CDE open sourced! https://sourceforge.net/projects/cdesktopenv/
But can it run Linux. . .?
Why did they use Java? It would have been faster in C++.
I for one welcome our new old x86 overlords.
Did I miss any?
If you are about to mod me down, keep in mind that this post was most likely sarcastic.
two words: minesweeper
A java based emulator doesn't need to be ported.
That's the huge advantage of java. Just port the 100 meg or so of JVM, throw in a faster processor and a few more gigs of memory, and it'll run on anything.
An interpreted language being used to write an opcode interpreter.
For an encore, perhaps they can write a JVM in BASIC.
WARNING: Performance implosion imminent due to recursive interpretation.
...written in XSLT.
It isn't dead! For crying out loud, it's java! It's still processing the instruction... Come back in September for the result.
GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
Yes.
The next step is to get rid of hardware altogether.
It's turtles all the way down, I tell you!
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});