Ask Kevin Lawton About Plex86 212
Kevin Lawton, currently employed by MandrakeSoft, is the creator and driving force behind Plex86, the Open Source X86 virtualization software which runs under Linux and now boots several operating systems, including QNX and Windows 98. This is a tricky endeavor, because (among other things), as the plex86 site states: "The x86 processor is not 'naturally' virtualizable. That is to say, it was not designed to run multiple operating systems concurrently." But with enough feints and jabs, Kevin and company have cajoled it into doing so anyhow. He's agreed to answer your questions about virtualization (and / or emulation -- he is the guy behind the also-Open Source bochs project to emulate X86 processors), so please post your stumpers below. Make sure to check out the Plex86 website first, and perhaps read other things about Plex86 on Slashdot. (And "What's the point?" is not a stumper.)We'll forward the top questions on to Kevin, and hear back from him soon.
Re:Plex86, Bochs, Platform Independence (Score:1)
Did VMware really steal your ideas? (Score:1)
Of course you can opt not to answer either question. But then people may rightfully suspect that you're happy to let these rumors exist, without having to take responsibility for them, simply to fuel dislike for VMware and gain support for your cause.
Re:Suuuuure Re:Plex86 vs. VMWare (Score:1)
Because if so, then why in hell are so many people using linux, when superior, Free'er OS's exists in the BSD's
You're missing the point Bruce was supplying here. When comparing a software package you're actually paying money for, to a free one, the pricy one had better give some advantage, otherwise there's no reason at all to pay for it.
As regards xBSD vs. Linux, both are free (beer/speech) so the issue Bruce was explaining doesn't apply between these two. Please take your BSD advocacy to an appropriate thread.
Are you afraid of legal/other responses? (Score:1)
Open source as a religion (Score:1)
This is precisely why Open Source software is in danger of destroying itself. Certainly if one is given a choice between two pieces of software with comparable features and the only distinction is that one is free and the other costs $300, a person will choose the free one. This is unfortunately human nature, and while I am sure there will be a few charitable souls that will purchase the commercial package out of pity, those few will be more than outnumbered by the innumerable hordes who know no world outside of the "everything is free" OSS utopia.
Because of this, yes, they do run the very real risk of driving commercial organizations into the ground. Many OSS advocates would not mind seeing this. However, as we have seen with plenty of projects in recent years, Open Source efforts tend to be abandoned. They have a sponsor (or sponsors), are developed furiously for a period of weeks or months, advanced to the point where they are at least partly functional, and then dropped on the floor.
At that point, the masses have nowhere to turn. They have the source, but the truth is that 99% of all Open Source users cannot be bothered to do any maintenance on the code they use. So now we've got tons of people stuck with a piece of unusable software. If the commercial alternative was still available, they would have some place to turn to. Ironically, though, their devotion to Open Source has dried up the well of potential commercial replacements, because those replacements have been chased out of down, tied to a fencepost, and beaten to death by zealous ideologues.
The problem with Open Source can be boiled down to one simple concept: the worship of Self. End-users cannot be asked to actually (gasp!) pay for their software, because they worship themselves and would rather spend their dollars on things such as MP3 players and alcohol. Developers refuse to take money for their software because they are more interested in immediate ego gratification than they are in financial gain. Their worship of themselves clouds their economic reason. And since they don't pay for any of their software anyway, who cares if they don't get paid?
Many people have tried to draw parallels between Open Source and sociopolitical/economic systems such as Socialism and Communism. I don't think that is entirely accurate. There may be some valid points there, but I think the devotion to OSS is more of a religion. The closest religion that extreme self-worship comes to is Satanism. The name "Satanism" is a bit of a misnomer, since the religion is not about worshipping the devil, but about self-Godliness, the worship of self, and the immediate gratification that comes from it.
Now this does not mean that all OSS advocates are Satanists, but the similarities are there.
The Hurd (Score:1)
The question I have is: Can you run GNU Hurd on it? (Or even run plex86 from the Hurd?). A while ago there was talk about how to use VMWare to boot the Hurd under linux, with the oblicatory comments about non-freedom of the product, and people suggested supporting OS products first. Unfortuantely, I haven't found information on how to do this.
If I could run Hurd under linux, I'd be helping the project, but it is hard when I would have to reboot to do much.
Re:But by then you're pretty much running Linux. (Score:1)
The goal isn't to run a stripped-down Linux in a VMM. The goal would be to run the VMM on the bare metal. It becomes the OS, and thus needs the device support. Traditional OS's are just applications in this model, like the Guest OS in VMware/plex86.
--
Re:Suspended state on Plex (Score:1)
A suspend option is very useful for a virtualizer, though. I use it in VMware all the time.
Interestingly enough, "instant restore" (and shutdown) for desktops/servers is available for FreeBSD now via the Rio [umich.edu] project and probably could easily be ported to Linux.
--
Re:Are you endangering commercial software on Linu (Score:1)
I purchased a copy of VMware, and have been mostly happy with the results. However, it seriously lacks support for external devices. Only the cdrom, mouse, parport and a couple of other minor devices are supported in VMware.
I plan to do much work in MIDI in the near future and would like to have this work in VMware. Unfortunately, I have no option to add such support.
With plex86, I have this option. plex86 fills a need. The commercial VMware is not supporting its users in ways they desire. An itch exists and Kevin is scratching it.
--
Re:Native parition support (Score:1)
but even so, if it isn't useful, IMHO it doesn't exist (yet).
--
Re:fundamental feature or hack? (Score:1)
These advantages also apply in single-user environments to various degrees.
--
Re:Issues with Debian (Score:2)
If Kevin does not want a DFSG-Free plex86, then that is his choice and I can accept that. I'd even cheer that decision because no developer should be forced to license their code in any particular way.
However, beyond the Free Software rhetoric, there is a practicality issue here. I could always package plex86 up outside of Debian-proper and provide the apt sources to allow people to fetch it. However, this means plex86 won't be distributed on some Debian CD images and it won't be mirrored on some Debian mirrors. This is true even if it is filed under contrib in the official archive. This, I think, would be very unfortunate, as Debian is known for the wide-range of packages available and its open development model, both of which drew me to Debian in addition to the packaging system.
--
Re:Are you endangering commercial software on Linu (Score:2)
Linux does have potential (as yet mostly unrealized, and certainly with more work needed) to compete against commercial software. Frankly, I think that's fine. The commercial software vendors who innovate, provide excellent support and the like will survive; those who don't, won't, and the people who would have bought their products will use (and fund further development on, if necessary) Free software. What's not to like?
I support free software for a living, and the pay is fine. (Well, my pay individually sucks, but that doesn't apply to most of the rest of our employees; it's part of the price I (happily!) pay for living in Chico rather than Sunnyvale).
Btw, I work at MontaVista Software, and while Engineering is linux-based, we're still working on converting sales and management. With the use of such products as Win4Lin (in particular), we're actually making real and significant headway in that direction. You may wish to check out Win4Lin if you're really serious about running linux on your corporate desktop while keeping your Windows apps.
Timeline? (Score:2)
Also, are there any other GPLed projects that you think could help out, or vice versa? I think DOSEmu could benefit a lot from some Bochs code, for instance. (I know DOSEmu has its own CPU Emulator, but I have yet to see it do a whole lot...)
The last time I tried Plex86 out, it looked like Bochs was actually faster, and that's saying something. Maybe there was a parameter I needed to tweak in the configuration file. I couldn't get Plex86 to boot Win98, although DOS worked.
Oh, and I had a fun time trying to determine how much of my Windows partition consisted of the MBR. (comparing the first chunk of
---
pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
Re:Native parition support (Score:2)
I took a longshot that this would be supported, and I ended up losing out.
Re:Open source as a religion (Score:2)
When Plex86 catches up with VMWare, VMWare will have had a three year period in which they were the only player in the market. If they couldn't find anything patentable or unique in that period, is it the fault of somebody rewriting their application from scratch for taking their marketshare?
Besides, Plex86 has no traditional support (ducking flames) and is not currently at the same level of operability as VMWare.
Will developers polish, document and stand behind their products to gain marketshare and customer satisfaction? Not for free.
Personally I think VMWare is overpriced. In most cases, it would be cheaper and provide more flexability to buy another machine than it would be to buy full licenses, RAM and the VMWare software to go along with it. Its only real niche is as a development, educational or testing tool.
Re:Are you endangering commercial software on Linu (Score:2)
Thanks
Bruce
Re:Suuuuure Re:Plex86 vs. VMWare (Score:2)
Thanks
Bruce
Re:What is the purpose? (Score:2)
The fact that it can run Windows tends to blind people to other uses.
Re:That's where Linux could help ... (Score:2)
Re:Where would you like to go tomorrow? (Score:2)
That was my milestone
NeXTSTEP or OPENSTEP? (Score:2)
Re:What makes a processor virtualization-friendly? (Score:2)
Not that I can find. One sentence in the "information" page mentions that it's hard, but gives no further details. If there's a giant auxiliary FAQ anywhere, it's well-hidden.
Re:That's where Linux could help ... (Score:2)
Right. This makes sense to run an OS like Windows, but if you wanted to run (say) Linux under Plex86 (which would be similar to User Mode Linux [sourceforge.net]), the kernel could be modified to make Plex86 API calls directly instead of forcing Plex86 to emulate forbidden operations. This could be much faster, particularly if Plex86 knows that the guest OS won't try any "funny" stuff.
If a guest OS advises Plex86 (through an API call) that a certain type of operation won't be done, then later tries it, it would be quite acceptable if the guest OS is terminated rather rudely (with a useful error message, of course) for lying about it. It would be unacceptable (obviously) for the operation to succeed when it should have failed, so the possibility of some operations may have to be checked for, to maintain security. Apart from security considerations, such advisory API calls could save Plex86 from the extra effort required to emulate correct functioning of forbidden operations...
Re:What makes a processor virtualization-friendly? (Score:2)
For non-virtualizing operating systems, this makes sense. By making the instructions to examine the system state non-privileged, you both simplify the job of writing the operating system (because you don't have to emulate those instructions), and you also receive a performance boost (because executing those instructions don't result in exceptions). The tradeoff comes when you try and implement a virtual machine environment, and find that you can't, because even in protected mode, a program can find out "too much" about the actual state of the processor.
Isn't the solution obvious? All you need is a "virtual" flag bit that triggers an exception for all such operations (anything that could expose that you're not running on bare metal), and only generate those extra exceptions when the flag is set. Then you don't pay the performance penalty when running a "normal" operating system, but the processor is easily virtualizable "at the flip of a switch", as it were...
Why was this never added to the 386, 486, Pentium, Pentium Pro, Pentium II, Pentium III, Athlon,
Questions, questions, questions... (Score:2)
Second, what is the plan on supporting devices within the virtual environment? Devices such as USB, FireWire, etc, etc..
Third, has anyone thought about hacking Windows (or any other OS) running within Plex86 to allow a transparent Windows desktop ala MacOS X with Classic? This would fall into the nifty but not needed category, but would probally surprise a few folks
Glare at your local bus driver (Score:2)
What are the project priorities? (Score:2)
I think that it is great that you are planing on doing an open source VM, but so far the project looks like the bochs and performs about as well.
I don't want a lot, I just want it all!
Flame away, I have a hose!
Plex86 and MP (Score:2)
First off let me say i love the work you have done, I use bochs all the time for testing.
My question is how well will Plex86 support SMP? will it be possible to run One guest OS per CPU?
I guess I'm thinging of a Mainframe like Protected Enviroment. Where each server is on its own CPU with its own ram. If that CPU and mem get hacked it would be a risk to the whole system.
Re:kevin, what do you think of my crazy ideas? (Score:2)
I would imagine once Plex86 is fully operational, it should be able to do this stuff too.
Question (Score:2)
Which of the technological problems did you find to be the most satisfying to solve and why?
Also, what impact do you feel plex86 will have on the Linux community?
Re:OPENSTEP (Score:2)
The only problem is -obtaining- a copy for cheap...still pricey everywhere I can find it.
"If ignorance is bliss, may I never be happy.
MATLAB libré (Score:2)
That's not the only one, but the names of the others escape me at the moment. The issue is not that a free alternative for MATLAB doesn't exist; rather, that MATLAB has yet to be displaced by one in many settings (certainly so at my institution).
I don't know if MATLAB has important features yet to be implemented in free software-- but I have to agree that numerical computation stuff isn't exactly the hardest thing to code up. It's probably more an issue of inertia (cf. MSOffice vs. StarOffice)
Re:Plex86 vs. VMWare (Score:2)
It's not clear why this should be specific to developing software for Linux. On some of the OSS mailing lists I subscribe to, over half the traffic is questions regarding the use of that software under Windows.
Conclusion: OSS is going to undercut the commercial market for any kind of software, so long as that software is commonly useful enough to attract the minimum necessary number of volunteer maintainers. (I call this "staple" software.) Commercial software will have to retreat into specialized niches, or, as others have pointed out, supply value-adding innovations that make it attractive to consumers in spite of the price difference. (Or, third option, rely on bogus patents and legal harassment to keep the free competition down.) And for commercial developers who decide to go the value-adding route, they need to realize in advance that it will be a perpetual struggle to stay one step ahead in the game.
I personally don't have a big problem with OSS undercutting commercial software. It's just the march of technology: programming skills, development platforms, and high-speed communications have simply reached a critical mass that forces a paradigm shift in the economics of programming. It's supply and demand applied to lines of code: there are now innumerable individuals able to supply lines of code by the heap, and once written the cost of reduplication is almost nil.
Demand, large; supply, infinite. At least for "staple" software.
Yes, to some extent I feel sorry for people who want to make a living selling code. But I also feel sorry for people who wanted to make a living as blacksmiths or stonemasons, and for people who invested in companies building steam engines.
For better or worse, technology often obsoletes trades and other lucrative economic ventures. The best strategy is to face up to it and adapt to the times, because the clock is rarely turned back on this kind of thing.
--
Re:PlexOS? (Score:2)
Standard feature of Linux? (Score:2)
I think that would be really useful...
________________________________________
Plex86 is not Linux or Windows centric (Score:2)
This is missing the mark.
Plex86 is in effect its own operating system. It provides a "meta-os" that lets other operating systems run at the same time. So, yes, it will let Linux and Windows co-exist in a way that's cleaner than constant rebooting. But more than anything, Plex86 is opening the door to other choices beside the old tech of Windows and Linux. New OSes won't be as out in the cold, because they can be sampled alongside current software. Even better, developing new OS software will now be much easier. Possibly this means that it will detract from both Linux and Windows in the long run, but that's not the issue. The issue is that it is a stepping stone for future advances, rather than forcing everyone to cling to current technology because there are no alternatives.
Re:What makes a processor virtualization-friendly? (Score:2)
Re:Plex86 vs. Profits (Score:2)
Re:Plex86, Bochs, Platform Independence (Score:2)
There is no architectural limit preventing Plex86 from being ported to just about any x86 OS, indeed it is explicitly catered for in the design (via a OS-specific kernel code file with all the needed support functions in it). You may want to think about the implications of running a fundametally insecure OS (like windows) on top of a built-for-security OS like FreeBSD, however.
Incorrect use of terminology (Score:2)
I'm surprised about the misuse of terminology here from someone so knowledgable about Open Source and Open Source related matters. Whether a project is a Open Source or closed source has no bearing on whether it is commercial. There are many commerical Open Source projects, and many non-commercial closed source projects.
If a closed source vendor can't do better than an Open Source vendor.
Mike
Re:Plex86 vs. Profits (Score:2)
Good question. The short answer, in my opinion, is that MSFT undercut Netscape strictly to wipe them out, then gain browser dominance on WinXX, then tie the browser to the OS, and lock the customer in.
Plex86 is releasing a product not strictly for money or power, but to fulfill a need the authors see for their program. They're not doing it to compete with VMware for customers, they're releasing it free (beer and speech) for the benefit of the community.
Maybe I'm an idealist, but I think that's the gist of it. I doubt for a second that MSFT gave a rat's ass about the community when it released IE for free.
And I also don't like the fact that Walmart buys things in major bulk so it can shut down all the small mom&pop stores by undercutting their prices. Once again, the difference between OSS and Walmart is that Walmart is doing it to compete for customers and gain $$$. OSS people are doing it for fun, for pride in their work, and to help out the community (again, maybe I'm an idealist). So there's a fundamental philosophical difference. It's more than just a question of economics, I guess.
Re:Plex86 vs. Profits (Score:2)
Thank you, I'm glad I'm not the only one that sees it this way. Free software / Open-Source programmers are living in the true spirit of capitalism, if you think about it. It's a free market, and the distribution of code is free. So, if they can release a software package cheaper than their commercial counterparts and correspondingly take that companies business, well, that's the way the capitalist cookie crumbles. This happens between companies all the time in the business world. If you play the game, be prepared to lose too.
Companies may complain about how this takes business away from paid programmers, but that's what capitalism is all about. free market leading to freedom to choose the cheapest solution. in a free market, if someone can offer a product that's cheaper than an alternative, than the more expensive product had better offer more advantages making it justifiable to pay more for it.
As Bruce said, if companies can't offer a reason to pay more, better start packing up. Even if the comparitive software wasn't free but just cheaper, the same thing goes. Free software is an interesting case of capitalism to the max - zero cost of purchase.
Re:Plex86 vs. Profits (Score:2)
Believe it or not, I actually agree completely with you. I'm really not a fan of capitalism in the extreme. The extent to which many adhere to the spirit of capitalism really pisses me off. For instance, the way many companies forsake product quality and customer service for increased sales and earnings and profits, etc. The dollar, or perhaps the Shareholders, come first.
I don't want to get into a debate of economic theories, etc. But whenever I voice these concerns to people, they always say, "well, that's what capitalism is all about". And then these same people like to call free-software advocates communists. So the opinion I expressed in my original post, is my own justification of why one can think of free-software folks not as communists, but as capitalists of a different sort.
It's kind of like Walmart undercutting the prices other stores, so they take most of the sales. If this is valid capitalism, then so too, is giving away a product that doesn't cost anything to distribute.
Note that I'm not trying to prove that free software won't impact the economy in any way. I'm just tired of hearing people complain and call OSS folks communists (in a negative sense of the word), when in fact, you could think of them really as capitalists. And did I mention that I'm not a big fan of capitalism, at least the way it's manifested here in the USA?
Of course, you're bound to disagree, but this is my two cents.
Go get Octave (Score:2)
Someone above mentioned this, but go get yerself Octave. It's mostly MATLAB compliant, but does alot of other cool stuff. Plus, it's threaded, so it will distribute nicely across other CPU's. (unlike current versions of IDL and MATLAB).
I'd love to see alot of college students hack away on Octave and make it even better. Spread the good word!
But by then you're pretty much running Linux. (Score:2)
To support the S/390-style virtualization, plex86 would need to include from-scratch drivers or models for a reasonable amount of the hardware a guest OS might use. Of course, they could leverage the Linux source for some of this.
But by then, you're essentially running a stripped-down Linux kernel, and plex86 already has support for that.
Plex98? (Score:2)
[And only if no-one else yet asked: when can we expect a "stable" release? }:-) Don't worry, I won't pin you on any estimated release date
It's... It's...
how about a processor? (Score:2)
OS/2 support/problems (Score:2)
Does this compete with others? (Score:2)
A corrollary: version drift (Score:2)
When I looked at the plex86 kernel module, I noticed little in the way of providing documentation about assumptions made about this particular kernel/"application" interface, and with the vivid Wine memory made me think twice about trying to port the kernel interface to either of FreeBSD or BSD/OS, my two main platforms.
Am I overlooking some docs, or does this issue need addressing?
Also, performance is next to irrelevant in my book, and I'm wondering what the focus on plex86 will do to the Bochs emulator, which works fairly well on BSD/OS, but again doubts on it's future have kept me from firing up gdb and trying to find the fixes that would make it work for me -- it doesn't itch quite hard enough at the moment to justify sinking time into, considering its unknown fate. It'd be really kewl if plex86 would have an emulation mode that makes the plex86/bochs distinction obsolete. Again, am I overlooking the obvious?
Who is the moderator on crack ? (Score:2)
Large scale virtualisation means having an architecture where additional emulated hosts are not costly. This can have a lot of use for colocation facilities (but only if plex86 can be secured, which may be very difficult), or for labs (each student have access to each own private operating system).
(Btw, the current ad on top of this page is for vmware (http://ads12.focalink.com/SmartBanner/page?15445
Cheers,
--fred
Re:Are you endangering commercial software on Linu (Score:2)
Great illustration of difference between proprietary and free software. VMWare knowledge is not accessible while Plex86 is just one link away:
http://www.plex86.org/research/paper.txt [plex86.org] (And is a very very interesting read)
Thanks for the interesting post, anyway
Cheers,
--fred
Better virtualisation support ? (Score:2)
It seems an obvious flaw. Why intel or AMD didn't do anything about it ? It seems pretty trvial to add a way to trap the dozen or so of non-virtualisable instructions.
Often, choosing between two processors vendors is a matter of personal taste (I for one, buy only AMDs since intel added the CPUID), and the one who'll make 'virtualisable' processors would have a definite benefit technically, (ie: plex86/vmware would run faster on them), commercially (another buzzword) and would be an obvious choice for everyone running multiple OSes.
Why didn't this occured ?
Cheers,
--fred
Virtualization beyond just the CPU (Score:2)
Transmeta Code-morphing? (Score:2)
Yes, a very important message! (Score:2)
If VMWare wants the money of the people, it needs to provide a better product than that written by the people, for the people.
VMWare can support multiple architectures
VMWare can offer better performance
VMWare can offer more flexibility
VMWare can offer more supported devices
VMWare can offer better packaging and convenience
It's the issue that if a person is not satisfied by a commercial product, a person has every incentive to go out and code their own; it's very much a capitalist-freedom thing. If things don't work the way I want them too, I'm free to make something that does, and if I wanted to sell it to other people, I can, and if I want to give it away, well, I can do that too ^^
Geek dating! [bunnyhop.com]
Re:Plex86 and windows device drivers (Score:2)
There are other ways of doing this though. You can write a guest specific driver that is designed specifically to pass information to plex86 rather than to try and emulate an existing card. This may be more efficient, but means you have to write drivers for all your different OSes. VMWare does something similar with its video driver
One really nice idea (in certain situations) is to give a piece of hardware over to the virtualised OS entirely. No virtualisation is then needed - the OS running in plex86 accesses the hardware directly with just some I/O address translation done by plex86 (sort of equivalent to the difference between IP masquerading and transparent proxying). For something like a parallel port which holds little state, a device can be assigned to the virtualised OS temporarily, and then be claimed back.
I think someone was also working on allowing certain PCI slots to be given over to the virtualised OS. eg. If you have to NICs you can have Linux using one and your virtualised OS using the other directly. The same should work if you are lucky enough to have two video cards and monitors - display one OS on one monitor, and the other on the other, using the host drivers in both case (and therefore hopefully getting opengl/directx support etc. with no extra work). Of course this would have to remain as just an option if you happen to have spare peripherals.
Re:Plex86 vs. VMWare (Score:2)
VMWare no doubt have a pretty cluey team. They'll probably be able to use their collective knowledge to come up with some new clever emulator or other piece of software magic.
The real threat to VMWare would more likely come from someone taking Plex86, porting it Win9x and BSD and selling it as a bundled up package.
It's important to remember the cost/value of wrapping something in plastic and selling it. Think of Red Hat.
running my favorite app (Score:2)
Thanks for bochs!
Fred
Re:Plex86, Bochs, Platform Independence (Score:2)
Broaden the (Score:3)
SMP systems (Score:3)
PlexOS? (Score:3)
---
different operating systems (Score:3)
Reserved hardware for Virtual OS's? (Score:3)
I can't see why it wouldn't be, but then I don't know how to make it reality either
This is one area where VMWare is rather limited at present.
Also, certain videocards emulated in the Guest modeled from existing ones (thereby having DirectX work from the get go, automatic support in most systems?) - That would be great. Matrox and/or Voodoo, perhaps?
Hmm, late time for this question. Wonder if anyone sees it?
Side remark: OS/2 support? How far away?
OpenGL and friends (virtual hardware) (Score:3)
A good example of this is provided by UAE (the Ultimate Amiga Emulator) which has "hardware" build in that translates graphics access to a flexible frame buffer device based on the characteristics of your display window. The neat thing about that is that it works completely universally because there is a driver running under the emulator for this piece of "hardware", so all existing applications can take advantage of this more powerful graphics subsystem that didn't really ever exist on the amiga. It's very neat to have a 1280x1024 amiga desktop. (Before people flame me, there were lots of cool high-end video cards for the amiga, but i couldn't afford them)
So to make a short story long =:-), do you intend to do similar things in the future, so i could install the "plex86_fakecard OpenGL driver" for windows/qnx/whatever and run say 3D Studio and have that pass the 3D work to whatever native 3d hardware happened to be in my host system?
Re:What makes a processor virtualization-friendly? (Score:3)
Re:Plex86 vs. Profits (Score:3)
Are you endangering commercial software on Linux? (Score:3)
VMware have produced a very useful piece of commercial software for Linux. Plex86 does the same job, and since you are giving it away for free, you may well destroy the market for VMware's product on the Linux platform.
Is there a danger that you are sending a message to commercial software developers? In future, may VMware's experience mean that other software companies who may have thought about releasing software for Linux, will avoid the platform? I am opposed to OS monopolies, but I am happy to pay for Quake3 (commercial != evil).
I don't want to be too negative here, and I don't have a solution myself (apart from being good capitalists, and start charging for everything we write - not likely
cheers,
G
Besides supporting legacy apps... (Score:3)
-
Re:What makes a processor virtualization-friendly? (Score:3)
so, not only does "load page table base register" or "load gdt base" or "load ldt selector" have to trap, but so does "store page table base register" or "store gdt base" or "store ldt selector"..
Re:What makes a processor virtualization-friendly? (Score:3)
In the 386 and up, Intel got 8086 virtual emulation right, but didn't get 386-mode emulation right. So the Plex86/VMware people have to stand on their head to make this work.
It's worth noting that the hard cases for Plex86/VMware, such as self-modifying code, are also the hard cases for things like the software part of Crusoe and for superscalar retirement units. Most newer designs, like the PowerPC, simply disallow self-modifying code. On the x86, it's fully supported; you can store into the next instruction, and it works. Assembly programmers used to do this for "performance". Today, you take a huge performance hit if you store into an upcoming instruction. Superscalar processors are brought to a screeching halt by such a store, which forces a flush of most of the pipelines and functional units. On Plex86/VMware/Crusoe systems, there's a trap and software emulation comes into play, which is even worse.
Fortunately, UNIX/Linux systems generally disallow storing into code. All this is a hack to make old DOS programs work.
Re:DirectX support (Score:3)
Maybe I'm smoking crack but I'd think that's not a function of hardware (i.e. it is just an API that sits on top of the OS with the low-level shite being in kernel space). True, to get hw accel it has to talk to metal but then it does fall back to sw for a feature it can't find hw support for, just like OpenGL.
In other words I'd think that if windows ran then any windows program would too.
But then I haven't tried this (I keep a seperate machine for non-essential things like opening Office docs and playing Half-Life on. ;-) ), so I could be talkin' out my ass.
--
OPENSTEP (Score:3)
I would love to run OPENSTEP on plex86. Unfortunately, it doesn't even run under booch (but this was not such a problem, as an OPENSTEP running under boochs would be next to unusable).
* When would plex86 be up to the point where I can try to boot OPENSTEP ?
* How can you, or other plex developers, help me having OPENSTEP running on plex88, beside the fact that OPENSTEP is a proprietary OS with costly licenses not avalaible any more ?
* Do you want me to send you a couple of original OPENSTEP CDs ? Would it helps ? Is it legal ?
In a more general way, do you plan to run a few OSes with great support (by having special plex drivers for them etc, etc) or do you plan to have plex emulate standard hardware to run the most possible different OSes ?
Cheers,
--fred
Plex86 and windows device drivers (Score:3)
What I would like to know is: what do you see in the somewhat immediate [that is, forseeable and not imaginary] horizon r.e. virtualization of other windows hardware access? A sound card certainly comes to mind, but of even more use would be, say, parallel port access [for printer drivers [or my nifty Dazzle DVC mpeg1 encoder]
Seriously, though, you've done an amazing job, and I can't help but proffer my enormous respect for the fact that you struggled on for so long on Bochs without -any- support. You are an ideal incarnation of the true hacker ethic; my kudos.
Run Win-apps without display the desktop? (Score:3)
First, a big thank you for making Plex86 possible.
Now the question...
One thing that I find cumbersome with VMWare and Win4Lin (and the plex86 screenshot [plex86.org] that I saw) is that you have to display the entire Windows9x desktop to run even a single application.
Even back in the days of OS/2 2.1, they had a way of displaying Windows application along with OS/2 applications in the same (OS/2) desktop. They did this with a special Windows video-driver which would "burn a hole" in the OS/2 desktop to reveal applications running on the Windows desktop "running behind" the OS/2 desktop.
Here is an example of a Win32 application running inside the OS/2 desktop, [netlabs.org] and another example. [netlabs.org] It's sorta like running Exceed (or WinXfree86) and having an X application display over your Windows desktop.
What I'm talking about is (IMO) different than running a Windows application through WINE [winehq.com], because (with plex86) the Windows application is running inside a (logically separate) virtualized machine.
Would you consider offering such a feature, or at least an I/O hook in plex86 so that it could happen?
Thanks
Comment removed (Score:3)
Suspended state on Plex (Score:3)
Hi Kevin,
I reading this article [slashdot.org] on Slashdot the other day and came across an interesting comment:
i still dont see the point of virtual machines...
sure they're usefull for emulating a completely different system (as long as it doesnt need as many system resources as the machine you're running it on) but whats the point of emulating x86 on x86...
the emulated system runs a lot slower than it would natively, as does the system doing the emulation, plus, you're not saving a whole lot of time... i mean, when you start the new system, the virtual bios has to start, then whatever os you're running has to boot before you can use it. so the only time you're saving is shutting down the currently running system... *snip*
He/she certainly has a point about the emulated OS really not saving that much time. I guess you could see this as a shameless feature request, but I was wondering if there were any plans to support suspended state in Plex.
Many newer laptops have this feature, which saves all the relevant state information to a particular space on the hard drive. The laptop runs on almost 0 power, until you press a key to wake it up. After a few moments of churning, it wakes up and *poof*, you're computer is in the same state it was when you suspended it, open applications and all.
This feature is also popular on (much simpler) console game emulators.
Meta-OS like TAO? (Score:3)
Dynamic Code Generation for more speed (Score:4)
What do you think about the idea of dynamically generating native code in places where emulation is necessary instead of repetitively doing a loop that follows the below sequence:
Re:Plex86, Bochs, Platform Independence (Score:4)
FreeBSD on x86 cannot load this module, and so it will not work.
Re:Are you endangering commercial software on Linu (Score:4)
Open source projects tend to be better at software engineering projects rather than computer science projects. The GNU project did very well creating the GNU tools because that was software engineering. Building a serious operating system based on a microkernel is closer to comptuter science and so got bogged down. Monolithic kernels are software engineering and so Linux took off. Even Ogg Vorbis is really just taking the well studied field of compression and the focus is on sidestepping patents than trying for something oh wow and state of the art.
To my mind, this is where the difference between commercial and open source software should lie. The commercial companies should be pushing the state of the art and working on all this gee wow stuff that people will be willing to make money on. The Open Source people should see this and then promptly reverse engineer it as the state of the art trickles down to the level that it becomes software engineering and the commercial people should be plowing on ahead and finding better things to focus their money on.
Apple is trying to do it with OS X and their rewriting of the BSD kernel. They've done some fascinating things there with Quartz and display PDF that I really hope the GNOME/KDE folks are looking at to implement in their own systems, not to mention the GNU/Linux crowd with the innovations on folder bundling and moving all system resources into XML files. Apple is steadily innovating in their products. Microsoft's
Personally, I want to have a personal computer based on GPL'd software that has all of the functionality of a mainframe down to the virtual machines and scalable multiprocessor support, with all of the newer innovations that have cropped up like XML resource files, Display PDF for graphics, CORBA for handling widgets and so on. All of that is really more software engineering (yes, expensive in time and expertise software engineering but still that). The media players on the system should all be dealing with well defined media formats that anyone can write a free encoder or decoder to in GPL'd software.
All the money I should be spending on the system should be for things like voice recognition and things that I know are cutting edge and state of the art and require money to finance. My biggest beef with Microsoft is that they gouge out huge amounts of money and frankly there are very few technical innovations that they have spearheaded themselves. At least Apple goes and raises the standard for what one should expect out of a personal computer.
In the ideal world, the universities develop new ideas, the commercial companies take these ideas and turn them into money-making projects and after the newness of the ideas has worn off and their genuine value has sunk in, the open source people move in and incorporate it into widely available open source software, forcing the commercial companies to move on to something new. This is rough on the commercial software companies but no one said that life was going to be or should be easy on them.
Trying to keep on topic with the discussion, even if I am not asking a question, virtualization is a solved problem and goes back decades. Now that personal computers have reached the right level of performance to handle such things (as with other features of mainframes that trickle down when PCs get fast enough) it is only natural to start writing Open Source projects to implement it. VMWare folks need to find somewhere else to move onto, or to simply conceed to plex86 and start working on selling support of the project. They could look to see if they could combine something like VMWare with Transmeta's code morphing, perhaps even to virtualizing different processors on one machine. There are directions they can still go, there is still room for improvement. Or they can compete the way the rivals to XFree86 compete, with a wider range of driver support. In short, I feel little sympathy for VMWare. If they can't keep ahead of plex86, then they're doing something wrong.
Re:Plex86 vs. VMWare (Score:4)
Thanks
Bruce
"Host-less" VM software? (Score:4)
What would be involved in making something like this run on the x86 environment? Could, for example, a thin VM management layer run on the bottom, with Linux and Windows running in parallel, instead of one on top of the other as both plex86 and VMware do?
Or is the PC so badly designed that there's no hope of doing VM's without a host OS?
--
BOCHS + WINE in MacOS X? (Score:4)
Would this approach work? If nothing else, could BOCHS used in OS X to install/run Windows from the new Apple OS a la VirtualPC?
-------------------
Timetable? (Score:4)
I've been lurking on the development mailing list for quite a few months now, and I'm wondering where do you see Plex86 going in the future? virtualization of as many OSes as possible? graphics virtualization? or some other tangent that hasn't been discussed yet?
---
What makes a processor virtualization-friendly? (Score:4)
The more detailed the answer, the better.
Where would you like to go tomorrow? (Score:4)
Everyone mentions running Microsoft Office when it comes to Wine; do you have any "milestone events" in mind for Plex86 (as the list of booting OS's continues to climb)?
Resources ? (Score:4)
Cheers,
--fred
(And yes, we could have a beowulf on a single host)
What controls the direction Plex86 (Score:4)
CK
---
Issues with Debian (Score:5)
Are there any plans in the near future to replace the Elpin BIOS with a Free implementation?
--
Native parition support (Score:5)
The need for large partitions in a Windows environment coupled with the file size limits in Linux and the more restrictive Windows licensing means this sort of support is critical to anyone wanting to run Windows on Linux with plex86.
--
Re:What makes a processor virtualization-friendly? (Score:5)
You also have certain special registers and facilities, like control registers, and segment registers. The actual contents of these registers are going to always remain under the control of the supervisor. Part of the job of a virtualization supervisor is to emulate the function of these registers, and also to reflect their virtual state to the virtualized operating system when requested.
So basically, in order for the architecture to be virtualizable, all of the instructions that expose the presence of the emulator must be privileged.
This includes things like control registers, status words, I/O instructions, etc. If you're going to "fake out" an operating system into believing that it is running on bare iron, you need to be able to generate an exception whenever the operating system attempts to execute an instruction that exposes the fact that the actual state of the processor is different from the state of the virtual machine.
For instance, one of the mistakes in the IBM System/370 architecture was that the instruction for accessing the hardware time-of-day clock (STCK -- STore ClocK) was a non-privileged instruction. As a consequence, it was impossible to set a different time of day for a virtual machine -- the supervisor couldn't trap the instruction.
Some architectures (I believe that this is one of the X86 sticking points) require privileged state in order to modify certain control registers, but provide non-privileged instructions for accessing the contents of those registers.
For non-virtualizing operating systems, this makes sense. By making the instructions to examine the system state non-privileged, you both simplify the job of writing the operating system (because you don't have to emulate those instructions), and you also receive a performance boost (because executing those instructions don't result in exceptions). The tradeoff comes when you try and implement a virtual machine environment, and find that you can't, because even in protected mode, a program can find out "too much" about the actual state of the processor.
How could a virtualized OS be made more efficient? (Score:5)
Plex86, Bochs, Platform Independence (Score:5)
How can the rest of us help? (Score:5)
What are the greatest needs in the Plex86 project? How can the
(Ok Kevin, here's your chance - you'll never get a better one to recruit new helpers!:-)
DirectX support (Score:5)
Plex86 vs. VMWare (Score:5)
Development Priorities (Score:5)