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 ...
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.
Seriously, one wierd thing about vmware is that it is inflexible with the number of colors. Games that open up screens using DirectX won't work because of how vmware's "video driver" works. Anyone have any idea of this is just a fact of machine emulation, or a vmware-only thing for optimization?
http://www.naildrivin5.com/davec
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?
I have to say it...you're about to complain that soe software doesn't run windows 95 with enough stability for you? Have you ever used the OS? :)
That's like wondering about whether your left turn signal will last a long time when you're in a 30 year old fiat in the fast lane of the Autobahn.
Look at related past scenarios: VirtualPC and SoftWindows for the Mac do essentially the same thing (with minor performace issues), and Microsoft doesn't seem to mind them. WMWare hasn't been hassled by Microsoft, to the best of my knowledge, either.
But yeah, I'm sure Plex86, which is probably riddled with bugs and compatibility issues at this point, is going to scare them into litigation. Makes sense to me.
VMWare's licensing is changing though. I got this email last week
1 .
Dear VMware Customer,
When we introduced VMware software, we wanted to allow students and
hobbyists to use our product on a private, non-commercial basis. So
we created a hobbyist/student price and made it available on the
"honor" system. For a single-user electronic license, the discount
price was US$99. And the price for the packaged product was US$129.
We are dedicated to keeping this valuable discount for our academic
customers. However, in the future we will handle these sales through
a distributor who specializes in selling to students and other
academics via educational channels -- such as campus bookstores,
catalogs, and Web sites. (Watch your email for the complete details.)
And we will continue to deal directly with academic institutions that
wish to buy multiple copies of VMware for their classes and
training programs.
If you qualify for the current program, there's still time to act.
The last day for new non-commercial orders is December 4th. To order
a copy, visit our store on the VMware Web site. The hobbyists/student
discount information is located at
http://vmware1.m0.net/m/s.asp?H2458203403X90017
Sincerely,
The VMware Team
Install a Windows app under Windows, and it populates the 'Start' button.
Install a Windows app under Plex86, VMWare, Win4Lin and each time you want to use that app you have to switch to another window or turn on the other operating system just to have the chance to click that damn Start button.
To me, it's no big deal...but to a few non-geeks I've talked to as well as a few Uber-geeks, it's the only concern; is it exactly like running the same app under Windows?
It can be. The good folks at Codeweavers are working on a user interface that automatically populates the KDE and Gnome menus, allowing novices to install thier own software. Very slick -- and a critical safety blanket that can tempt the novices over to Linux let alone to other *NIX.
At this point, the pre-release is available for download but Wine itself isn't yet a 1.0 release...so many apps might be easy to use if they can be installed.
A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
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.
You can now emulate your computer using your computer(or 'virtualize,' whatever). The important part here is that you can run the emulater in multiple instances. Oh, and running Windows is pretty important for the mainstream too, I suppose.
I Browse at +4 Flamebait
Open Source Sysadmin
If plex86 runs win95, how far away is it from running win98 (especially win98SE)? I'm sure I'm not the only slashdot user that has no clue about the differences between 95 and 98, besides the obvious ones.
Oh, and congrats Plex86 team! You did one hell of a job.
I've been using VMware to "do the windows work I need to do with the stability of Linux" and I'm thoroughly pleased. USB support + some speed improvements would be great, but all in good time.
That way I can run linux on my x86
Trolls throughout history:
Jonathan Swift
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.)
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
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
I am glad to hear that Plex86 (FreeMWare) is having great successes. I am currently a VMware and WINE user and look forward to having other choices available.
One of the great (and under-documented) features of VMWare is the vmware-mount.pl script that allows the user to mount a vmware disk image as though it were an ordinary directory on the U*ix filesystem.
I have had great sucess using this scipt and my vmware disk file (nt4.dsk) with the WINE 'emulator'. I have my wine.conf file pointed to where I have mounted the disk image (/mnt/vmware).
I personally feel that emulating Windows under U*nix is a good thing, it allows people like myself, who only have one machine and hesitate to reboot just to use a small application, and additional level of flexibility.
Now, does Plex work with PC-GEOS?
What, are you just completely redundant? of course it has no relation: Plex86 DOES NOT RUN WINDOWS PROGRAMS. IT ONLY RUNS WINDOWS. Windows runs the windows programs. Plex86 runs windows. This is NOT WINE. There is no Microsoft or even microsoft-Like code in it.
Plex86 starts up Windows, running as a process. All well and good, right? Well, that Windows process is talking directly to the processor most of the time, so it's sort of running next to Linux on the box. HOWEVER, that's only most of the time. Plex86 traps instructions relating to memory, etc.. and keeps Windows contained to a little section of the true memory, etc of the system. Thus, some of the time it's next to Linux, some of the time it's on top of Linux.
As they say on the Plex86 website:
Interestingly enough, one of the first uses of this kind of virtualization was under IBMs OS/370, which is/was used on big mainframes. If you get the chance, Linux can run under (diagonally from) OS/370, so in theory you could get Win95 on a mainframe. (Gasp.. choke..
I believe it was a month ago that it was announced that plex86 could run dos. Didn't exactly take very long to move up to 95.
This program dosen't replace windows, it basically makes a virtual machine that the OS can boot into. This means it shouldn't be incrediably hard to make 98/ME/Win2k boot into it. I wouldn't be surprised to see this announced within months.
Besides, this is more of a replacement for VMware. Basically being able to run some windows apps without booting into windows.
I run linux almost exclusively. Sometimes people send me word docs, and it would be nice to be able to open them in word running in windows without a second machine, or requiring a reboot.
As for running windows games, Wine is a better hope for this. I personally prefer supporting game vendors that actually support linux.
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
Now THAT is a screenshot I would like to see :)
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]
--------
Seriously, though. VMWare is a combination of user level programs and kernel modules. The user level program isn't so interesting, but any bugs in the kernel modules could be devastating. It seems that Plex86 requires at least one special kernel module to be loaded in the host system. Which means stability is a real concern. Laugh when Windows 95 crashes inside the user level Plex86 GUI, but if the plex86.o module crashes your host system, you won't laugh.
I do not in any way mean to suggest that Plex86 is not stable -- I really have no idea, and Kevin has a great reputation. But stability does matter for things like VMWare and Plex86, even if they're being used to host lesser OSes.
From a security perspective, having the source for kernel modules seems a very good thing, and this is an advantage for Plex86 over VMWare.
And the timing for the recent successes (booting Linux, running the full Win95 GUI) couldn't be better, as VMWare is apparently about to discontinue its non-commercial/hobbyist license. If the rumors of VMWare leaching off Kevin to get their start are true, then I won't shed any tears for sales they lose to Plex86.
Thanks, Kevin, and MandrakeSoft!
Any program that runs on an x86 system will run on a perfect simulation of an x86 system.
plex86 is a simulation of an x86 system, so why wouldn't "proprietary microsoft stuff" work? You think they left something out of the driver specs? Such a move would not be to their advantage because you'd have incomplete drivers. . .
Somewhere in an underground fortress in Redmond, thousands of miles beneath the Earth's crust, engineers from the "Plex86 Incompatibility Project" are working feverishly...
You can't run win32 binaries without copying Windows right down to the bugs.
I'm totally amazed at the success the WINE project has accomplished. I'm quite surprised that anything runs in it at all. Even so, you still really need a copy of Windows to get the DLLs you need.
Personally, I think that Plex86 (and in the long term, Bochs) is the best way to handle it: keep it nicely locked up in its own little corner where it can't hurt anything, running the original software, just like emulating every other old platform. Hmm... how long 'till Mame runs Windows? (now that's a truly amazing project)
--------
The screen grab posted shows the ungodly hour of 2:13AM. Can we really trust code that was finalized at this time of day? What kinds of mistakes have slipped in due to sleep deprivation?
Anyone remember OS/2's special video driver for WinOS2 that made windows programs appear to be part of the OS/2 presentation manager ("seamless mode")? It sure would be nice to see something like this for Plex86 - a windows display driver that relays messages to an X-aware process that create and manage separate X windows for each Windows application.
--
All men are great
before declaring war
A government is a body of people notably ungoverned - AC
...and it has for over a year.
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
Most mainframes don't use x86, and so x86 virtualization is not an option for them.
No, not x86 virt.. just the virtualization by means of command trapping and direct processor access...
But in the case of running Plex86 on the S/390 (whose hardware, as well as software has explicit support for virtualization, which is unusual), the direct proccessor access would be for the wrong proccessor. To run Windows with Plex86, you need an x86. To even run Plex86, you need an x86.
So yes linux can run on an S/390 (not an S/370), but no you could not run Plex86 on it.
You could run bochs though (probably) which is a true x86 emulator and then run windows on that, but I don't know why you would.
There comes a time in every man's life when he must say, "No mother! I do not want any more Jell-O!"
If you can't live without a good browser and some games then like me you need to run something like Win2k.
What I have done is set up another box in my home lan with RH7 and run eXceed on my Win2k "Desktop" Machine.
Samba is a little difficult at first with win2k, and win2k Internet Sharing is actually quite good, hence i've made it the internet gateway.
It works really well and EASILY, I export my Display to my Win2k box running exceed from my linux box, e.g.
export DISPLAY=192.168.0.51:0
and run something like: emacs &
This is the best way to get the best from both OSes.
I would suggest that the slashdot crew make a new icon for plex86 rather than using the wine icon 'cause these people may enough press in the future to deserve it.