A virtual machine (VM) can be defined as a virtualized operating system with its associated software and applications. It runs in one of three virtualization modes, also named domain types:
Hardware virtualized (HVM). An unmodified guest operating system executes in complete isolation. Instructions are trapped and emulated at the hardware level (Intel VT-x/VT-i and AMD-V), allowing excellent performance thanks to limited overhead for guest modifications.
Paravirtualized (PVM). A software interface similar but not identical to the underlying hardware is presented to the guest operating system. Paravirtualization provides hooks for guest instructions so that complicated tasks can be performed by the host instead of the virtual machine, where performance is worse. Paravirtualization requires that the guest kernel is ported to be made aware of the virtual environment.
Hardware virtualized with paravirtualized drivers (PVHVM). Similar to HVM but with additional paravirtualized drivers to off load more processes to the host and increase VM performance. This domain type is typically used to run Microsoft Windows guests with a limited performance penalty.
Virtual machines can be created from different types of resources: either from a template or assembly containing preconfigured virtual machines, or from scratch using an ISO file (image) of an installation DVD. Booting a VM via PXE, or network boot for a PVM guest, is also possible.
The creation of a VM from template is based on cloning: the template is imported as an archive, unpacked and stored as a VM configuration file with images of its disks, which are cloned to create a new instance in the form of a VM. In the same way, an existing VM can be cloned to create a new VM, and to a new template as well. Cloning is discussed in further detail in Section 7.8, “Cloning a Virtual Machine or Template”.
Assemblies can be described as a template of a group of virtual machines, or a collection of multiple VM templates. In Oracle VM Manager, templates and assemblies appear in different tabs of the storage repository, but their VM configuration files and disk images are stored in the same location as those of other virtual machines and templates.
Creating a VM from a virtual DVD (image file, ISO) is different depending on the virtualization mode. When creating an HVM guest, you can assign an ISO file located on a storage repository so that the new VM immediately boots from the virtual DVD. Conversely, a PVM guest cannot simply boot from DVD out of nothing, and uses an ISO file mounted remotely, accessing it via NFS, HTTP or FTP.
As mentioned in this section and in Section 2.5, “Storage”, virtual machine resources are stored in storage repositories. The contents and structure of storage repositories is described in detail in Section 7.5, “Virtual Machine Resources”.
Once a VM is running, it can be accessed through a VNC console, which allows it to be used as a regular pc. All operations on the VM are executed through Oracle VM Manager, as described in Section 7.9, “Managing Virtual Machines”.