Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Hardware

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.
This discussion has been archived. No new comments can be posted.

Ask Kevin Lawton About Plex86

Comments Filter:
  • by Anonymous Coward
    Perhaps somebody needs to explain to you again why FreeBSD sux. Linux is far superior to FreeBSD. Think about it. Microsoft's Hotmail service uses FreeBSD boxen, and Microsoft stuff is evil, right? Therefore, FreeBSD is evil. Good. Now, repeat after me, Linux is good. Linux is good. Linux is obviously good, because there is a big news site that likes Linux and criticizes Microsoft. Microsoft is bad, therefore Linux is good. Now, go out and get some Slackware or something.
  • by Anonymous Coward
    There are rumors that VMware stole your ideas, and some even go as far as saying that their entire work is based on Bochs. Can you confirm and possibly substantiate them, or deny them? Or are there specific reasons why you cannot answer this question?

    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.

  • by Anonymous Coward
    So, bruce, can I take from this that superior systems should always be chosen?
    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.

  • by Anonymous Coward
    When Plex86 does succeed (which it must; after all, it's open-source), won't VMWare get horribly desperate? Aren't you afraid they'll start pulling some of the patent tricks others have been thrashed with (like with Ogg Vorbis a few days ago)? Don't you fear for your own personal safety? I mean, legal battles can take months and millions of dollars to resolve, but it only takes a few grand and an afternoon to station a sharpshooter near your suv in suburbia. I'd watch my back.
  • by Anonymous Coward
    A topic brought up on Slashdot a couple days ago had some interesting discussion that if Free solutions like Plex86 took off, it would destroy VMWare's business model, and show other businesses that you can't make money developing software for Linux because someone will undercut you with a Free solution. How do you respond to these fears?

    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.
  • by Anonymous Coward
    The list of operating systems that plex86 can run has grown dramatically. What can I say? Good Job!

    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.
  • I don't follow you. Yes, in some way you'd be running a stripped-down Linux kernel, but in exactly the same way you'd be running a stripped-down Windows kernel.

    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.

    --

  • Remember that virtualization is not emulation. Programs running on a virtualized system execute natively. There is no performance penalty unless priviledged operations are requested. With plex86 there is a little more overhead due to some checking required to trap non-virtualizable code, but the cost should be amortized over time.

    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.

    --

  • Here's how I would respond to questions like these:

    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.

    --

  • Ok, I wasn't aware of this. Last time I checked the web site, no information on this existed and at the moment it's /.'ed.

    but even so, if it isn't useful, IMHO it doesn't exist (yet).

    --

  • It is something we should fundamentally have, at least for multi-user systems. A true Virtual Machine Monitor a la IBM's work in the 60's has many advantages.
    • It can run mutiple environments at once so users can work where they are most comfortable.
    • It allows test environments for OS upgrades, etc. Once the upgrade has been fully tested, users can be switched to the new version transparently.
    • It allows sharing of devices between environments, reducing infrastructure costs.
    • It allows low-cost, -power, etc. solutions where missing hardware functionality is emulated in software.

    These advantages also apply in single-user environments to various degrees.

    --

  • It's not an issue of "Free at all costs." It's an issue of Free. plex86 is under the GPL, so obviously the community thinks it should be Free, probably even DFSG-Free. But it's not DFSG-free. Perhaps the community doesn't mean for plex86 to be DFSG-Free, but I find that hard to believe. Hence the question.

    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.

    --

  • Depends on your corporation. At mine, practically everyone in engineering runs Linux exclusively (I can think of one engineer with a win32-based laptop on his desk -- one is a company of 100+ people). I'm not saying it can work at your company -- but just because it can't work there, don't say it can't work at any of them.

    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.

  • by pb ( 1020 )
    What does the timeline look like for Plex86? I can tell it's pretty much alpha-level now...

    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 /dev/hda with the first chunk of /dev/hda1; woo...) Could you put whatever tool made a partition for Bochs into Plex86? I swear there was one once; maybe I just can't find it....

    ---
    pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
  • I actually installed plex86 exactly for this. I was attempting to create a bootable CD for a particular function, and I wanted to BOOT the ISO before burning it so I wouldn't waste disks.

    I took a longshot that this would be supported, and I ended up losing out.
  • 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.

  • If commercial software is not able to compete with a free project, the commercial vendor should find something else to do. We do not owe commercial software vendors a living. We shouldn't refrain from creating free software just because "it could drive them away". If we have to do that, we really don't need them anyway. But the fact is that commercial vendors can do lots of things that you probably won't see as free software. This just wasn't one of them - we do systems programming really well. There's even talk that VMWare started with Kevin's work as a base, in which case he'd hardly be obligated to protect them.

    Thanks

    Bruce

  • It's a little late to reply, but I think it has to do with a few different factors:

    • People like the quid-pro-quo of the GPL.
    • Great hackers respect Linus and rally around him.
    • Linux got there first.

    Thanks

    Bruce

  • It's useful for a lot more than that. I run multiple copies of Linux and of FreeBSD all under Linux (currently using VMware). It's great for kernel and driver development, network testing (a virtual network with multiple virtual machines), and lots of other things.

    The fact that it can run Windows tends to blind people to other uses.

  • the kernel could be modified to make Plex86 API calls directly instead of forcing Plex86 to emulate forbidden operations.
    If that's what you want, just run User Mode Linux. As much as I like Plex86, I don't see that it really brings any value to the table if you're willing to run code (like UML) that does not need any virtualization.
  • I was extrememly happy with it when it ran my favorite DOS game from the past. EGATrek. DOSEmu would crash, didn't have Wine w/DOS emulation, and VMWare wasn't around. Bochs got the job done :)

    That was my milestone :)
  • What would it take to get NeXTSTEP or OPENSTEP running under plex86?
  • Moderate the original posting down! This is a huge FAQ at the Plex86 website.

    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.
  • A lot of the code of the guest OS and processes run natively. Plex86 uses exceptions and breakpoints to handle "funny" stuff.

    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...
  • 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.


    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, ...? There's been plenty of opportunities, and programs like vmware and plex86 could take really good advantage of it...
  • First off, is there a lot of code sharing between Plex86 and Bochs? There is a lot of similarities in terms of interface issues, disk images, etc, etc...

    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 :)
  • Can x86 emulation handle real-time processing better than the chips themselves do? As in running processes in real-time through emulation which don't suffer the penalties normally incurred when running them in real-time. Is it even possible to sidestep these limitations the x86 has with real-time processing?
  • I guess what I am wondering is what are the project priorities. Okay you can run windows NT and QNX, or atleast boot them. But what are the priorities of this project? Is speed and performance the number one goal or is that secondary? More to teh point when the project is completed is you need a 1000Mhz computer to run plex86 or will a 200Mhz do? Do you plan on implementing enough so that the mouse will also work, or is the mouse the last concern?

    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!

  • Hello Sir,
    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.

  • It's commercial and not open source, but VMWare does quite a bit of what you're suggesting:
    • You can shut down a virtual OS session in mid-operation and restart later from the saved state.
    • You can do client/server testing on the same box. I test from a Windows NT client to a Linux session running Apache, for example.
    • OS morphing would require some setup, but it might be possible to do, even as an end user. As it is, you can have a virtual machine act as either a firewall, or a secure isolated server to the outside world while the host remains hidden, or vice versa: an internal server invisible to the outside world.
    Saving state every few minutes could be tricky - the OS would have to suspend all processing while it did that, which probably isn't acceptable in many cases.

    I would imagine once Plex86 is fully operational, it should be able to do this stuff too.

  • Kevin:

    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?
  • *drool*...openstep...I'd -love- to have the capability to run that virtualized; I'd even reinstall Linux on my currently BSD box to do it
    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.
  • Have you heard of Octave [octave.org]?

    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)
  • > it would ... show other businesses that you can't make money developing software for Linux because someone will undercut you with a Free solution.

    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.

    --
  • he did mean: run something like plex-os and then have eg. linux and windows side by side and not run windows on linux like right now ... this is what real virtulization is about :-)
  • Do you see Plex86 becoming a standard feature of the Linux kernel?

    I think that would be really useful...

    ________________________________________
  • I see a lot of posts which view Plex86 as a triumph for Linux, something that will make it so that Linux users can use Windows applications.

    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.
  • Argh. Moderate the original posting down! This is a huge FAQ at the Plex86 website. Don't waste interview questions with FAQs. 5 indeed!
  • Of course, that ignores the fact that anybody is free to jump in at any time and produce a superior browser. The OSS community tried and (kinda,maybe,not really?) succeeded with Mozilla.
  • Bochs is an x86 emulator, whereas Plex86 is an x86 vitulizer. Plex86 can ONLY run on x86 hardware, so it will never replace Bochs on PPC, for instance.

    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.

  • Bruce,

    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
  • OK... so if it is valid for OSS to take down VM ware because the can afford to give a product away for free... (and I agree) Then why was it wrong for Microsoft to take down Netscape by giving away a product IT could afford to do for free?

    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.

  • If a commercial vendor can't do better than the free project, the commercial vendor should pack up their tents and find something else to do. Free enterprise includes the concept of competition, you know :-) Nobody guarantees you a living.

    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.

  • Umm, the "true spirit of capitalism" ain't worth squat.

    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.

  • For example, there is no acceptable free equivalent for MATLAB or Mathematica

    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!

  • 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.

  • In what ways could WINE benefit from some kind of integration with Plex86? For instance, to run DOS/ Windows hybrid programs quicker/ better, or to make some kind of a cross-over between hardware and software emulation (with the help of a native Windows partition).

    [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...
  • I wonder if the demand is out there to create an x86-compatible virtualizable processor. Maybe AMD would be up to the challenge? Personally, I'd pay twice as much for a processor and slightly more for a motherboard which would support this, assuming of course that it would run Windows (2000 and 98/Me), FreeBSD, and Linux. It would have to support saving the state to disk so I could switch back and forth between Linux and Windows without rebooting, and without giving up any processing power. Also it would be nice to be able to run the guest OS to run in a low-priority mode which wouldn't affect the host OS too much, and be able to swap which OS is considered host and which is guest. Seems relatively simple to me, other than reverse engineering x86, which companies like AMD have already done.
  • VMWare supported OS/2 in a beta and determined that it was not cost effective to release and maintain a version which supports OS/2. What are the technical issues for why OS/2 support is difficult and do solving these issues reduce performance/functionality for more common OSes like Windows and Linux?
  • Do you see Plex86 to be different from VMware, Win4Lin, Wine? If not do you see Plex86 as competition? Do you think that it will replace any or all of these types of solutions?
  • I still have images of all night debugging sessions to get Wine working on BSDI 1.x on my retina. By the time I had the thing working and all actual applications supported by Wine at the time ran (i.e., WinMine and Solitaire), the Wine project had changed it's register use around, and my code was as good as worthless.

    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?

  • Redundant ? I scanned all the previous modded-up posts, and I saw no question about large scale virtualisation. If this have been modded down only because of the beowulf joke at the end, it is pretty ridiculous.

    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. 45-;ord=976706407976706407). Rotfl)

    Cheers,

    --fred
  • My job prohibits my discussing how VMware approaches these problems, and for lack of knowledge I can't tell you how Plex86 approaches them. However, this should give a flavor for some of the problems in virtualizing an unvirtualizable architecture.

    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

  • There seems to be problems with the x86 that make virtualisation difficult.

    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
  • How difficult is it exactly to ensure the support of hardware abstraction layers, such as the Windows NT HAL or DirectX, under Plex86? Is this a non-issue, i.e. the HALs can still talk to the underlying hardware, or is this a seriously difficult issue, mandating the writing of vitualized video cards, sound cards, BIOSes, etc.?
  • Have there been any thoughts given to using Transmeta's "code-morphing" abilities to allow users to run other CPU's instructions under a Crusoe-based box? Perhaps Linus' involvement with that company could help gain support for such a unique opportunity.
  • Competition!

    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]
  • Note that some devices are already emulated in bochs (ne2k ethernet card and SB16 sound card come to mind), and porting these to plex86 is comparatively trivial. Here is some stuff I picked up from lurking on the developers list...

    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.

  • VMWare is supported on commercial platforms. It has been ported to Win9x/NT. Plex'86 can't do that yet (it may some day soon, who knows).To my mind the most important thing in any company is not the product but the people.

    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.

  • It seems to me that the point of virtualization is to be able to run other applications, not other os's. In this regards, do you think it will ever be possible to have a transparent other-os-app-loader on an x86 platform, as apposed to a complete os emulator?

    Thanks for bochs!

    Fred

  • I'm an avid OpenBSD enthusiast, and I too am concerned that Plex86 run on the BSDs. Given that you may not have the resources to acomplish wide-spread support, could your team possibly provide api lists, indicating what APIs would nead to be implemented by a platform porter. Your documentation said that you would be migrating cross-platform code from the linux source. Perhaps by publishing the required APIs, you could encourage others to do this work for you.
  • by Vaystrem ( 761 ) on Tuesday December 12, 2000 @08:56AM (#564681)
    Do you see Plex86 as being a product that would allow users to make a more comfortable migration from other operating systems? Which would in turn make it easier to increase the Linux user base. Will it ever be easyeasy enough to setup that even Windows users' could set it up and get their old programs and OS running so they could run Linux too?
  • by Ektanoor ( 9949 ) on Tuesday December 12, 2000 @11:26AM (#564682) Journal
    Will you try to optimize Plex86 on SMP systems? I believe some tricks could allow the virtual OS to operate more effectively and stable if, for example, one could dedicate one and only one CPU for its tasks.
  • by einstein ( 10761 ) on Tuesday December 12, 2000 @08:47AM (#564683) Homepage Journal
    what are your thoughts on making Plex86 into an para-OS that allows many OSes to be installed and run co-currently? do you see it as being plausible? or even possible?
    ---
  • by dramaley ( 20773 ) on Tuesday December 12, 2000 @10:45AM (#564684) Homepage
    Why do some operating systems work under Plex86 while others do not? i.e., once you have a virtualized system why doesn't it run all operating systems right away? Do different systems use different processor instructions that haven't been handled yet?
  • by martinm_76 ( 22905 ) on Tuesday December 12, 2000 @12:00PM (#564685) Homepage
    What is the likelyhood of being able to seal off a certain range of memory, ports, etc. that a certain piece of hardware uses and pass it directly to the Guest system? This would be great for hardware Linux does not yet support or which doesn't have all that great support. It could also be great for a second video-card reserved for that Guest (mainly for games) if it is at all possible.
    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?

  • by drenehtsral ( 29789 ) on Tuesday December 12, 2000 @10:11AM (#564686) Homepage
    I'm curious if you have any plans to include some set of virtual hardware that will be controlled with drivers running on the guest operating system, but will wrap APIs under the host operating system.
    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?
  • by Junks Jerzey ( 54586 ) on Tuesday December 12, 2000 @10:52AM (#564687)
    Here [plex86.org]. Sigh.
  • by be-fan ( 61476 ) on Tuesday December 12, 2000 @01:57PM (#564688)
    Umm, the "true spirit of capitalism" ain't worth squat. If we held to the "true spirit of capitalism," about half the nifty things you could do with the stock market, but aren't allowed to, would be legal. The country had a huge fall because people before the Great Depression where following the "true spirit of capitalism" and investing all of their money (borrowed or real) in businesses. The outcome of that was that we got laws to limit "the true spirit of capitalism" in order to protect the economy. Economics is not about ideologies, or and cool catchphrases such as "the true spirit of capitalism," it is about creating a finely balanced machine that can handle whatever falls within its framework. OSS software is an unexamined phenomena. It was not planned for, and it has not been studied, and thus people must use extreme caution before going idealistic and spouting of the benifits of the model. It may turn out that it works and is healthy for the economy. Then again, it could turn out to be another dot-com disaster (or worse.)
  • by barracg8 ( 61682 ) on Tuesday December 12, 2000 @08:57AM (#564689)
    Congratulations on the progress, and I wish you well with the project.

    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
  • by Doubting Thomas ( 72381 ) on Tuesday December 12, 2000 @08:44AM (#564690)
    do you envision the Plex86 project as a useful platform for modeling and testing new Operating Systems? If so, what effort have you taken, or do you plan to take, to support this use of the software?

    -
  • by sommerfeld ( 106049 ) on Tuesday December 12, 2000 @08:44AM (#564691)
    there are a number of properties, but they basically boil down to a priviledge model which allows you to run kernel mode code which thinks it's dealing with physical addresses in user mode with virtual addresses such that any priviledged instructions can be trapped and emulated so that the "guest" OS can't tell.

    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"..

  • by Animats ( 122034 ) on Tuesday December 12, 2000 @09:51AM (#564692) Homepage
    The x86 virtualization history is wierd. Originally, the 286 was supposed to be able to support virtual emulation of the 8086, but in fact, Intel made a few mistakes in the 286 design and that didn't work. If it had, OS/2 probably would have been more successful, because its DOS emulation mode would have worked.

    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.

  • by StandardDeviant ( 122674 ) on Tuesday December 12, 2000 @08:54AM (#564693) Homepage Journal

    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.


    --

  • by f5426 ( 144654 ) on Tuesday December 12, 2000 @09:27AM (#564694)
    First, congrats for the fantastic work already done.

    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
  • by sanemind ( 155251 ) on Tuesday December 12, 2000 @09:01AM (#564695) Homepage
    As I understand it, a virtualized OS has any attempt it should make to access hardware intercepted and replaced with some appropriate emulated equivilent. I assume that Plex86 therefore simulates vga or vesa video (so that the simulated OS can think it is talking to a video card), and then represents what would have been the resulting image on a real screen, if it was talking to a real card, as a data structure that can be displayed, say, under X-windows.

    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] :) ]. Can't we slackers ever get enough?!

    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.
  • by toybuilder ( 161045 ) on Tuesday December 12, 2000 @12:45PM (#564696)

    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

  • by account_deleted ( 4530225 ) on Tuesday December 12, 2000 @11:16AM (#564697)
    Comment removed based on user account deletion
  • by ditsara ( 245416 ) on Tuesday December 12, 2000 @10:35AM (#564698) Homepage

    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.

  • by Socializing Agent ( 262655 ) on Tuesday December 12, 2000 @08:50AM (#564699)
    Do you think that someday, a project like plex86 and a project like Bochs might combine in kernel space to produce a lightweight virtual machine that could run x86 code?
  • 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:

    1. Can the code already be run natively?
    2. No, the code does some hardware specific tricks. Turn the emulation on.
    3. Pass code and data off to proper kernel abstractions in the current OS.
    4. Repeat for next opcode


  • by GrenDel Fuego ( 2558 ) on Tuesday December 12, 2000 @01:39PM (#564701)
    I think he's referring to the fact that plex86 requires a linux kernel module to be loaded before it will work.

    FreeBSD on x86 cannot load this module, and so it will not work.
  • by mfterman ( 2719 ) on Tuesday December 12, 2000 @11:05AM (#564702)
    I tend to break software development into two areas, computer science and software engineering. Voice recognition, code morphing, cracking mathematical problems and so forth are computer science. Writing a word processor or a monolithic operating system or even a virtualizer is more software engineering. It's not like new ground is being broken in writing an x86 virtualizer, the art is documented already. As the previous post commented, MATLAB is based on well known algorithms.

    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 .NET has a few interesting ideas and whatever good pieces are in it hopefully will be appropriated by Open Source people to be put into GNU/Linux.

    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.
  • by Bruce Perens ( 3872 ) <bruce@perens.com> on Tuesday December 12, 2000 @10:06AM (#564703) Homepage Journal
    If a commercial vendor can't do better than the free project, the commercial vendor should pack up their tents and find something else to do. Free enterprise includes the concept of competition, you know :-) Nobody guarantees you a living.

    Thanks

    Bruce

  • by IGnatius T Foobar ( 4328 ) on Tuesday December 12, 2000 @10:34AM (#564704) Homepage Journal
    IBM's virtual environment (VM-ESA) works without the aid of a "host operating system." In other words, if you want to load (for example) Linux/390 into one of your VM's, you don't have to have the VM running inside OS/390 (the operating system formerly known as MVS). The whole mainframe is virtualized by VM-ESA before you start getting into operating systems at all.

    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?
    --
  • by VValdo ( 10446 ) on Tuesday December 12, 2000 @09:57AM (#564705)
    An interesting idea came up in this Slashdot thread [slashdot.org] this week about the possibility of using BOCH's x86 emulation with WINE's Windows-like libraries to create Windows-binary compatability on the upcoming MacOS X.

    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?
    -------------------

  • by einstein ( 10761 ) on Tuesday December 12, 2000 @08:39AM (#564706) Homepage Journal
    Hi Kevin,
    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?
    ---
  • by Christopher Thomas ( 11717 ) on Tuesday December 12, 2000 @08:36AM (#564707)
    What characteristics make a processor difficult to virtualize? What characteristics make it easy? I have more than a passing interest in this, as I'm currently a graduate student studying IC design.

    The more detailed the answer, the better.
  • by ClayJar ( 126217 ) on Tuesday December 12, 2000 @08:48AM (#564708) Homepage
    Some apps will "never" be able to run in Wine (Windows lets you do things that Linux knows are *bad* ideas). With this in mind, are there any applications that you would really like to see running in Windows (or whatever) on Plex86?

    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)?
  • by f5426 ( 144654 ) on Tuesday December 12, 2000 @09:40AM (#564709)
    Do you beleive that large scale virtualisation could be possible, like emulating 100 linux hosts on a big SMP box, getting the kind of virtualisation that the Mainframe guys enjoys ?

    Cheers,

    --fred

    (And yes, we could have a beowulf on a single host)

  • I understand that you cant control open source developers, and tell them "You must work on xyz aspect of the code", but I was wondering this one question: Is the driving force to get a perfect Virtual CPU, is it to boot OS XYZ at any given time, or is it to boot as many OS as possible?

    CK

    ---
  • by David Greene ( 463 ) on Tuesday December 12, 2000 @08:58AM (#564711)
    Recently there has been much discussion [debian.org] on debian-devel about where plex86 (or parts of it) can be placed in the archive. The main issue is the licensing of the VGA BIOS from Elpin , which states that the BIOS is free for use in plex86, but may not be modified or used for any other purpose. Because of the dependency of plex86 on this BIOS, it my be forced into contrib instead of main. The BIOS itself would have to go into non-free, which raises questions about whether this would be a legal distribution of the BIOS, since it would not be packaged with plex86. Moreover, with the rumblings of eliminating non-free, it may not be distributed through Debian at all, regardless of legal issues.

    Are there any plans in the near future to replace the Elpin BIOS with a Free implementation?

    --

  • by David Greene ( 463 ) on Tuesday December 12, 2000 @08:46AM (#564712)
    What are the plans for native (raw) partition support in plex86? Bochs has had this ability for some time and I find it to be essential in VMware.

    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.

    --

  • by jms ( 11418 ) on Tuesday December 12, 2000 @09:13AM (#564713)
    On a processor, you have facilities like general registers, that the emulated operating system is supposed to use, and that will be saved and restored by the control program when you switch contexts.

    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.

  • If the authors of an OS want to cooperate with Plex86, so it runs more efficiently when virtualized, what would you recommend? What (expensive) operations would be best avoided? Will Plex86 have a API available for a faster alternative to emulation?
  • by zanzar ( 33471 ) on Tuesday December 12, 2000 @08:44AM (#564715) Homepage
    I'm an avid FreeBSD enthusiast, and I'm disappointed to see that Plex86 doesn't look like it will run under FreeBSD any time soon. Bochs, on the other hand, works fine under FreeBSD, but lacks many essential features that Plex86 appears to have. I was wondering what you will be doing (if anything) to ensure the platform independence of Plex86. Will you be leaving Bochs as the multi-platform solution? Will the Bochs be abandoned in favor of Plex86?
  • by Anonymous Colin ( 69389 ) on Tuesday December 12, 2000 @09:38AM (#564716)
    Hi Kevin,

    What are the greatest needs in the Plex86 project? How can the /. cast of thousands help out?

    (Ok Kevin, here's your chance - you'll never get a better one to recruit new helpers!:-)
  • by sheckard ( 91376 ) on Tuesday December 12, 2000 @08:44AM (#564717) Homepage
    I know this is a way off, but do you see any reason why DirectX support would not be possible? Or would it just require too much manpower that it wouldn't be feasable?
  • by Chester K ( 145560 ) on Tuesday December 12, 2000 @08:49AM (#564718) Homepage
    A topic brought up on Slashdot a couple days ago had some interesting discussion that if Free solutions like Plex86 took off, it would destroy VMWare's business model, and show other businesses that you can't make money developing software for Linux because someone will undercut you with a Free solution. How do you respond to these fears?
  • by jzoetewey ( 200538 ) on Tuesday December 12, 2000 @08:46AM (#564719) Homepage
    While the ideal is that Plex86 will support all operating systems, I assume that you've made choices as to which ones you're going to work on first. Your site mentioned Dos, NT, Win95, Linux and QNX as OSes that PLex86 currently runs. As someone who tends to use FreeBSD when I use a free OS, I'm curious as to where the BSDs rate in your priorities and what about BeOS, Plan 9, etc...

A morsel of genuine history is a thing so rare as to be always valuable. -- Thomas Jefferson

Working...