Ianopolous writes "Classic DOOM and DSL Linux Desktop inside your Java-enabled browser! The latest JPC, the fast 100% Java x86 PC emulator, is now available with online demos and downloads. JPC is open source and is the most secure way of running x86 software ever — 2 layers (applet sandbox, JPC sandbox) of independently validated security make it the world's most secure means of isolating x86 software. Visit the website to try out some classic games and play around with Linux all within your web browser. Refresh = reboot!"
I was wondering, if we run a Java x86 PC emulator that is emulating an Amiga that is emulating a Spectrum, is it still faster than a real Spectrum or do we need to optimise it a bit?
I'd find a page disabling my refresh button the bigger annoyance. The refresh button is outside the scope of a page - it's the UI of an app and shouldn't be told what to do by some randomly downloaded and viewed bit of data!
I was thinking of being able to run a cool linux distro like Backtrack, inside the corporate firewall, using known and approved IP addresses, etc. To SOME people, this is a feature; to others a threat. Regardless, i want to know about the possibilities to do my job better.
Microsoft is making a big deal in Windows 7 about being able to lockdown USB drives in the enterprise. But with this info, they should also considering locking-down web-browsers.
Oh, wait. Nevermind I just said that about Microsoft.
Thank you for your enlightening and detailed technical comments.
It is often my job, as a manager, to try to understand and then to mitigate risks which you have explained and detailed well. I see in a network you have setup, I would be blocked from doing many cool things with Backtrack as OS in a browser.
How about another classic trick to watch out for? How would you prevent someone running standard OS in a browser (or of a USB stick, etc.) from running an SSH proxy, on port 443, to their home dd-wrt router
Sup dawg, I herd yo like inner platformz. So we put a browser in yo OS in yo browser on yo OS, so yo can compute while yo compute, and browse while yo browse!
by Anonymous Coward
on Friday July 03, @09:05AM (#28571257)
Yo dawg,
I herd you like Operating systems, so we put a Operating system in your Browser so you can Browse Operating systems while you browse in yo operating system!
...we put a Operating system in your Browser so you can Browse Operating systems while you browse in yo operating system!
software does seem to have a soft spot for recursive acronyms, (GNU, LAME, WINE,etc). This seems to be the next logical step. Recursive operating systems! neat.
I heard you like virtual machines and browsers, so I built a virtual machine to run on a virtual machine so you can browse from your virtual machine that's running on a virtual machine in your browser.
Man, this is totally awesome!
Hmmm... I wonder if I can run VMware in it.
Blow, tripple booting.... three operating systems three deep!!!! Bwahhhahahahahahah.... I will control the world!
Bow before your... oh..... It's been done before.... ...
Nevermind!
Signature!
random link! summer vacation [wordwide-traveler.com]
Yes. It's an operating system running on a virtual PC running on a Java virtual machine running on a PC emulated by the Matrix. But the reality the Matrix is running in is itself just a virtual reality created by a Holodeck of a simulated spaceship.
But actually, there is a bottom. The bottom is a self-emulating virtual machine.
I saw this article and couldn't figure out why I would want to run an x86 emulator in my browser, so I clicked to see other people's comments. Apparently no one else on slashdot can figure out why someone would want to do that either.
I saw this article and couldn't figure out why I would want to run an x86 emulator in my browser, so I clicked to see other people's comments. Apparently no one else on slashdot can figure out why someone would want to do that either.
Are you serious? Just imagine those things running in a Beo^H^H^H Firefox Cluster!
I don' think Applet deployment is the target for that project; if they are offering this option it's certainly just for quick demo sake. Notice also that the applet would need some serious time to download because (1) the emulator itself is reasonably big, (2) you need a virtual disk image containing the whole OS and apps; even a small FreeDOS distro with a couple of tiny DOS games will weight in a few hundred Kb, although the problem is mostly for first run as the Java PlugIn can cache everything.
As I see it, JPC's main goal is showing off some amazing virtualization technology that they have developed - the emulated x86 code is JIT-compiled by JPC's engine into Java bytecodes, which are in turn JIT-compiled by the JVM to native code, so the net result is full native-to-native translation. (If both steps are sufficiently efficient and the host platform is also x86, the compiled code may even be very similar to the original code.) This remembers of similar systems like Transmeta's Crusoe.
As a secondary goal,. JPC is becoming a pretty nice general-purpose PC emulator, so it's potentially just as useful as other PC emulators like Bochs. If JPC reaches sufficiently close to native performance (I tested it ~1yr ago and it's slashdotted now), and includes sufficient hardware compatibility, it's obviously an advantage to be a Java program, fully portable including UI.
Having a PC emulator written in Java means to be able to run any previously-written x86 code on any Java-enabled machine out there, forever. And don’t forget about mobile devices, too. JPC needs not to be run in a browser, it can be run standalone, and has already been ported to high-end phones - I, for one, think that running Windows 3.1 on a phone is quite cool. Running old games might even be funny.
Perhaps JPC could be ported to an xlet and, say, ran off a bluray disc or a dvb-t transmission. OK, I hate both of them, but the point is that achieving platform-independence opens up many possibilities.
It’s not less useful than the many old-systems emulators available on the net - and those get quite a lot of followers.
I’d say that it can be useful for:
- preservation (and enjoyment:D) of ancient software;
- interoperability with not-so-ancient software.
It's a good (for given values of good) way of turning those old bits of legacy code into web apps. How many businesses have you seen that depend on some bit of 16-bit Windows software, probably written in VB or Delphi, which had source code once but no one's seen a copy for a decade? These programs ran okay on a 386 and ran well on a 486. Now they'll run in a web browser on whatever platform you want, including something very cheap like a Loongson 2F or ARM.
It's so we can run Windows 3.11 on top of Windows 2000 on top of Windows XP on top of Windows Vista on top of Windows 7 which is inside a browser running on Java inside Windows 2000 which is on top of Windows XP, which is on top of Vista, which is on top of 7.
And it may even have enough speed to run as fast as a 386 25MHz...
So what happens when I load this site up, load up Firefox within the "OS in a browser", navigate to the site, and load up Firefox within the "OS in a browser in an OS in a browser"?
"Classic DOOM and DSL Linux Desktop inside your Java-enabled browser! The latest JPC, the fast 100% Java x86 PC emulator, is now available with online demos and downloads. JPC is open source [...] Visit the website to try out some classic games and [...]"
Where it mentions playing DOOM and other DOS games, JPC is booting FreeDOS. So yes, this can run FreeDOS.
Here's a screenshot [pcworld.dk] of FreeDOS in action on JPC, if you need one.
In fact, we've discussed the Java PC emulator on the FreeDOS web site [freedos.org] since JPC was first released. We even link to it on our "About" page [freedos.org] and "Links" page. [freedos.org] It's a great way to introduce new users to the idea of running DOS, without asking them to install their own PC emulator, or even install FreeDOS at all.
Java PC has been released under the GNU GPL since May 2007 [mail-archive.com], so to answer your question: source code is available. We mirrored an old copy [ibiblio.org] of the source code from 2007, but looks like we haven't made further copies. But maybe it's enough to interest folks who don't want to wait for the JPC site [ox.ac.uk] to recover from its slashdotting today.
2 layers (applet sandbox, JPC sandbox) of independently validated security make it the world's most secure means of isolating x86 software
I contest this notion (if I understand their setup correctly; the website is broken so I've some uncertainty about what they're doing). I agree that it's likely a very secure setup, but I disagree that the two lawyers of Java VM security makes it the most secure setup for running x86.
The common Java VM is a single point of failure. Both layers of "independently validated security" are running in Java VM, so if there is an exploit in the runtime interpreter (or compiled executable, if they're compiling things now), it may be used to circumvent both sandboxes. Using two different Java VMs would be an improvement, but better still would be orthogonal interpreters (on the plane of security vectors) such as a Java VM and a Python interpreter. Both are nevertheless still probably calling some version of glibc on x86 machine code.
If I were to speculate (and I will), I'd say that Xen et al virtualization has fewer vectors, and better still would be x86 virtualization running on top of a mainframe ala. z/VM. That would, in theory, be more secure than this Java VM on Java VM setup. Of course, it all comes down to the implementations in the end (and, as a practical matter, how big a target they are - Java is a big target for security, z/VM less so).
Again, though, I think this Java VM is likely very secure. Claiming it's the world's most secure is puffery, though, in my humble opinion.
Skynet will wake up there, say "WTF? Where am I?!", get confused and die, thus saving humanity who will never appreciate how JPC saved us from our machine overlords. Security through serious obscurity FTW!
Or the computer the JVM is run on will need rebooting long before Skynet can complete the thought. Whichever.
Sounds efficient (Score:2, Funny)
Re: (Score:2)
Refresh = reboot! (Score:5, Insightful)
Just what you want - an even easier way to lose data from your VM. Why rely on bugs and crashes when an accidental refresh can reboot your machine?!
Re: (Score:2, Interesting)
Maybe you should run it in some sort of java applet container, I hear they are fairly readily available these days. HIGH TECH SHIT!
Meanwhile, it seems like a cool way to host teeny abandonware DOS games.
So its a VM^2? ... so how about a VM^4? (Score:5, Funny)
Parent
Re: (Score:3, Insightful)
I'd find a page disabling my refresh button the bigger annoyance. The refresh button is outside the scope of a page - it's the UI of an app and shouldn't be told what to do by some randomly downloaded and viewed bit of data!
Need for Speed (Score:2, Funny)
Wow! I can have a program emulated by an interpreter runnning on it's own virtual emulated pc. Think of the pure speed!
For their next main event, may I suggest running a java-based java-interpreter, on the java-based java-interpreter as a host, think of the speed gain!
Yo Dawg (Score:5, Funny)
I heard you like running x86 so we emulated your x86 in java to run on your x86.
Parent
Re: (Score:2, Funny)
It would be great (and dangerous) if it were possible to bypass the emulator and JVM and run x86 code directly.
We put an OS in your browser in your OS! (Score:5, Informative)
Also: But can it run Crysis?
Re:We put an OS in your browser in your OS! (Score:5, Funny)
Fuck that Java shit.
Parent
Re:We put an OS in your browser in your OS! (Score:5, Funny)
Parent
Re: (Score:3, Funny)
Fuck that Java shit ...
..., let's do it in JavaScript!
Re:We put an OS in your browser in your OS! (Score:4, Insightful)
I was thinking of being able to run a cool linux distro like Backtrack, inside the corporate firewall, using known and approved IP addresses, etc. To SOME people, this is a feature; to others a threat. Regardless, i want to know about the possibilities to do my job better.
Microsoft is making a big deal in Windows 7 about being able to lockdown USB drives in the enterprise. But with this info, they should also considering locking-down web-browsers.
Oh, wait. Nevermind I just said that about Microsoft.
Parent
Re: (Score:3, Informative)
Thank you for your enlightening and detailed technical comments.
It is often my job, as a manager, to try to understand and then to mitigate risks which you have explained and detailed well. I see in a network you have setup, I would be blocked from doing many cool things with Backtrack as OS in a browser.
How about another classic trick to watch out for? How would you prevent someone running standard OS in a browser (or of a USB stick, etc.) from running an SSH proxy, on port 443, to their home dd-wrt router
Re: (Score:3)
Sup dawg, I herd yo like inner platformz. So we put a browser in yo OS in yo browser on yo OS, so yo can compute while yo compute, and browse while yo browse!
obligatory (Score:5, Funny)
Yo dawg,
I herd you like Operating systems, so we put a Operating system in your Browser so you can Browse Operating systems while you browse in yo operating system!
Re: (Score:3, Interesting)
...we put a Operating system in your Browser so you can Browse Operating systems while you browse in yo operating system!
software does seem to have a soft spot for recursive acronyms, (GNU, LAME, WINE,etc). This seems to be the next logical step. Recursive operating systems! neat.
Its dead Jim (Score:5, Funny)
Imagine... (Score:5, Funny)
A Beowulf cluster of these.... In tabs on your browser.
Re: (Score:3, Funny)
You're sick... I like that!
Yeah... (Score:5, Funny)
No it's not. Site's down.
Re:Yeah... (Score:5, Funny)
Parent
Re:Yeah... (Score:4, Funny)
Parent
Re:Yeah... (Score:4, Funny)
Parent
Sup dawg (Score:2, Funny)
I heard you like virtual machines and browsers, so I built a virtual machine to run on a virtual machine so you can browse from your virtual machine that's running on a virtual machine in your browser.
Man this is sweetness and light! (Score:4, Funny)
Hmmm... I wonder if I can run VMware in it.
Blow, tripple booting.... three operating systems three deep!!!!
Bwahhhahahahahahah.... I will control the world!
Bow before your... oh..... It's been done before....
Nevermind!
Signature!
random link! summer vacation [wordwide-traveler.com]
Re: (Score:2, Funny)
Puts a whole new meaning in "it is virtualized all the way down"
Re: (Score:3, Funny)
Yes. It's an operating system running on a virtual PC running on a Java virtual machine running on a PC emulated by the Matrix. But the reality the Matrix is running in is itself just a virtual reality created by a Holodeck of a simulated spaceship.
But actually, there is a bottom. The bottom is a self-emulating virtual machine.
Re: (Score:3, Funny)
The bottom is a self-emulating virtual machine.
I thought self-emulating caused bad eyesight and weakness of the spine?
Old news (Score:5, Informative)
JPC has been around for at least 3 years, and on Slashdot at least twice before.
Re:Old news (Score:5, Funny)
Parent
Why would I want to run X86 emulator in my browser (Score:5, Funny)
Re: (Score:3, Funny)
I saw this article and couldn't figure out why I would want to run an x86 emulator in my browser, so I clicked to see other people's comments. Apparently no one else on slashdot can figure out why someone would want to do that either.
Are you serious? Just imagine those things running in a Beo^H^H^H Firefox Cluster!
Re: (Score:2)
Run from a stick (or from a basic web server) on a computer without a lot of privileges?
You don't want it, but that's not the point (Score:4, Interesting)
I don' think Applet deployment is the target for that project; if they are offering this option it's certainly just for quick demo sake. Notice also that the applet would need some serious time to download because (1) the emulator itself is reasonably big, (2) you need a virtual disk image containing the whole OS and apps; even a small FreeDOS distro with a couple of tiny DOS games will weight in a few hundred Kb, although the problem is mostly for first run as the Java PlugIn can cache everything.
As I see it, JPC's main goal is showing off some amazing virtualization technology that they have developed - the emulated x86 code is JIT-compiled by JPC's engine into Java bytecodes, which are in turn JIT-compiled by the JVM to native code, so the net result is full native-to-native translation. (If both steps are sufficiently efficient and the host platform is also x86, the compiled code may even be very similar to the original code.) This remembers of similar systems like Transmeta's Crusoe.
As a secondary goal,. JPC is becoming a pretty nice general-purpose PC emulator, so it's potentially just as useful as other PC emulators like Bochs. If JPC reaches sufficiently close to native performance (I tested it ~1yr ago and it's slashdotted now), and includes sufficient hardware compatibility, it's obviously an advantage to be a Java program, fully portable including UI.
Parent
Re:Why would I want to run X86 emulator in my brow (Score:4, Informative)
Perhaps JPC could be ported to an xlet and, say, ran off a bluray disc or a dvb-t transmission. OK, I hate both of them, but the point is that achieving platform-independence opens up many possibilities.
It’s not less useful than the many old-systems emulators available on the net - and those get quite a lot of followers.
I’d say that it can be useful for:
- preservation (and enjoyment
- interoperability with not-so-ancient software.
Parent
Re:Why would I want to run X86 emulator in my brow (Score:4, Insightful)
Parent
Most secure!? (Score:3, Informative)
the world's most secure means of isolating x86 software
I seriously doubt this claim...
What about? http://www.nsa.gov/research/tech_transfer/fact_sheets/nettop.shtml [nsa.gov]
Or its predecessor? http://www.nsa.gov/ia/programs/h_a_p/releases/hapr1.shtml [nsa.gov]
Re:Most secure!? (Score:5, Funny)
Using two layers is the most secure. That's why I encrypt all my important data with ROT-13 twice.
Parent
source code ? site is down ! (Score:4, Interesting)
do they provide sourcecode ?
(really interested if they do )
virtualbox is pretty nifty but inside a JVM is pretty impressive from a engineering point of view
have they published any work on this ?
regards
John Jones
Re: (Score:3, Informative)
(Not that I expect the source code of a x86-to-jvm bytecode recompiler to be very readable...)
Now I get why we need so fast CPUs. (Score:4, Funny)
It's so we can run Windows 3.11 on top of Windows 2000 on top of Windows XP on top of Windows Vista on top of Windows 7 which is inside a browser running on Java inside Windows 2000 which is on top of Windows XP, which is on top of Vista, which is on top of 7.
And it may even have enough speed to run as fast as a 386 25MHz...
OS in a browser in an OS in a browser... (Score:2)
So what happens when I load this site up, load up Firefox within the "OS in a browser", navigate to the site, and load up Firefox within the "OS in a browser in an OS in a browser"?
Which is it - (Score:5, Funny)
Re:Which is it - (Score:4, Funny)
Parent
Yes, it runs FreeDOS (Score:5, Informative)
"Classic DOOM and DSL Linux Desktop inside your Java-enabled browser! The latest JPC, the fast 100% Java x86 PC emulator, is now available with online demos and downloads. JPC is open source [...] Visit the website to try out some classic games and [...]"
Where it mentions playing DOOM and other DOS games, JPC is booting FreeDOS. So yes, this can run FreeDOS.
Here's a screenshot [pcworld.dk] of FreeDOS in action on JPC, if you need one.
In fact, we've discussed the Java PC emulator on the FreeDOS web site [freedos.org] since JPC was first released. We even link to it on our "About" page [freedos.org] and "Links" page. [freedos.org] It's a great way to introduce new users to the idea of running DOS, without asking them to install their own PC emulator, or even install FreeDOS at all.
Java PC has been released under the GNU GPL since May 2007 [mail-archive.com], so to answer your question: source code is available. We mirrored an old copy [ibiblio.org] of the source code from 2007, but looks like we haven't made further copies. But maybe it's enough to interest folks who don't want to wait for the JPC site [ox.ac.uk] to recover from its slashdotting today.
Single point of failure (Score:4, Interesting)
2 layers (applet sandbox, JPC sandbox) of independently validated security make it the world's most secure means of isolating x86 software
I contest this notion (if I understand their setup correctly; the website is broken so I've some uncertainty about what they're doing). I agree that it's likely a very secure setup, but I disagree that the two lawyers of Java VM security makes it the most secure setup for running x86.
The common Java VM is a single point of failure. Both layers of "independently validated security" are running in Java VM, so if there is an exploit in the runtime interpreter (or compiled executable, if they're compiling things now), it may be used to circumvent both sandboxes. Using two different Java VMs would be an improvement, but better still would be orthogonal interpreters (on the plane of security vectors) such as a Java VM and a Python interpreter. Both are nevertheless still probably calling some version of glibc on x86 machine code.
If I were to speculate (and I will), I'd say that Xen et al virtualization has fewer vectors, and better still would be x86 virtualization running on top of a mainframe ala. z/VM. That would, in theory, be more secure than this Java VM on Java VM setup. Of course, it all comes down to the implementations in the end (and, as a practical matter, how big a target they are - Java is a big target for security, z/VM less so).
Again, though, I think this Java VM is likely very secure. Claiming it's the world's most secure is puffery, though, in my humble opinion.
It's VERY secure (Score:5, Funny)
Skynet will wake up there, say "WTF? Where am I?!", get confused and die, thus saving humanity who will never appreciate how JPC saved us from our machine overlords. Security through serious obscurity FTW!
Or the computer the JVM is run on will need rebooting long before Skynet can complete the thought. Whichever.
Re:iPhone (Score:4, Funny)
Quick! Write a java interpreter in Flash!
Parent