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
- Official documentation
- Community documentation
- VMware (https://help.ubuntu.com/community/VMware)
- 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.