Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

A friend of mine recently suggested something that intrigued me: in the case of needing multiple Operating Systems simultaneously, instead of dual-booting or using multiple computers, one could use a low-level host that consumed effectively zero resources that would host two virtual systems. You'd have the benefit of splitting the computer's resources evenly between the systems and the option of using only one system at a time. As an example:

Dual Boot:

    Computer
       |
    --------
    |      |
Windows  Linux

Single-Virtualization:

    Computer
       |
     Linux
       |      
    Windows

Dual-Virtualization:

    Computer
       |
      Host
       |
    --------
    |      |
Windows  Linux

The problem with dual-boot is you can only use one Operating System at a time, and the problem with single-virtulization is you can't use Windows unless Linux is on.

This dual-virtulization idea seems to solve the problem, but I wonder why I've never heard of it before.

Are there any serious drawbacks to this idea? What are the pros and cons?

The only real disadvantage I could think of was performance, which might sometimes matter, but as an example: my next laptop will support 16 GB of RAM, so each system could get a little less than 8 GB of RAM - more than enough.

share|improve this question
5  
A minimal OS for just hosting VM's is called a "Type 1" or "Native" "Hypervisor". See Wikipedia: en.wikipedia.org/wiki/Hypervisor#Classification –  Ƭᴇcʜιᴇ007 May 1 '12 at 17:25

3 Answers 3

up vote 6 down vote accepted

The problem is your "host" is far from one that would consume zero resources, and is essentially an operating system itself. You would be better off installing a small distribution of Linux, essentially acting as a "host operating system", and running both of your required operating systems at once.

The problem with a discrete OS host is management of resources.

Who decides what OS gets what piece of hardware at what time? Who manages OS priority? Who manages who gets what part of memory in the address space? Who's responsible for managing CPU usage between OSs? How do you handle storage device read/write synchronization between OSs?

The only truly way to do it is to do something like this:

    Computer
       |
  Linux/Windows
       |
    --------
    |      |
Windows  Linux

Although if you go that far, it's better to simply use the host operating system as opposed to virtualizing itself (i.e. if you use a Windows host, virtualize Linux, and vice-versa).

share|improve this answer
    
"You would be better off installing a small distribution of Linux, essentially acting as a "host operating system"" - this is exactly what I had in mind. Are you saying even that would be slow? I'd run VirtualBox for each OS, most likely –  Thomas Shields May 1 '12 at 16:57
4  
@ThomasShields I just mean that if you're going to go that far, why bother virtualizing Linux in itself again? I can see why you might want to do it, but it would be much faster/efficient to simply use the host operating system in conjunction with a virtual machine, as opposed to constraining yourself to two independent virtual machines. Obviously, if you have a requirement for VMs (i.e. saving machine states), then go for it. –  Breakthrough May 1 '12 at 16:58
1  
"why bother virtualizing Linux in itself again" - because the host, even if it was linux, would be the most stripped down version I could find and I'd want a higher-level distro of it that I could use at will. Hence my dispute with what I called "single-virtuliaztion" - you're stuck with Linux everytime you want to run Windows. –  Thomas Shields May 1 '12 at 17:03
1  
@ThomasShields of course, Damn Small Linux is probably exactly what you want - however, you still have to emulate all of your hardware in a virtual machine... This usually isn't a problem, but the VM host (a program running in the host) has to emulate all of the target VM's hardware - most of which is limited compared to running the OS directly. This only matters, of course, if you require those features (i.e. it's unfeasible to run 3D applications requiring direct GPU access in a VM). –  Breakthrough May 1 '12 at 17:06
1  
Or you could just use a bare-metal hypervisor to begin with, and not have to worry about whether you've chosen the leanest Linux distro. But if you want to use the machine interactively, I'd just install your primary OS as the host, and virtualize the other OS. –  rob May 1 '12 at 18:27

What you're describing sounds like a hyper visor. VMWare and Microsoft both provide thin hypervisors that do little more than provide virtualization services. Also when running windows server 2008 (and 08R2 and now Windows 8 Server and client), you can install hyper-v which still places a hypervisor beneath the "host" OS. From a management standpoint, you still have to run Windows but technically Windows is just a guest to the hypervisor.

Hypervisors only work on hardware that has virtualization assistance enabled. Although all of the current processors (intel and amd) support hardware virtualization, some lower end laptops and desktops don't enable this feature (as a means of market segmentation).

From my understanding, the VMWare hypervisor has the smallest footprint, but costs more than Hyper-V which is free assuming you already have a windows license.

Another alternative is to use Virtual Box or another virtualization system that takes advantage of hardware virtualization but still runs within a host OS.

share|improve this answer
1  
VMware vSphere hypervisor is free. If you want advanced features such as HA, live migration, etc., you can pay for a vSphere license. –  rob May 1 '12 at 18:23
    
The only downside to a hypervisor is that, unless the guest operating system has explicit "Enlightened I/O" support, all hardware is still emulated per guest (done in the hypervisor). –  Breakthrough May 1 '12 at 18:50
    
The hypervisor is free but don't you have to pay to create the VMs and stuff like that (or use a pre-packaged VM from their library). –  Mike Brown May 1 '12 at 19:45

The problem with having both guest OSes virtualised is that you still need an OS to host the virtualisation. This can be none with a special operating system (VMWare ESXi, for example) but the components connected to that computer would be directly connected to the host OS and not your VMs. As a result you would find yourself having to connect to the guest OSes remotely using Terminal Services or SSH, because the screen, keyboard as mouse are connected to the host OS.

Virtualisation this way is only really helpful on a server that is not intended to be used as a workstation also.

If you are concerned about the limitations of dual-boot and use one OS more than the other, then the host should be the OS you use most regularly. For example if you use Windows more then the install virtualisation software on Windows and install Linux as a guest OS.

EDIT: I am incorrect in saying that you must connect remotely. Microsoft Hyper-V is an example of a solution that allows you to control your guest OS from the host, but I think it's support for other operating systems is limited and it is not easy to set up.

share|improve this answer
2  
Wrong wrong wrong...hypervisors can share screen, keyboard, and mouse with the guest OS. Some even allow USB passthrough. –  Mike Brown May 1 '12 at 18:11
    
Can you provide an example of a solution that offers this please? –  john May 1 '12 at 18:49
    
And next time, please consider how your comment may be interpreted? Like myself you also seem new to SU. "Wrong, wrong, wrong" makes you sound like an unfriendly know-it-all and it's not welcome. –  john May 1 '12 at 19:17
    
Sorry you're right it does sound antagonistic. My apologies. Microsoft Hyper-V allows for the guest OS to run full screen on the host. –  Mike Brown May 1 '12 at 19:44
    
Is Hyper-V not limited in it's support for Linux flavours? I think my answer wasn't clear in explaining that the choices for hypervisors in a desktop environment are not ideal as opposed to impossible to achieve. –  john May 1 '12 at 19:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.