Slashdot Mirror


Layers Upon Layers: Plex86 Runs Windows95

John Roberts writes, quoting the Web page of Plex86 wildman Kevin Lawton: " Plex86 now runs Windows95 on my Linux-Mandrake box, in full virtualization mode!!! That adds Windows95 to the plex86 project's previous list of guest operating systems which it can run: MSDOS, FreeDOS, and Linux. This is full virtualization mode. The CVS server already contains my latest source code. Here's a toast to all the people who have supported plex86 development... [klink, klink, sound of champagne cork popping] Check out this screendump." Woo Hoo! The cost of VMWare may have just risen a bit ...

12 of 287 comments (clear)

  1. And why not... by Pig+Hogger · · Score: 5
    For generations, big-blue big iron rigs have been merrily running VM in their dinosaur pens, where many OSes ( DOS , CMS , CICS , etc.) could coexist merrily on the same machine, without having to worry about silly details such as resource contention and the like, which was good when you ran one of the more lame-brained ones where you had to access your data by specifying the actual cylinder and sector...

    It's only natural that the same thing be finally done on microcomputers.

    Back in (MS-)DOS days, Desqview did it pretty cleanly, too. But Windoze pretty well screwed up the whole scheme with it's hare-brained design.

    --
    Americans are bred for stupidity.

  2. Bizzare project question. by Christopher+Thomas · · Score: 5

    The above comment about running Windows under Linux on a mainframe wouldn't work, due to incompatible instruction sets, but it brings up an interesting possibility:

    Has anyone tried writing a complete virtual processor/virtual peripheral system that performs dynamic binary translation between instruction sets?

    The canonical way of doing this - just running the program on an emulated processor with the desired instruction set - is hideously slow. You can't cross-compile the whole program, as parts of it will be inextricably bound to architecture, but you should be able to translate 99.9% of it to native code on the desired target platform. This would provide a vast speed boost over a purely emulated solution.

    You could even design the system to perform cross-compiling and optimization of the new machine code incrementally. Much as with Transmeta's translation technology, you'd perform profiling on the fly to give translation/optimization priority to the sections of code used most frequently.

    The advantage to this? I'm not sure, but among other things it would let me run Sparc binaries from the university servers on the x86 machine on the desk in my cubicle, or play MOO on the Sun boxen.

    Has anyone tried writing such a monster, with or without the "incremental" bit? What was the end result?

    1. Re:Bizzare project question. by Ronin441 · · Score: 5
      Has anyone tried writing a complete virtual processor/virtual peripheral system that performs dynamic binary translation between instruction sets?
      There are a few movements in this direction, that emulate the processor, but not all the other hardware you'd expect to find in a traditional x86 PC.

      One such is HP's Dynamo. It emulates an HP PA-8000 instruction set on, get this, an HP PA-8000. This emulation is faster than the native code, because it can do better optimisation.

      Sun's MAJC runs a similar optimising emulator, but it emulates a Java machine.

      I would guess that nobody's tried to emulate a complete x86 PC on a non-x86 platform largely because they'd also have to emulate all the features other than the processor: mouse, keyboard, serial, parallel, IDE, USB, etc.

  3. VMWare by Adam+Wiggins · · Score: 5

    Don't count out VMWare just yet. They have an amazing product that does a lot more than just run a guest OS - it provides complete network integration, cool suspend/resume functionality, and other nifty tricks. They are one of the few proprietary software packages that I think is actually worth the money they ask.

    Still, I'm glad to see a free replacement coming into maturity. I am in programmer-awe of anyone that can achieve what these guys have done.

  4. I've been following the project for a while, by dbarclay10 · · Score: 5

    I'll explain some differences in between plex86 and WINE(which may seem obvious to some, but is a valid question for most).

    WINE is replacing all the shared libraries that a regular Windows system would use. So, WINE isn't emulating Windows itself - it's really a compatibility layer.

    WINE does a lot more, but that's what it boils down to.

    Plex86 is what's loosely called a "virtualizer". You'll need Windows installed(to run Windows), or whatever other operating system plex86 is to use.

    When Plex86 runs Windows, Windows is actually runing on the bare metal, for the most part. Plex86 makes it possible to run two operating systems at once by trapping certain instructions that the guest operating system(in this case, Windows) tries to execute. If Windows tries to say, add one plus one, it'll go to the processor without problems; but if Windows tries to get raw access to all available memory, Plex86 will trick Windows into thinking that it has "all" the memory, when it really only has what Plex86 has set aside for it.

    This approach has up-sides and down-sides:

    Good:
    When Plex86 has become more mature, Windows and other guest operating systems will run at near-native speeds.
    Since the framework would be in place, you could run a whole slew of other operating systems under Linux, instead of just Windows(great for debugging, since you have total control over what the guest operating system sees and does).

    Bad:
    Well, you have to have the operating system installed. With WINE, most of the functionality needed will eventually be completely re-written under Linux.
    If Plex86 isn't extremely careful about what instructions the guest operating system is allowed to execute, you could end up with a really screwed-up system.

    If you think this is all great and good, but you want it NOW, there is a commercial plex86-like program, it's called Win4Lin, and is available at www.win4lin.com . I'm not plugging them - until plex86 is ready, that's what I'm forced to use(and also forced to use an outdated kernel because of it).

    Dave
    'Round the firewall,
    Out the modem,
    Through the router,
    Down the wire,

    --

    Barclay family motto:
    Aut agere aut mori.
    (Either action or death.)
  5. Re:VMware / Plex86 / UML for servers by nightfire-unique · · Score: 5
    Yep. I've got a fairly large Intel server (4x700mhz, 2gb ram, 10 spindle array) running Linux 2.2, hosting about 18 different virtual machines, under VMware. It's rock solid; seriously, many of the VM sessions have uptimes exceeding 200 days. Performance isn't too bad either, since most of the servers idle 90% of the time.

    The nice thing is that each of these boxen get the advantage of having somewhat fault-tolerant hardware. The memory in the host is ECC, there are 3 power supplies, redundant disks, hot-plug PCI, etc., that if implemented in each of the 18 separate servers, would cost an order of magnitude more. In effect, the incremental cost of adding a fault-tolerant server is basically the cost of the ram.. and a little cpu.

    Of course, if the host goes down, it means that you'd better get it up damned fast. :)

    My system usually sits with a load average around 0.50 to 1.50, and the servers (some NT, some Linux, and a solaris x86) are responsive enough, that most people don't even know they're virtual.

    I'd recommend giving this a shot to anyone who needs a lot of hosts (for security purposes), where each host is only mildly CPU or I/O intensive.

    --
    All men are great
    before declaring war

    --
    A government is a body of people notably ungoverned - AC
  6. I don't think virtual machines are the answer... by Gendou · · Score: 5
    One of the more important tasks in getting Linux more mainstream is the ability to run Windows apps.

    One problem is, virtual machine emulators are generally pretty clunky, slow, and reinvent a lot of hardware access that should otherwise be done directly.

    For these reasons, I believe the WINE project is more important than either VMware or Plex86.

    Don't get me wrong, I think Plex86 is a great project and virtual machines have many uses...

    But if you're a Linux user who wants to run Windows apps for one reason or another, or if you're a Windows user who wants to use Linux but are bound by Windows apps, then you need a better solution. Something smeamless. Something lower in the OS that will make executing Win32 binaries as easy as ELF.

    Currently, I don't think this is possible. We've got a long way to go, and it may be a while before Linux users will accept a, say, /lib/win32-xxx.so, for example. What I'm really getting at here is, we need focus on assimilation. We need something that acts like it's native. Putting VMware, Plex86, or even WINE in the process, creates a jarring effect that still is insufficient for mainstream use.

    We need: user@foo ~$ ./notepad.exe

  7. Re:Will it run Starcraft? by nightfire-unique · · Score: 5
    You've gotta be kidding me.

    Here is further proof that X sucks. It seems to me that it is frequently the impossible obstacle hindering the capabilities of almost every UN*X OS. I'd (conservatively) wager that its back asswards client/server model is actually useful 5% of the time, if that much.

    I'm using this 'back asswards' client/server model right now. To the contrary, I find it to be a very important tool for proper system administration. When I am remote, the ability to seamlessly start an xterm, or a graphical firewall management console over ssh is simply invaluable.

    For those that need remote displays, LET THEM USE VNC.

    Huh? What if I have an incredibly fast framebuffer on my SGI, and an incredibly powerful I/O and CPU set on my e4500? VNC doesn't help me much there.

    Let the rest of us move forward. I despise configuring X to do anything reasonable, and if it doesn't work at all, it's saner to simply break out the installation CD and try the install again than it is to try putting in monitor/video configuration by hand.

    Then use Windows. Seriously. Stop complaining. The beauty of this system is that you can make it do whatever you want. If you don't like the way it works, then write something new. I, for one, love X.

    --
    All men are great
    before declaring war

    --
    A government is a body of people notably ungoverned - AC
  8. Re:I don't think virtual machines are the answer.. by nightfire-unique · · Score: 5
    Well, you do have a point. But, the problem is that emulating a PC is a lot easier than emulating Windows. And, Microsoft can outdate whatever we make in months.. often weeks (with service packs), such that we'd always be playing catchup.

    The nice thing about letting real windows run in a VM, is that it'll always run perfectly (albeit a little slower, but VMware is pretty quick). PC hardware tends to change much slower than Windows code. :)

    --
    All men are great
    before declaring war

    --
    A government is a body of people notably ungoverned - AC
  9. Lawyers Upon Lawyers, Plex86 runs from Windows95 by TheDullBlade · · Score: 5

    L1-Bill, we've looked at everything, they're not doing anything illegal.

    BG- Look harder! There has to be something in the EULA that makes this illegal. The damn thing's longer than my arm in small print!

    L2-You see, that's the problem, if they've agreed to the EULA, they've paid for the software. They have a right to run it however they want. We are getting paid for those copies.

    BG-I want results not excuses.

    L2-Calm down, sir...

    L3-Wait! I've got it! You're only allowed to run Windows on one COMPUTER at a time, and we've defined COMPUTER as any digital electronic device, not necessarily a hardware device. I think we can convince a judge that it's a seperate computer when they run Linux.

    L4-Also, if we can find a handful of people who are running illegal copies of Windows in Plex86, the software authors clearly contributed to copyright infringement.

    BG-Excellent. I'm not sure it'll play in court, but it sound legit enough to scare some managers. Start sending threatening letters to the web hosts immediately.

    [general maniacal laughter all around]


    --------

    --
    /.
  10. the chase begins... by hugg · · Score: 5

    Somewhere in an underground fortress in Redmond, thousands of miles beneath the Earth's crust, engineers from the "Plex86 Incompatibility Project" are working feverishly...

  11. Plex86 vs Wine for playing The Sims. by landley · · Score: 5
    Wine allows you to run Win32 programs as native tasks under Linux. It does this by providing the Win32 API in Linux shared libraries, plus a few other tricks to actualy make it work (a server process to simulate some windows environment stuff and a loader that does some thunking on the executables it loads).

    Running under Wine you're not actually running windows, just windows programs. You don't need a copy of windows installed, and you don't need a windows partition (loopback or otherwise).

    So for things that CAN run under Wine, it's a better solution. They can show up seamlessly on your X desktop as normal X windows, and be launched by the kernel misc binary support straight from the command line or a gnome double-click.

    The problem is, Wine can't run The Sims. And it's entirely possible it never WILL be able to run The Sims, because that game insists on loading a VxD in Ring 0 (for no apparent reason). Wine only emulates user mode code, not stuff that needs to run in ring 0 (I.E. wants to be part of the kernel.)

    Wine's normal response to this is for the Wine developers to write their own implementation of common VxDs and include them in Wine, and recognize when a VxD is encountered and try to use their implementation instead. This helps with common stuff like DirectX, but doesn't help if the developers of the software actually DID write their own VxD. I don't know what the case is with The Sims, but on a theoretical level Wine can never be a 100% solution when the problem is inherently screwy. Windows allows programs to lobotomize its kernel on a whim via ring 0 VxD's. Linux ain't gonna do that. It's not that we're not actually able to, we're just not stupid enough to WANT to.

    Plex86 doesn't care about VxD's. It lets them think they're running in Ring 0, although it's an emulated Ring 0. This means that Plex86 should be able to run The Sims without me having to reboot into a windows partion.

    I like this.

    Rob