Running Virtual Machines With And Without Virtualization Hardware Support

I have been using Ubuntu on my Windows operating system, using VirtualBox. It is a great tool and really provides a lot of help when you don't have any extra devices to install the real operating systems on the real machines. However, there is a need of some extra support from the hardware itself before you can perform anything extra.
 
One such feature is the hardware support for virtualization of the software, which enables you to run multiple operating systems on the machine at the same time. Many features, services, and applications require this feature to be enabled. For example, the Android emulator requires this to be available, before you can use the application to its full performance. In this write-up, I will walk you through much more about how you can use virtualization, with and without the hardware support and what the major differences between them are. 

Tools I Use

New Page 1
If you want to get started and learn these things just the way I did, you should consider getting the following tools and installing them on your machine.
  1. VirtualBox for the main purpose.
  2. ISO packages for your favorite operating systems. I keep the following:

    • Windows Server packages
    • Ubuntu packages
    • Windows itself
    • Linux Mint
    • Some native Linux operating systems
Once you have got these, get started with installation of these packages and work your way to the deepest parts of virtual machines. 

With hardware support

If you get the hardware support, then there is no problem at all. Most of the stuff will be taken care of by the virtual machine software application itself. VirtualBox is a great tool and I have never had any complaint about it. It is really a great community-driven tool for the developers to test and try out the virtualization. With hardware support, you get the following benefits:
  1.  No need to worry!
  2. 32 bit and 64 bit, both work! Your virtualization software will take care of the worst.
  3. Any amount of RAM and CPU can be used (provided that they exist on the machine itself). You, however, cannot exceed the maximum resources available. 
  4. Performances are maximum and using the hardware, software provides as if you were using the native machine. 
  5. Remote views can be used to deploy your views on a separate output, such as a projector. 
However, once you loose the hardware support, many things get out of control and you will start to pull your hair out. 

Without hardware support 

Without the hardware support, all of the ease goes out of the window and you are left with keeping things as much to-the-point and straightforward as much as you can. For example, the following things happen (in contrast):
  1. You do have to worry and pray things to go right!
  2. 32 bit works on 32 bit and 64 bit works on 64. You cannot swap things. Since there is no virtualization, CPU command-set must be taken care of. 
  3. You are allowed to use a maximum of 2 or 3 GB of RAM if your RAM is higher than 8 GB in total. 
  4. Performance is not very fast and good. 
  5. You would have to use other tools to get your system to work and support most of the features that hardware support provides. 
This way, it is not recommended to perform hardware virtualization on your machines that do not support the feature because it is more painful than helpful.

Why am I writing this?

I am writing this in order to help you understand what happens if you start working in an area that your machines should not go. If you really want to do these types of things, like installing an operating system within another, I recommend getting a new device. A device that supports virtualization!