Plex86 Runs DOS
Adam Bertil was one of a number of people who've written about the recent announcement from
www.plex86.org that Plex86 will now run DOS applications. Kevin Lawton apparently did the work and a screenshot is on Plex86 [?] .org.
← Back to Stories (view on slashdot.org)
How soon until this gets added to the Mozilla project so I can run Word for DOS in my web browser that has been customized to have a Word 2000 GUI interface?
Speak truth to power.
I'm sure there are enough people around here that have differing opinions about open source, but to head off discussion in that direction, it's merely an impression I have and I'm possibly wrong. I've never contributed a line of code - something I hope to change.
I think the whole concept of emulation/VM is something to be embraced and which could _really_ revolutionize the computing model. So as opposed to encapsulating already native code to sneakily let it think it's running as a base system, go ahead and really change it, emulate it - don't just "bracket" it.
Why? Currently, we're essentially writing compilers for a non-existing platform. The x86 platform as originally seen has long been "dead", what we're seeing now is chips that convert this "universal" language into their own microops and then execute them. The internal structure of a P3 / Athlon has a large section dedicated to this very task. But what if we could throw all that away, and make a chip that simply crunches numbers as good as current technology allows? We have the making of a darn fast chip. If I had to make a completely uninformed guess, we could well stuff two "Athlons" (if we can still call them that) on the same die if the whole x86 ISA is dropped.
In comes the virtual machine... we simply convert the bytecode into native code and run. Sort of like java does it - but better, as we have a chip that can run faster and possibly more efficiently.
Guess what? Sun is already doing just that with MAJC. The point is, Plex86 should not try to run code natively at all. It simply happens to have a bytecode that's identical to the native code. This gives us an architechture that is far longer-lived than something that can run legacy x86 systems on x86 systems. This might be portable to newer things as well.
Proof that this sort of thing is possible is incarnate in the Transmeta Crusoe chip. Of course, they chose to have a chip that is really power efficient, but imagine a a chip that is to speed what Crusoe is to power - Yummy.
I've heard objections that speed gains in the architecture might be outweighed by speed losses in the transformation. This is not true. The optimizations that a run-time VM can do are quite astounding - it can not only decide to unroll loops when necessary, but to expand a frequent multiplication by a memory adress into constant bitshifts, it could dynamically choose what to place into registers far more wisely that a traditional compiler can, look ahead and do IO access before the program needs to... I am no expert, but there's obvious potential here.
And here again, there are some innovative people at work, just look at HP's Dynamo - which takes native code and does real time optimizations (actually it does more than this, and is an interesting read. Transmeta wasn't the first. One of the interesting things is that actual optimized native code can still run faster under dynamo than simply natively. Obviously, this isn't the case for all programs, but its certainly not the case that Emulation/VM-ing is by definition slower than native execution. And realize, we're talking about an architecture (originally PA-RISC but porting activities are ongoing I believe) that wasn't even designed for this sort of activity. A CPU with this in mind could well do even better.
So my conclusion is that we shouldn't emulate VMware, we should, well emulate. Weird as it may sound, emulation is the future.
--EMN
DOS screenshots... God, they're beautiful.
Some people actually use their computers to get work done. As one small example: you'd be amazed how many control systems for industrial machinery are still run on DOS PC's. I run into them all the time.
Often their software was written by a long-since defunct company. Windows port? Hah! This stuff hasn't been rev'ed in atleast a decade. The company died, and the program sources went with it to it's grave. This is among the greatest arguments for open source software. If we had source to these control programs, then we could rewrite it for a Linux machine, or a Be machine or whatever-the-heck we wanted. We could update it to use more modern or more reliable computers. Instead, we're stuck hoping that that old 286 keeps chugging along.
Fortunately, for the most part, those 286 systems *do* keep chugging along. There are plenty of workhorse PC AT's sitting in cabinets, unceremoniously controlling production equipment -- pushing the GNP along. Eventually, they will die, and a replacement will have to be found. But as long as the old, dusty system still runs, why throw money at a replacement?
DOS was so universal for so long, and so much application software was written for it that it will be around for a very, very long time. Infact, DOS may even outlive the x86.
--Lenny
You can also find tools out there that take over the parallel and serial port drivers, and log data. The tools page at www.gphoto.org has the links.
Part of the beauty of this system is that you can run the guest os off of a disk image file. You can keep copies of the file. Run WinXX and try installing a program. Oops, it just messed up your VBRUNxx.DLL! Close the VM and copy from your "last known good" disk image. Also comes in damn handy for testing windows installation software for those of us who do cross platform development.
How's my programming? Call 1-800-DEV-NULL
I believe Plex86 has x86 emulation, so you can run x86 apps even if your box doesn't have an x86 CPU ... which I believe VMWare doesn't have ...
Wrong!, Plex86 will only feature x86 virtualisation, emulating an x86 on an x86 would be silly.
Howevever, the program Bochs (written by the plex86 author) has x86 emulation, but only parts of the bochs code will be used in plex86. In other words: if you want an x86 emulator, use Bochs. If you want virtualisation, use plex86 (when it gets usable) or buy VMware.
I have been following the Plex86/FreeMWare since it's inception. While I doubt it does much more than booting dos, it is impressive progress.
For those that invariably complain that you already have a dos emulator, the goal of the project is not to give you another dos emulator. It is to provide a free clone of VMWare. That is, to allow you to freely run any OS under (i386) linux. I don't doubt that it will be portable and will be ported, though. Booting DOS is the logical first step for its simplicity.
The point... When a project arrives at a milestone, don't complain because you think that it is not complete or because you don't understand what it's attempting. One of the problems(advantages!) with open source software is that people get to see the software in all of its stages of development. For those that are used to commercial software, you just get to see the final product, (usually) polished, and ready for the general public.
Plex86 is by no means finished. However, it has attained a significant milestone. And for that, they should be praised. I can tell you, the kind of work they are attempting is not easy!
So, it'll run Windows 98 then, right? Just a DOS app, what's the problem?
...as if the script kiddies didn't already have enough Denial Of Service tools at their disposal.
M$: "We're #2!"
I currently have VMWare up and running on my system. For those who don't know, VMWare stands for Virtual Machine Ware. From what I've gathered about Plex86, it does the same thing as VMWare, which is create a virtual machine that runs like a separate machine. It really is quite interesting software.
The difference I can see, however, is that VMWare is already developed and is already costly. For the student version (which is usually substantially cheaper) it costs $99. And for Joe Student, $99 is a whole lot. However, the technology is already advanced such that under my Linux box I have had Win98 running (for apps that just don't work under Wine). If you get the chance VMWare is avalable for a 30 day demo, which I highly recommend.
--
Bad spellers of the world, untie!
In the meantime, Plex86 is an x86 virualizer that allows you to run multiple OSen concurrently on a single machine. What this means to you and me is that you can boot Linux, then run a real-live licensed Windows98 under it, without emulation, at near-native speeds. That's the Big Goal, anyway.
One thing it can fer sher handle is booting Linux under Linux, which is a good thing when you want to see if that new kernel boots.
The sites being slashdotted pretty thoroughly right now...
--
This is not my sandwich.
This technology is something the OS community should really keep an eye on. Simply being able to run winzzzz at the same time as linux/BSD/Be/whatever is interesting enough. But that's just the start of the possibilities here.
With Open Source Plex86, it will be really easy to build a custom reverse engineering tool. Want a parallel port scanner? Don't have the protocol? Log all the output to the printer port. Easier said than done under winzzzz - unless its running under Plex86, which is already intercepting the I/O. Simply re-write the I/O traps in Plex86 (OK, not so simply, but certainly do-able) and log the traffic for later analysis. Same goes for WinModems. Possibly even for graphics cards with PCI/AGP I/O.
This is really exiting, and these are just the start. Support this project, folks, it's worth it!