Virtualization emulates the hardware environment of its host architecture, allowing multiple OSes to run unmodified and in isolation.
The guest software is not limited to user applications; many hosts allow the execution of complete operating systems.
In paravirtualization, the virtual machine does not necessarily simulate hardware, but instead (or in addition) offers a special API that can only be used by modifying[clarification needed] the "guest" OS.
If the source code is available, it is sufficient to replace sensitive instructions with calls to VMM APIs (e.g.: "cli" with "vm_handle_cli()"), then re-compile the OS and use the new binaries.
A disaster recovery (DR) plan is often considered good practice for a hardware virtualization platform.
DR of a virtualization environment can ensure high rate of availability during a wide range of situations that disrupt normal business operations.