Ubuntu is a great OS for use in both virtualization hosts and in guest virtual machines and software appliances. Virtualization simply means the running of another OS within a host OS, through the usage of a special "hypervisor" application which handles everything about how the guest OS operates within (and with) the host system.
"Guest" OSes are typically installed to virtual drives; large and expanding (typically) files to which a the guest OS is installed in the same way that one would install the same OS to a hard disk. The guest OS then runs from that virtual drive. Another configuration, not recommended for beginners or those with high-value systems (always backup your data), is the running of a guest OS from another hard drive partition. This mode is called "raw disk" and requires special setup; using a small virtual "drive" file (for example in vmdk format) as an interface to the hard disk, and special commands which handle certain aspects of that system's startup.
There are quite a few virtualization platforms you can use a Ubuntu host with:
- KVM (Kernel Virtual Machine) - the officially maintained choice
JumpBox uses Ubuntu as the OS in their guest appliances.
- Ubuntu can be used as a guest OS in all of the above virtualization environments.
Ubuntu Server Edition JeOS is a specialized version of Ubuntu to create Virtual Appliances for KVM or VMWare.
python-vm-builder is a tool which allows you to automate the creation of virtual machine. See the JeOSVMBuilder tutorial for more information.