In a world of virtualization, should Windows host Linux or should Linux host Windows?

In a world of virtualization, should Windows host Linux or should Linux host Windows?

Summary: This is actually a question that I was giving a lot of thought to while recovering from back surgery? Why?


This is actually a question that I was giving a lot of thought to while recovering from back surgery? Why? As you may know, I'm an insanely huge proponent of using virtual machine technology like VMWare's VMWare Workstation 5.5 on desktop and notebook computers.  I've covered the reasons why, ad nauseum On the upside, VMWare makes a Linux version of its Workstation virtualization software. here, here, and here so I won't beat that horse anymore.  But, using VMWare Workstation while I was out, a dialog popped up more than once that I was running out of virtual memory.  I had three virtual machines running simultaneously, each with several applications open at the same time doing a variety of things (email, web browsing, word processing, spreadsheets, etc.).  Admittedly, I was deep in power user territory but it still caused me to stop and consider the configuration that sat in front of me.  I essentially had four copies of Windows running on one system.  One was the operating system that was running on the bare metal and the other three were the VMWare virtual machines being hosted by the first.   That first version of Windows -- the one running on the bare metal -- had me wondering whether or not I was needlessly consuming system resources with a full blown copy of Windows that didn't need consuming.  Even though none of my applications were running on that first copy (all my apps run in the VMs), that doesn't mean its not stealing valuable resources from the VMs it was hosting.   Windows, after all, isn't exactly a lightweight OS.  Not only that, just for safe measure, it's also running a few additional items such as McAfee's AntiVirus and Personal Firewall software -- eating even more resources.

One of the great advantages of Linux is how, when you're setting up a system, you can strip all of the bloat except for only those components that you need to support whatever you plan to run on the box.  This versatility -- something that's not really available with Windows -- has allowed server administrators to build some pretty lean and mean servers that reserve as many resources as possible for the application rather than for the operating system.  Ideally then, when staring at the configuration in front of me, maybe the best configuration is one where, instead of running Windows on the bare metal, I'm running Linux on the bare metal and furthermore, a trimmed down version of Linux that's designed to support little more than the running of VMWare's virtual machine and any other key accouterments (network drivers, graphics, etc.).   One advantage of Linux is that it's practically never the target of malware.  So, not only would a lean mean version of Linux conserve system resources just by virtue of being Linux, I would probably end up doing without having an anti-virus solution.  Linux comes with a built-in firewall and I could choose to activate it, or not.   Chances are though, with Linux on the bare metal on a machine that's already behind a router/firewall, additional, resource hogging, security software would not be necessary.  That's not to say that I won't be running A/V and Firewall software on the Windows-based VMs.  There, you need the security.

On the upside, VMWare makes a Linux version of its Workstation virtualization software.   On the downside though, VMware workstation largely depends on the host operating system to deal with things like graphics, USB, and things like Bluetooth (driver level stuff).  So, whereas Windows is nicely supported on just about any system (desktop or notebook), you may not necessarily get the driver level support you need if you rip Windows off the bare metal and replace it with Linux.   In other words, research your notebooks and desktops before picking a system.  

Why bring this up now? Well, I thought it was interesting that Microsoft announced today that it's going to support Linux as one of the operating systems that people will be able to run on Virtual Server 2005 R2.   Perhaps its a matter of taste since running virtual machines (Windows or Linux) on a Linux host requires a fair amount of Linux expertise that most Windows Server administrators don't have.  But I can't help but wonder if servers are better off being configured the other way around where Linux is the bare metal host OS that can be tweaked to resource perfection and Windows or Linux runs in the virtual  machines that run on top of that host OS.  If you have experience in these matters or findings to share -- either on the desktop or server side -- I'd love to hear from you. 

Topic: Operating Systems

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • VMware experience

    I currently run a Linux machine and VMware Windoze. I can't understand your using of multiple Windoze VMs! I run my Mail and Web browser under Linux - and I only use Windoze for games. This is probably the ultimate usage, as it will be some time before game companies port to Linux. It doesn't work well for high-performance gaming - but for my speed (strategy games) it is a good fit.

    Just WHY would you hit your head against the wall FOUR TIMES? ;)
    Roger Ramjet
    • Depends on what you're doing

      I've actually done the same thing as Berlind, but its usually been for software integration testing using the VM Cluster option.

      Setup VMWare to run in NAT mode, and run say 2-Win2003 servers and a client. Use the snapshots to test diff builds of the server or client app and retest. Saves me time from having to setup a full LAN and it easier to do restores.
    • VMware Windoze
  • Windows on Linux / A Can Do!

    That's a Can Do!

    I would agree tho with Roger that you are 'torturing yourself' with that many VMs.

    But, unless your windows application need is a 'must', why not just cut ties and be done with it!

    Go with SuSE 10.0 for your base platform and core activities.

    I am using 10.1 beta 9 with Xgl and AppArmor and VMWare Server to run Windows XP.

    You'll feel right at home with SuSE, power user or not.

    Very professional and going to cut into the Windows Desktop Market, along with a few other Linux Distros, in 2006!

    Glad you are recovering well from your surgery.

    D T Schmitz
    • I fully agree

      I use the exact same combination of SUSE 10 with VMWARE to run windows.

      As you will guess by my name I do have the need to run applications like photoshop and dreamweaver which do tend to take up alot of resources.

      But running them with a VM simply handles the job greatly instead of having to multi boot.

      But at the same time I find that some applications that are already supported for linux work better.

      NetBeans 5 is a perfect example which works alot faster on linux compared to windows.
      • Most Excellente

        Have taken Eclipse/SWT for a spin yet?

        What I like most about Eclipse is that I can code Java, Perl, Ruby all in one ide--not to mention the Rich Client Platform (RCP) plugins like RadRails, EPIC, and SQLExplorer just to name a few.

        This is some 'wild and wacky stuff'.

        fyi, Adobe acquired Macromedia and in particular Adobe <Labs> has folded the Macromedia Studio MX into their Eclipse RCP-based 'Flex Builder 2.0'!

        They are taking the O/S agnostic approach and so are many other big vendors, IBM (Workplace), Borland, etc. Borland jettisoned recently their tradition IDE product line (Delphi, JBuilder, C++Builder) in favor of Eclipse.

        I've used Borland products for years so that was quite a shock.

        But when you've taken a closer look at Eclipse, it all just makes good business sense.

        OK Thanks webDevx!! :)
        D T Schmitz
        • very interesting

          I have heard about Eclipse but I have not had much time to investigate deep into it yet.

          I was using Jbuilder untill I got to try out NetBeans 5 which I must say is a very nice IDE.

          I will have to try out Eclipse thanks for the tip :)
  • VMWare = Misery & Pain

    Just trying to run 1 Linux VM under VMWare 5.5 on Windows XP was an agazonizing experience. It wasn't even a big Linux, it was Puppy Linux, which is super small and stripped. This was on an AVERAGE PC, not one of the out-of-touch-with-reality monsters that ZDNet bloggers use. That is to say, Sempron 3300+ with 512 MB of RAM.

    Maybe if Mr. Berlind had to use a PC that is on par with what most users actually have, he wouldn't be so bullish on VMs. I have a hard enough time running 1 copy of Windows; Windows + Linux wasn't fun, I can't imagine attemtping multiple copies of Windows.

    Justin James
    • T-Shirt

      I know a guy who has a T-shirt showing two rather vague figures, one atop the other, with the back caption "It's better on Top." The front says, "CPR." He's a paramedic and CPR instructor who had a massive heart attack and had to have chest compressions (broken ribs and all) all the way to the hospital just to get him there alive. He says he'll never again complain about how exhausting it is to give CPR.

      I suspect the same applies to your experience: it really does matter who (or in this case what) is on top.

      [i]I have a hard enough time running 1 copy of Windows; Windows + Linux wasn't fun, I can't imagine attemtping multiple copies of Windows.[/i]

      Running a VM with MS in it on a Linux box has always worked smoothly for me, even with very modest RAM. At a guess, it has to do with the basically more efficient scheduler, memory management, and filesystems of Linux.

      Whatever the reason, you're likely to get better performance with a Linux system as host.
      Yagotta B. Kidding
      • I agree...

        I would say Linux <b>is</b> better suited for virtualization as the host. I've run VMs of Fedora Core 5 Test 2, Puppy Linux, FreeBSD 6.0 minimal, and even Minix 3 without any frustrations. I haven't tried Windows or Mac OSX VMs, but I'd assume it would run about as smoothly, as you said.

        But I do agree with jmjames' comment on running multiple copies of Windows at the same time. That's seriously taxing not only on computer resources, but also on the person keeping track of them on the desktop.
        Tony Agudo
        • i'd like to install linux

          i'd like to install linux, but I haven't been able to do it on my office computer for a couple of years now. I used to have an Advansys scsi card for which the linux driver was broken. I replaced it with a U160 Adaptec scsi card and U160 hard disk. This time, linux recognized the card but not the drive. linux installs fine on an ordinary IDE system, though.
          • Suggestion

            Download the Knoppix iso and burn a Knoppix Live CD and boot up to it:

            Then see how it goes!
            Or, I am partial to SuSE which is roughly on par with Windows XP in overall breadth and features:


            D T Schmitz
          • U160 Adaptec scsi

    • Or maybe you didn't try hard enough

      Need a *.exe? Ok kidding. I guess you don't qualify to the group of users I talked about in my vlog (

      Anyways get some more memory (I have a similar box with 1G mem and I have enterprize version of rhel/suse running on it side by side)

      So try again!

      • Not a hardware issue for me

        I have an XP 2200+ with 512MB RAM and running VMware 5.0 I can host W2k3 and Solaris 10 with no problems. Neither VM has much RAM assigned to them (160 and 128MB respectively) so they could run faster if I had a gig, but they aren't dragging. My main OS is Slackware 10.2.

        So, compared to a Sempron 3500 this is a prety low end box so it's not a horsepower issue. It has an HP NetRAID card in it but it's not very fast because I am using ReiserFS instead of ext3 so I only get about 14 MB/sec throughput instead of 23 MB/sec until I redo the filesystems.

        I'm inclined to agree with David. If you want performance in your VMs you need to run them on a host that won't slow them down.
        Still Lynn
    • 4VMs on a 2G laptop, maybe Windows not on bare

      I run a network of 4 VMs (Windows 2k server, RHEL4, +2xXP clients) on my 2G centrino laptop.

      The host is fedora.

      It has very little trouble driving all of this and a browser + email + network services (on the host).

      I actually don't use VMWare the VMs are in QEMU (
      It's free/OSS but amounts to the same thing.

      My laptop is a Dell Inspiron and has some pretty new hardware (like dual screen AGP nvidia GeForce Go, Intel Pro wireless Wi-fi) and Linux drives it all quite happily.

      I have to admit it has been upgrade to 1.2Gb RAM so memory is the key.

      Hope this helps.

  • Cover charge

    [i]Perhaps its a matter of taste since running virtual machines (Windows or Linux) on a Linux host requires a fair amount of Linux expertise that most Windows Server administrators don't have.[/i]

    Don't be so sure -- the host system can be dang well invisible. A system that only needs to support VMWare can be practically 100% turnkey, and VMWare (the EMC division) can tell you exactly how to set it up.
    Yagotta B. Kidding
  • The question isn't valid

    What is going to happen is that the virtualizing engine will make the OS irrelevant for day to day use... like Gnome and KDE on Linux. Who cares if a program needs one or the other, call the right libraries and show me the damn window for the app that I want.

    Similarly, the virtualizing engine will become the defacto OS that calls whatever combination of DLLs or libraries on linux to make the program work. Further to that, If the virtualizing layer makes everything run concurrently, booting your PC will boot windows and linux and OSX **all at the same time**. With proper cut/paste and data transparency, you won't know the diff where the program is running (nor should the end-user care).
    • Hypervisors

      [i]Similarly, the virtualizing engine will become the defacto OS that calls whatever combination of DLLs or libraries on linux to make the program work.[/i]

      No, because that would require that the guest systems be intimately tied into the host. (In your case, MS and the *nix systems would all have to have common library conventions and APIs -- not gonna happen.)

      The idea of a hypervisor is that it [i]doesn't[/i] have close interdependencies with the guests. It just allocates each its assigned quota of resources.
      Yagotta B. Kidding
      • Think outside the box

        Of course they have to be intimately tied. There are two different scrnarios here... servers and desktops. For servers... you probably want them separate. For desktops, you want the potential to tie them together to that any app will "just run" regardless of the "OS" that it needs.

        If you sitting inside your win32 legacy GUI OS need to run an OSX app... great... the virtualizer spawns a virtual enviroment for just that one app and sends the window to the GUI that your are currently in.... Really not a big trick since X already exports displays to other systems, etc. The underlying principles can be used to export between virtual environments.

        If you are sitting inside your OSX legacy layer and need to run a windows app... a virtual win32 environment is spawned and the window gets beamed into your OSX desktop.

        *That's* the way it should work. Anything less marketing nonsense. I mean after all, that's the whole point of WINE. People want it to operate transparently in the background. Expecting the OSX guy to dual boot his machine into windows XP is so old school it isn't even funny. It's 2006 after all... we should expect more.