Forgot your password?
Microsoft Software Linux

Plex86 Lives, As Lightweight VM Technology 232

Posted by timothy
from the lightenment dept.
Kevin P. Lawton writes "Plex86 has been completely overhauled, and simplified to be a user (application) code only Virtual Machine technology. For running user code, many of the heavy weight x86-VM techniques are unnecessary. But the bonus is, Linux can easily be made to run inside the plex86 VM, so that the kernel is actually 'pushed down' to user privilege level. This has been demonstrated on both Linux 2.4 and 2.5 kernels. Thus, Linux can run in a plex86 VM without the need for any heavy virtualization. My goal is to keep the code base trim, tight, auditable and get to usable releases quickly. And to favor those goals over adding unnecessary complexities. The first milestones have just been reached, so it's still early in development. There are email lists available on the main plex86 site."
This discussion has been archived. No new comments can be posted.

Plex86 Lives, As Lightweight VM Technology

Comments Filter:
  • by evilviper (135110) on Wednesday February 12, 2003 @06:59PM (#5291390) Journal
    Plex86 is taking so very long to materialize, I wonder if it is even worth the effort being put into it. Bochs works fine, even if slow, and virtualization isn't exactly a big market. Where does Plex86 fit into all this?
    • by modus (122983) on Wednesday February 12, 2003 @07:01PM (#5291411)
      Funny you should ask. The site talks about using the new plex86 as an acceleration engine for Bochs. So, instead of emulating each x86 instruction, Bochs could leverage Plex86 and get a big 'ole speedboost.

      Kevin's posted a very limited test case demonstrating this ability to the Bochs lists a bit ago.
      • by semaj (172655)

        Funny you should ask. The site talks about using the new plex86 as an acceleration engine for Bochs. So, instead of emulating each x86 instruction, Bochs could leverage Plex86 and get a big 'ole speedboost.

        Kevin's posted a very limited test case demonstrating this ability to the Bochs lists a bit ago.

        He explains how he got Linux 2.5 running in his bochs-developers [] post. It explains things pretty well, and it sounds pretty fast already - Plex86 can concentrate on all of the user level code, while Bochs handles everything else.
      • Bochs could leverage Plex86 and get a big 'ole speedboost.

        Try again... What you mean to say is that, on x86 (where Bochs is the least common and least useful) it will ``get a big 'ole speedboost."

        Bochs' best feature is that it can run x86 instructions on a non-x86 machine. A project like Wine or MPlayer could make use of Bochs to emulate the x86 instructions, giving non-x86 machines the ability to run Windows binaries, or use windows dlls, respectively.

        As I said, the virtualization market isn't a big one. Where people need x86 in a window, Bochs works quite well.
    • by PCM2 (4486) on Wednesday February 12, 2003 @07:09PM (#5291478) Homepage
      Bochs works fine, even if slow, and virtualization isn't exactly a big market.
      You might be surprised. Lots of people are interested in virtualization. It's useful for things like software testing, and ISPs are keen on it for giving their customers the "dedicated server" experience while maintaining fewer actual boxes. That said, the most effective type of virtualization is the kind that gives applications a "chroot" type of environment -- where each virtualized process is running on the same instance of the OS. Running all those Linux kernels in virtualized environments doesn't really reduce your infrastructure complexity all that much...
      • Do people really run _servers_ in VMs?
        • IBM does.
        • Look up VMWare. Two of their three main products are designed for just that. And guess which (two) get the big R&D money?
          • Right, but VMware just "virtualizes" the processor, no? I though bochs's big point was that it emulates it. Thus, you don't have to have an intel CPU to run code compiled for intel. I thought VMware only runs on Intel chips?

            Granted, being able to have one powerful box (many redundant parts, yada yada yada) to care for, and virtual "images" of computers to deal with would kick the ass of having to manage a bunch of 1U servers.

            I believe that virtualization is where everything is heading. Good lord, you already have it with SAN/NAS solutions (storage virtualization), why not with processors (server/cpu virtualization) ?


        • I run servers inside User Mode Linux VM's all the time. Not only are they good for testing, they are also good for setting up firewalled hosts, low-usage shell accounts, and small web servers. For these kinds of applications, they are a great choice. Unless you're using a VMWare on some really nice hardware, though, it's folly to try to run most I/O intensive task on them. To run Apache for a few thousand hits a day, it's great. To run a massive Oracle database used by thousands of people simultaneous, I'd pass :)

          VMWare has made great performance leaps recently, and IBM is using them to enable virtualization, like they've had for 15 years on mainframes, on PC hardware. It's a great application, and there are some nice benefits you gain from hosting a few dozen virtual machines on top of some really nice mid-range server hardware (mid-range being roughly $25,000 - $75,000 8-processor stuff), rather than investing in blade servers or a whole bunch of 1U rack units. Foremost among these is very, very easy recoverability. If the hardware hosting a virtual machine dies, fire up the virtual machine somewhere else, even on different hardware, or if it's a software problem, roll the disk image back one rev and see why it crashed. Easy. If your 1U or blade server dies, recovery time is generally far more. Not always worse, particularly if a competent sysadmin designed the architecture, but generally.

          I don't mean to be a VMWare pundit, but particularly if you run ESX server, the results are very impressive. There are some limitations, notably that you can only have 1 logical "CPU" per virtual machine (up to 10 VM's per physical CPU), but aside from that, it's really nice. GSX server is a bit cheaper and runs on the GNU/Linux you know and love (rather than VMware's own version of Linux), and seems to be about on-par performance-wise. If you have some extra money to blow, give them a shot :)
    • by MikeFM (12491) on Wednesday February 12, 2003 @07:23PM (#5291581) Homepage Journal
      Isn't this the same argument thrown against Mozilla a year or two ago? "It's taking to long so it isn't worth the effort." or "We have Internet Explorer anyway - why do we need another browser?"

      Software, especially good software, takes a lot of time to produce. Anyone can throw off crappy code quickly but to make something you'll be able to keep secure and stable over it's lifetime takes time and effort. Unless you're the developer what do you care how the effort is being spent? it's not your time or effort so feel free to go about your business doing something you feel your efforts are more useful in.

      As for me I find Plex86 interesting because I don't want to spend a fortune on hardware but sometimes I do like to have a sandbox enviroment to run development stuff, test apps, or just open questionable email attachments. Bochs is to slow to run many apps properly and if I was going to spend the money for faster hardware I might as well just buy new computers. It makes more sense to use a virtualized enviroment and save some money (and hassle).

      Virtualization may not have as many users as web browsers but it's technology which for the most part will continue to be useful for a long time. The x86 processor has a long history of compatible code so there is no reason to think Plex86/Bochs won't still be useful a decade from now. :)
    • Bochs, though admirable, isn't complete.

      Plan9 won't run inside bochs for instance, as documented here [].

      which is a shame. Plan 9 runs in VMWare btw

    • Once it's done, you'll have free VMWare, right? Do you have any idea how cool MacOnLinux is for LinuxPPC users? Plex86 should be at least that cool for x86 machines. You'll be shocked how many people will use this every day.
    • 1994: Linux is taking so very long to materialize. I wonder if it is even worth the effort. 386BSD works fine, even if slow, and UNIX isn't exactly a big market.

      1999: Mozilla is taking so very long to materialize. I wonder if it is even worth the effort. Netscape works fine, even if slow, and free-browsers aren't exactly a big market.

      2003: Economical nuclear fusion power plants are taking so very long to materialize. I wonder if it is even worth the effort. Coal power plants work fine, even if dirty, and electricity isn't exactly a big market... oh wait, yes it is.

      Maintaining the status quo is rarely the right option. Sometimes progress takes a long time, but this doesn't invalidate or devalue the effort required to make that progress.
  • UML (Score:3, Interesting)

    by Anonymous Coward on Wednesday February 12, 2003 @07:00PM (#5291396)
    User mode Linux has been invented and merged to the kernel already, no need for any additional software.
    • Re:UML (Score:5, Informative)

      by Anonymous Coward on Wednesday February 12, 2003 @07:22PM (#5291573)
      User mode Linux has been invented and merged to the kernel already, no need for any additional software.

      Yes, but UML uses almost 80% of the processor's MTRR registers as a scratchpad to save state. Therefore, any kernel drivers that require real-time interrupt service (NET, SCSI) have to use cut-through emulation, instead of the much faster native emulation.

      The bottom line is UML works fine, and exhibits quite decent responsiveness, until you start trying to push disk and or network I/O.

      It's a fundemental flaw of UML. But UML's proponents consider it a necessary evil in the name of portability and lightweight robustness. I'm not sure I disagree with them.

    • You're right! As long, that is, as you were only wanting to run multiple copies of Linux.

      I currently have to dual-boot between Win2K (for Quickbooks Pro, which doesn't run under Crossover yet) and Debian (for everything else). I'd love to drop that setup, but the price of VMWare is a bit more than I can justify for that luxury. Plex86 would be absolutely ideal for my situation.

  • Plex86 vs. VMWare? (Score:4, Interesting)

    by Anonymous Coward on Wednesday February 12, 2003 @07:00PM (#5291403)
    A topic brought up on Slashdot some time 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 Anonymous Coward on Wednesday February 12, 2003 @07:12PM (#5291505)
      response to fears:

      plex86 has a heckuva long ways to go before it's even near competing with software like vmware.

      provided that it even makes it there, companies like vmware have known it's coming for quite a while, and have surely been looking after their best interests just as if this were a commercial competitor.

      competition is part of life, whether it be commercial, opensource, or the kid next door.

    • by Anonymous Coward
      A topic brought up on Slashdot some time 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?

      Easy, It's not any different than new competition for any company other than the competition in this case is giving away a product for free, so they can't compete on price. VMware will have to offer some additional value over Plex86. It could be improved performance, ease of use, stability, compatibility with more/different environments, tech support, you name it. They just have to offer something that people will be willing to pay extra for. Plex86 has a long way to go before they are a credible threat to VMware, but once that happens VMware will be forced to adapt
    • by QuantumG (50515)
      The author of Plex86 and Bochs is the same guy who declared that VMWare had "ripped off" his idea and gone commercial after looking at his technology. The failure of Plex86 (and that's what this announcement is, an admission of failure) just goes to show that Kevin is and always was full of shit. He's been claiming that Bochs would have a binary translation system (much like VMWare and VirtualPC use) to speed it up ever since back when he was trying to flog it as shareware. So, in response to your question, there is very little fear that Kevin is going to come up with a product that can compete with VMWare (or VirutalPC for that matter) because he's no good.
      • by spnbs (264432) on Wednesday February 12, 2003 @09:00PM (#5292133)
        Dude, chill out. I'd like to see your resume before you knock one of the sharpest VM programmers in the business. Not only is Kevin smart, but he knows the x86 ISA better than most people know how to read. Add on the fact that he pumps out code at an insane rate, and you get a programmer I'm grateful is working in the OSS world. Kevin's given us a lot and I'm more willing to forgive him for being a triffle distractable in exchange. People have called Kevin a lot of things (erratic, drasticable, incapable of proper commenting), but to call him shit is unbelievable. Unless you're Linus or RMS, get off the man's back.
    • It does good business selling windows host versions...

      And dont forget ESX server...

    • by ottffssent (18387) on Wednesday February 12, 2003 @07:29PM (#5291622)
      What *I* say to that is that if VMware can't produce a better product than the OSS community can in their spare time, they don't deserve my $130. If they can't keep their product better, they don't deserve the younger generation's $130. If Plex86 takes off and it kills VMware, it won't "show other businesses that you can't make money developing software for Linux because someone will undercut you with a Free solution" but rather show them that you can't make money selling inferior software for Linux because someone will do it right, even if it's not you.

      Why is it that a community that could be broadly characterized as having heavy libertarian leanings encompasses so many, like you, who are willing to set aside those ideals for your pet project? I love VMware as much as the next person - I just think it's so cool seeing Phoenix BIOS show up in a window - but that doesn't mean I'm willing to set aside the capitalist ideals of free commerce and competition just so it will survive. If the Plex86 group can put together a better product and are willing to give it away, they win. If it takes them 10 years, then VMware has 10 years to find a different business model or go under. Businesses fail all the time. That's the way it works. If you can't cut it, you die. Meanwhile, Plex86 gets better in competition with VMware; VMware gets better in competition with Plex, and I win no matter which approach works best.
      • if VMware can't produce a better product than the OSS community can in their spare time, they don't deserve my $130.

        Which version of VMware costs $130? Some academic version?

        I'd love to play with VMware, but it looks like it would cost me $300 per computer.

    • by On Lawn (1073)
      This is easy enough, I'll bite.

      Those were interesting discussions. I happen to own a VMware liscence, and I use it occasionaly for particular virtualizing needs. I was anxious for Plex86, and mourned the impeding stagnation of the project when the project founder was fired. After two years, I'm still with VMWare.

      Meanwhile, VMWare is being eaten at on a few fronts besides Plex86. The most recent evaluation we did for VMWare, pitted its virtual terminal server product against CodeWeavers' Wine server, Citrix, and good ol' Windows 2000. In the end Windows 2000 won, becuase, well, it was already there. Many window's programs have been decided that way.

      I don't particulary see a difference in being undercut by a free solution, or being undercut by a built-in the OS solution (*ahem* Netscape). Nor do I see a difference between those undercuts, and being beat out by a better product from a different competitor.

      In the end, its the developers obligation to ensure success with a quality feature full product. I think that is why, in the end, some have felt that OSS development models are better. But as far as interaction between Linux programs and free Linux programs, I see nothing out of the ordinary.

      OnRoad []: A review of "Piston Envy: The Sociology of Racing Games"
    • Adapt or Die (Score:3, Insightful)

      by bogie (31020)
    • I second the comments that if VMWare doesn't keep offering some value over what free software can produce, they don't deserve to survive. Besides, Plex is likely to only cover part of any complete solution, which could include commercial components (note that Plex is LGPL). Further, a free version would find applications that nobody would pay for a product to have this feature (often, just get another machine is the option). Testing gets mentioned a lot. You could set up a machine with a number of different versions of OSs, and even completely different OSs just to have a variety of environments to test in (software development QA processes for example). You probably would use the system sequentially anyway, but you wouldn't need to reboot, all the versions are just there. Hell, if you partitioned the I/O, you could run them together, particularly in a few years as the CPU generations roll along.

      It really is a different concept than VMWare anyway. VMWare is hosted in one of the OSs (I know they have at least Linux and some versions of Windows, probably more), where this VM runs on top of the hardware (if I understand correctly). One thing I do wonder about, though. By putting it between a hardware abstraction layer and the hardware, a huge part of the job is to support the variety of available hardware.

      One of the crowning achievements of Linux is the variety of hardware that is supported. That's always been the biggest problem for any PC OS that isn't from MS, lack of driver support, and this goes for the commercial PC UNIX vendors from the beginning (no doubt, OS/2 as well). Linux has pretty much solved this problem, and it has been a very hard problem (i.e. it takes lots of resources in the Linux community). So, aren't they taking on this problem with Plex86, or do they somehow piggyback on Linux drivers? That's certainly what I would try for if I were designing it.

    • Yeah...this may possibly come close to the standard VMWare. (Though does VMware require a kernel driver to run? This says it does)

      But will it be able to do what the VMWare ESX server stuff can do - basically act as a mainframe on a PC?
  • Portability? (Score:2, Interesting)

    by Chester K (145560)
    Because of the new lightweight VM strategy, plex86 is quite small in size, and thus there is big potential for auditability of the VM technology. This is important as the VM monitor runs as a device driver in the host kernel.

    VMware doesn't need a device driver, if I'm not mistaken. Wasn't plex86 originally supposed to be a clone of VMware?
    • Re:Portability? (Score:4, Informative)

      by Kashif Shaikh (575991) on Wednesday February 12, 2003 @07:40PM (#5291684)
      You should check that again.

      VMware under Windows, loads up several device drivers to bridge/route network traffic between the virtual machines and your local NICs.

      And when I installed a demo VMware on my Linux box, it needed a kernel headers to build the vmware kernel modules(don't know what for). So, Vmware also needs modules/device drivers for operation.

    • VMware doesn't need a device driver, if I'm not mistaken.

      Actually, we do. ls -l /dev/vmmon

      The virtual machine monitor itself must run on the bare hardware, so we need help from the kernel.

      Keith Adams (VMware engineer)
  • Having trouble wrapping my brain around this one. Could someone explain it a bit? Yes I read the article, didn't help at all.

    What does Plex86 run on top of? If it's a VM would it run on top of say Windows or something, allowing you to run your OS of choice within that? Or is it a way of allowing programs compiled for this quasi-x86 architecture to run on other different architectures (ie it vituralizes the hardware directly)? Or something else entirely?
    • Plex86 is a VM that requires that it be run on an actual x86 chip, it virtualizes the code that is running inside the VM so that the code thinks it's got access to it's own machine when in fact it does not, but is running as a user process in linux.

      So you can run Windows inside linux, or linux inside linux. They all have to be for the x86 though. But I don't know how well it works.

      Bochs is the emulator that runs code for the x86 on ANY processor, PPC, Sparc, whatever it will compile on. So that you could run Windows on a Sparc or a Mac. Though I don't know if it works THAT well.
  • Wasn't Kevin Lawton employed for several years by MandrakeSoft to work on Plex86? Didn't MandrakeSoft bought the Bochs proprietary sources to release it in GPL?

    What did happen? It seems that all mentions of this MandrakeSoft support has been dropped from the Plex86 pages !?!
    • Just found... (Score:3, Informative)

      by joestar (225875)
      A reference on Slashdot:

      MandrakeSoft Buys Bochs, LGPLs It
      Linux MandrakePosted by Hemos on Thursday March 23, @00:50
      from the good-things-are-happening dept.
      Direct from the mouth of Gael Duval, we've gotten word that MandrakeSoft (Yes, the folks who make Mandrake-Linux. No, it has nothing to do with Mandrake of Enlightenment fame. ) have purchased Bochs and hired Kevin Lawton. Now that Bochs is LGPLed, the Plex86 development can be speed up as well. 7&mode=nested []
  • by steveha (103154) on Wednesday February 12, 2003 @07:20PM (#5291551) Homepage
    There are two things I would like to do with plex86:

    0) multiple virtual Linux servers, each in its own chroot jail.

    1) run Win98 under Linux, to be able to run Win32 apps for testing purposes or backwards compatability.

    Sounds like it will do multiple Linux servers very well, soon. But do they still have any hopes for plex86 running non-Linux OSes as guests?

    P.S. According to reviews I have read, Win4Lin does a decent job of letting you run Win98 under Linux. It's not free software, of course.

    • If they keep it lightweight and user-mode like they say they will, and Plex86 won't allow 2 or 3 instructions to execute, then running binary-only OSes might be a problem. A linux kernel can always be compiled to not use these instructions - they aren't necessary.

      If Win uses these instructions, then Plex86 won't work, but maybe the Plex86/Bochs solution that's mentioned on the site will.
    • 2) run Linux under Windows. Perhaps with a Knoppix CD that autoruns and starts a full-screen Linux session without rebooting, and you can hit Alt-Tab to go back to Windows. (Bochs + Plex86 + Knoppix: what should be the name for this? Knopplechs86?)
  • User-Mode Linux? (Score:5, Interesting)

    by Doc Hopper (59070) <> on Wednesday February 12, 2003 @07:20PM (#5291553) Homepage Journal
    With the changes he's made in the goals of Plex86, it sure seems as if he's targetting the same approach currently in use by User-Mode Linux. I understand it may be quite different under the hood, but will that matter to users? It doesn't matter much to me if the task is accomplished using a ptrace thread under kernel system calls or actually virtualizes hardware -- if I can run several virtual GNU/Linux systems on top of one physical system, at a reasonable speed for the load, using free software as much as possible, I'm happy. The technical details of how it's done are irrelevant to me -- what matters is the result.

    If the Bochs/Plex86 combination is actually faster than Bochs by itself on X86 hardware, and can approach the speed of VMWare, well, that sounds interesting to me. Virtualization technology is a large and growing market, funding a lot of IBM's recent growth in the mid-range server market with quad and 8-processor systems running VMWare to aggregate systems, improve manageability, and reduce personnel management costs. There's no denying the need is there; VMWare posted their first profit ever last quarter because of these strong sales, with more big money coming down the pipe.

    Competition among free software projects is a good thing. I'm glad to see Plex86 come out with something new that may work better than the old. But what most people wanted was to run multiple copies of Microsoft Windows on top of Linux, or to run MS Windows in VMs alongside GNU/Linux, and if that doesn't work easily & quickly, it may be a potent obstacle to widespread adoption.
    • Re:User-Mode Linux? (Score:3, Interesting)

      by Nicolas MONNET (4727)
      The problem with User-Mode Linux, as I understand it, is that the virtual machine is not that much isolated. It doesn't guarantee as much as it seems in terms of access control, security etc.

      This virtualisation technique, however, could probably be much safer.
      • Re:User-Mode Linux? (Score:5, Informative)

        by Abcd1234 (188840) on Wednesday February 12, 2003 @09:19PM (#5292223) Homepage
        This will change once SKAS mode goes into the mainline UML distribution. To quote from the UML website:

        "In short, the changes cause the UML kernel to run in an entirely different host address space from its processes. This solves the security and honeypot fingerprinting problems by making the UML kernel totally inaccessible to UML processes. Their address spaces are identical to what they would be on the host. This also provides a noticable speedup by eliminating the signal delivery that used to happen for every UML system call."

        So, there you have it. It requires a kernel patch, but basically solves all the old UML security issues. I don't believe it's quite ready for primetime, though. :) The SKAS page can be read here [].
  • I am confused, can somebody explain to me.

    Is this a super-bochs should I feel like running windoze on linux?

    Or is this an excellent way to test out a linux kernel someone hacked, but didn't want to risk their system?
  • by bstadil (7110) on Wednesday February 12, 2003 @07:24PM (#5291587) Homepage
    There is a detailed discussion of this in the Linux Kernel Traffic [] from the Jan 22-27 issue.
  • by Anonymous Coward on Wednesday February 12, 2003 @07:25PM (#5291594)
    If you are interested in something like this you should check out the L4 microkernel which, when combined with the NomadBIOS user mode program, is able to host multiple Linuxes very efficiently (faster than VMWare), and even migrate them between physical hosts with different hardware in about 1/100th of a second.

    Check out,

    All my respect to Plex86, but I don't think their design will ever be as clean or effecient as that of L4. All software mentioned above is GPL.
    • by spnbs (264432) on Wednesday February 12, 2003 @09:32PM (#5292277)
      Wow, what a discussion! Not only did we get an article about plex86 (reborn as something wonderful, too!), but someone brought l4 [] and NomadBIOS [] into it! I haven't found this level of knowledge on slashdot in years!

      I'll be the first to agree that L4 is wonderful and the Dresden Operating Systems group is doing some amazing stuff with it. There's a lot of hard core hacking going on there. Most recently DoPE [] caught my eye. It's a real-time display system for DROPS and Norman Feske's thesis is an interesting read. Heh, I love that project name too...

      However, it's sort of irresponsible to propose NomadBIOS as an alternative to something like plex86. Granted, NomadBIOS is cool and has a lot of potential for the future. There's a lot of possibilities once you start transparently moving running kernels between machines! However, NomadBIOS makes use of a modified l4linux 2.2 kernel and that cause some problems. (For those out of the loop, l4linux is a port of linux designed to run on top of an instance of the l4 microkernel).

      To begin with, with 2.6 almost here, 2.2 is starting look really old and nobody seems to have the man power to port 2.6 (or even 2.4) to l4.

      More importantly, l4linux really isn't remotely secure, stable, or production quality. Linux apps can access the l4 interface. See the Fiasco (an implementation of l4) faq [] for info on this. This foils any attempts at security. This is traditional viewed as a feature because it makes life easier for the Dresden hackers, but would be a problem in this kind of situation.

      Then you have all the voodoo that was went into getting linux on top of l4. I get nervous just booting l4linux, let alone attempting to use for anything serious. It's possible to screw things up royally. I definitely chewed up a root partition one time (not quite sure what I did wrong either! ;-).

      Anyways, I'm glad that someone mentioned NomadBIOS because it's a great project, but let's not go pimping the wrong solution to the problem of needing a virtual machine. NomadBIOS is what we like to call Blue Skies work. Cool research that may well change the future playing field, but irrelevant for now.
    • The problem with L4 is that OSes ust be ported to it. Virtualisers are supposed to be able to run OSes without porting them.

      L4 is great, don't get me wrong. It's just not even close to being the same thing.

  • by pclminion (145572) on Wednesday February 12, 2003 @07:27PM (#5291608)
    But.. Can I run UML as a KML process within a Plex86 session on a FreeBSD box, which is executing within a VMware running inside a VirtualPC?
  • Would somebody who knows please explain the details of how this (the "VM" mode, not the bochs acceleration mode) differs from User-mode Linux?

    When would you use one, when would you use the other? Does each have gotchas the other avoids? What fundamental operations, at the system-call level, do they use? What kinds of software is each good for or useless for testing? Which bits of the kernel (aside from actual hardware drivers, duh) never get exercised in each?

  • Project Management (Score:5, Interesting)

    by N1XIM (159082) on Wednesday February 12, 2003 @07:47PM (#5291714)
    All I have to say is that I hope it all actually works this time. I've been trying desperately to maintain the old Plex86 code for the last year and haven't been able to get much of anywhere. "WHY?" you may ask? I can say that right here, and I don't mean it in poor spirits either:
    Kevin's code is obfuscated and doesn't mean much to you unless one or more of the following is true--
    1) You are an equally enlightened coding genuis as Kevin is;
    2) You have been programming for 25 years and still don't know what a comment line is for;
    3) You always work alone and therefore the more disorderly the code the better for you.
    This has been a real problem. I hope that his fork of the code works better than what I've been trying to document for the last year.
    --Drew Northup, N1XIM (former, I guess) Plex86 maintianer
    • I've been trying desperately to maintain the old Plex86 code for the last year....

      I've been looking for that old code. Found the Savanah site, got delayed setting up CVS.

      Botton line: what can I do with the old Plex86?
  • I don't get it. (Score:3, Interesting)

    by DdJ (10790) on Wednesday February 12, 2003 @07:52PM (#5291734) Homepage Journal
    The whole thing that makes x86 virtualization a difficult problem is that the x86 CPU has some non-user-mode instructions that can't really be virtualized. By saying "I'm only going to try to do this for user-mode instructions", isn't that turning the problem into something an average CS undergrad could solve in a few weeks? I mean, what am I missing here? What about this whole thing is now nontrivial?
    • Re:I don't get it. (Score:4, Informative)

      by spnbs (264432) on Wednesday February 12, 2003 @08:49PM (#5292083)
      If you read all the mailing list discussion, he answers this quesiton. It turns out pretty much every instruction used by linux, with the exception of pushf and popf work under PVI (x86's system for virtual interrupts). 99% of the ridiculously brilliant, yet unreadable code in the original plex86 was there solely to support these and perhaps a few other (wasn't totally clear about that) instructions in the x86 ISA. For open operating systems, you can just modify the source to avoid these instructions. In fact, he's got a tiny and completely non-invasive linux kernel patch that just does some ASM substitution to replace the rare uses of pushf/popf in the kernel. The patch is floating on the LKML and enables the linux kernel to run in the new Plex86 VM. Not only run, but run fast. So actually, just virtualizing the virtualizable stuff a very reasonable solution. Plus, for non-open Operating Systems he just offloads the ring 0 code to bochs and suffers a bit of a slowdown. It's a slick system.
      • For open operating systems, you can just modify the source to avoid these instructions.
        Well, yeah, but the modifications to let you do this are almost the same as the modifications to let you run Linux as a plain old ordinary userland process itself. You don't need plex86 for that, at all. So, I still don't get it.
      • I like the idea, but I'm unhappy about the solution for non-open ioperating systems. BOCHS is great, but it emulates every instruction. For operating systems that spend a lot of time in ring 0 like Win, this can be a problem. Remember that although WIn started as a Microkernel, this was compromised early on when they discovered that they couldn't get the performance. Regrettably that means that a lot of the GUI code would be stuck up there in Ring 0 and this would definitely slow things down.

        My feeling is that this project should exist at two levels, a basic version that will support modified source code operating systems and a module to provide ring 0 virtualisation. Possibly, that module could use Bochs to step through the code for the first time and as it is checked as free of the instructions with virtualisation problems, it could be executed natively.

        Keeping the basic functionality separate would ease support issues and keep cooperating operating systems running fast. If the binary Guest OS facilities are a little flaky, that's sad but we can live with it or buy VMware.

  • How about vserver? (Score:3, Informative)

    by rigolo (416338) on Wednesday February 12, 2003 @08:04PM (#5291799)
    For those people that want to run several linux instances completely seperate from each other on top of linux they should take a look ath this [] project called Vserver.
    The VServer Virtual Private Server and Security contexts allows you to easlity split your main linux server in to an (infinite?) number of server that use the same kernel, but for the rest are completly independent. Each server has it's own init, users, passwords etc etc. Also the networking is seperated creating intresting setup possibilities. Also think "shared virtual linux" servers instead of just Shared web hosting.
  • Here is what I envision eventually (am probably not the first to think of it):

    You assemble a cluster of machines, that "looks" like one big SMP box (beowulf?). Using your VM software, you provision servers as necessary.

    See? You can add resources (processing power) incrementally, independently of adding actual physical hosts.
    You don't need to make each critical server redundant, because the redundancy is at a lower level; the VM is running on redundant hardware already. You can lose multiple machines, and still be up and running, at reduced capacity. Compare that to my cluster, if I lose 2, and both happens to be my db servers, I am screwed.

    You need a web server? here, lemme cp you an image, and there you go, there's your web server.
    • Yes. This is a very good idea. Had you been born 50 years earlier you'd be rich. Unfortunately, IBM has had this idea since the dark ages on thier big iron, with O/S 390. The s390 hardware was speciaffically designed form the ground up to make virtualization easy, seamless, and indistinguishible froom the "bare hardware". I once read there was some minor screw up involving being able to tell you weren't on the bare hardware by checking some clock register or something. When you run Linux on the zSeries (I think that's the stuff that replaced the S390 hardware), you actually run it on an O/S partition rather than on the bare hardware.

      O/S 390 lets you partition all of the resources (I/O bandwidth,. CPU time (think about setting up vmware to give one VM 2.6 CPUs and another 1.4 CPUs), RAM, and of course disk space). The Oracle liscence fees depend on how much processor power you give to the partition(s) you're running Oracle in. It's really too bad we didn't all get poor slow ripoffs of Big Iron rather than getting the super tweaked typewriter brains (x86) we run stuff on now. This really cool stuff has been around for decades.

      Sorry, today I saw the SGI parallel machine my lab got and was reminded about how cool some hardware is. Then again, the beast isn't up and running yet because it needs some specialty wiring run in the lab. My apartment power is finiky enough the way it is.

      As to the oposite of the IBM approach, I learned today that the Cray T3E isn't an SMP machine. You dedicate a certain number of the CPUs to the OS and some to running realtime/interactive processes, and the rest of the CPUs run normal processes. This is Asymetric Multi Processing, like how the FreeBSD kernel used to only run on CPU 0. I lost a little respect for Cray today, though I guess AMP is the easy way to get scalability to thousands of CPUs. You have to manually configure the number of CPUs dedicated to OS tasks, etc. While I'm rambling, is anyone aware of any microkernel OSes that run on Big Iron?

      • The "magic" of the idea I was trying to get across is that the base hardware platform is a cluster ... allowing individual machines to fail, while provisioned "servers" (being in VM) survived;
        the solution you presented sounds to me like VM on a single machine.
        I appreciate the info, and please forgive my ignorance of mainframe (hey, let's face it, mainframe era machines in general :), but am I right in my belief that you are referring to VM on a single machine? How is your solution difference from running VM on, say linux on x86 (on a real beast of an x86, anyway)?

  • I havent tried this but, from what they claim, sounds great. This is just what is needed till developers produce code for Linux and Windows. I wouldnt mind doubling my ram given theres no CPU overhead running just one OS.

    On a related note, if transmeta or AMD introduced a new runleve or execution mode 'multiplex mode' in their chips to simplify switching OSes, and automatic remapping of memory so even the interrupt table, DMA and device memoryIO are mapped appropriately for each OS, I'm sure I'll buy one.

    Anyone wanna patent THAT idea? Or even better, criticize it?
    • On a related note, if transmeta or AMD introduced a new runleve or execution mode 'multiplex mode' in their chips to simplify switching OSes, and automatic remapping of memory so even the interrupt table, DMA and device memoryIO are mapped appropriately for each OS, I'm sure I'll buy one.
      It's not like they are not aware of the idea. They, however, want to sell as many chips as possible, not fewer. As usual, customers loose out. The first chipmaker who implements the necessary functionality for full virtualization of x86 chips should make a fortune though (one can dream) and force others to follow.
  • Silly as it sounds, one of the more intriguing possibilities with User Mode Linux is running linux as a user space process under the windows.

    This would mean a number of things, but one of them would be that a windows user wouldn't even need to reboot to be able to run a full distribution of linux on their windows box.

    I wonder if plex86 has a route to acheiving the same end?
  • My goal is to ... get to usable releases quickly...

    What software project doesn't have this goal?

    More importantly, which projects succeed?
  • by lkaos (187507) <> on Wednesday February 12, 2003 @09:15PM (#5292201) Homepage Journal
    Feel free to flame and correct:

    User Mode Linux is a port of Linux that allows the host Linux operating system to run the Linux kernel as a process (this could be seen more or less, as an exokernel). This is done by changing the Linux kernel code to use malloc() to allocate memory instead accessing hardware.

    UML uses ptrace to intercept its childrens system calls and then forwards them to user-functions in the kernel.

    Plex86 on the other hands makes no modifications to the kernel. Instead, it takes a stock(1) kernel and virtualizes the few instructions that aren't allowed to run in user mode (an exception is thrown when these instructions are attempted to run and Plex86 catches this, performs the virtualization, and returns as if the instruction actually executed).

    Plex86 is literally virtual machine whereas UML is really just removing and hardware specific stuff in the kernel and making it a regular C program.

    (1) I lied a little here. There is an inherent design flaw in three instructions on x86 such that they do not allow for the above. Kevin submitted a small patch (that I assume got accepted) to make these instructions only be accessed through inlines with additional code such that they behave as they should. By correcting this, it makes implementing a VM more or less trivial.

    Note: unless someone finds a _really_ innovative way to allow these instructions to be easily handled for other operating systems, it's not likely you'll see Plex86 run other properitary operating systems.

    Note2: Plex86 is more likely to make it to Windows first because UML requires ptrace and Windows has no concept of ptrace(). Not to mention the fact that mmap behaves quite differently on Windows.

    Note3: Yes, the above problems have been addressed in the UML Win32 port but they are non-trivial. From what I can gather, a Plex86 port will be pretty trivial to Windows...
  • Is this the project formerly known as FreeMWare? Formerly part under Mandrakes broken wing?
  • by kma (2898) on Wednesday February 12, 2003 @09:25PM (#5292247) Homepage Journal
    Arrggh, it's too hard.

    I work for VMware. if you want to believe we've corrupted Kevin's precious bodily fluids, feel free. I don't speak for the company, and I know nothing beyond what slashdot has posted about plex86. Consider yourself disclaimed.

    If I understand the story correctly, plex86 has basically surrendered. They've given up on running arbitrary supervisor level code; the Linux guests that Kevin refers to above require a patch [] to "fix" something the new "lean, mean" plex86 gets wrong.

    If Linus is feeling even vaguely himself, he will not accept this patch. Ordinarily, people trying to put stuff into the kernel that a) hurts performance, and b) fixes no real problem, but c) is critical to some contrived project that seems really important to the contributor get entertainingly flamed, and then shown the door. In fact, Kevin's most likely motivation for submitting this as a Slashdot story is to marshall support for his Linux patch.

    Even if Linus does accept this patch, I can guarantee you that Microsoft, the FreeBSD team, the now non-existent Be, etc., won't all be taking helpful hints from Kevin about which x86 features they may and may not use. Ergo, there is nothing interesting (either commercially or geekily) you can do with plex86; the most it can hope for is to run recent-ish Linux guests on recent-ish Linux hosts. Bestill my heart.

    On the upside, maybe Kevin will stop implying that VMware stole Bochs [], now that he's spent four years trying to clone our software and has finally admitted defeat.
    • On the one hand ... VMWare supports specific OSes, not just any x86 OS. So one wonders how complete their virtualization is.

      On the other hand ... it should be obvious that software emulation of x86 was not the bulk of VMWare's work. VMWare's major enterpreneurial contribution was the demonstration that it was possible to - pretty much - virtualize a privileged mode x86. I don't know how much device virtualization was in Bochs, but I'll bet VMWare has added a lot of work (not though so much, but effort). Device virtualization is one of those jobs which is never finished.

      On the third hand ... why spend so much time virtualizing an architecture which wasn't designed for it? That's like seducing an undesirable person just for the challenge. Though in this case it's probably pretty lucrative ...
      • by kma (2898) on Wednesday February 12, 2003 @10:25PM (#5292499) Homepage Journal
        On the one hand ... VMWare supports specific OSes, not just any x86 OS. So one wonders how complete their virtualization is.

        Wrongo. When we say "VMware supports FreeBSD," we mean that customers can call us and expect us to help with problems running FreeBSD in a VM. "Unsupported" guests that work fine include Plan9, BeOS, Openstep, FreeDOS, and AtheOS. VMware is not just a big dumb hack that happens to work for Linux and Windows.
    • Just curious -- wouldn't Kevin's patch also make Linux run faster in VMWare as well?
    • Hope you don't get into trouble for this.
    • This patch doesn't hurt performance. In fact, it does absolutely nothing to a normal kernel. It's only activated by an option at compile time, to build a special kernel for the "Hardware Abstraction Layer", which won't even run on bare hardware.

      Here [] is a link to the actual patch.

      Yes, it IS interesting; and no, it won't be confined to Linux hosts. (Nor guests, ultimately -- at the least, *BSD will be available.) I do agree that in a sense it looks like "giving up", though; it's certainly become less ambitious.
    • by korpiq (8532)

      I must say that I appreciate VMWare for both its hack value and usefulness. (It's also one of the too few commercial applications that's as easy to deploy as should be with it's download-configure-pay -model.) Nice to hear a human^Wnerdish voice from someone inside as well.
  • I'm running Windows 2000, and (given EULA issues, DRM issues, etc.) I want to start using a linux distribution.

    But I've somewhat invested in Windows, and it still probably beats linux as far as ease of use.

    I've been thinking that running a virtual linux might be a good way to transition.

    I'm currently running cygwin, but I'd like to be able to use a GUI.

    Will the new Plex86 be able to help me? (I.e., is there or is it likely there will be an MS Windows port?)

    What about User Mode Linux? MS Windows port?

    Once I do transition, of course I'd want to run MS Windows virtually: I guess for that my only choice is VMWare. Or buying a another PC, and VPn'ing. Or do you have a better idea?
    • Cygwin has had an X server for a while. It is part of the official distribution now, though, so you can select it in the graphical installer, rather than having to download and install it separately after you've installed Cygwin.

      LINE [] can run Linux binaries on Windows, much like WINE executes Windows binaries on Linux, though it's probably not as useful as Cygwin or a full Linux system.

      There is also a port of User-Mode Linux to Win32 [] underway, but it is not very far along yet and would probably not be useful to you. (Also, it depends on the aforementioned LINE. Which I think is kind of funny.)
      • Cygwin has had an X server for a while.

        Yeah, I can run xclock and xeyes and xterm, and that's about it.

        Re you telling me I could riun, for example, Gnome or KDE? If so, how?

        And yes, it's ironic UML on Win32 requires LINE to run.

        My visiion is running linux with emulated Windiws runnng Plex86 linux running Windows... Lather rinse, and repeat!
  • ... when the official Debian package will show these changes?

A consultant is a person who borrows your watch, tells you what time it is, pockets the watch, and sends you a bill for it.