Dual-Virtualization vs. Dual-Boot vs. Single-Virtualization

Solution 1:

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

Solution 2:

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.

Solution 3:

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.