often used as sandbox to analyze the malware and provide signatures for future patching. It is also used for running suspicious or third-party less trustworthy applications. Multiple operating environments: On the same physical server, it can provide multiple operating systems simultaneously to support diverse application needs. One physical server can run both Linux and Windows Operating Sysytems (OSes) without interfering with each other. Hiding hardware details: Hardware is evolving and a hardware change may result in problems/crashes in the application software. The VM interface hides the hardware details and thus hardware upgrades can be transparent to applications. It can also provide virtualized hardware primitives such as virtual network interface cards (NICs), virtual either adapters, and switches. 2 Virtualization and Cloud Computing Application migration: On the one hand, it can be used to consol- idate workload from the underutilized servers together to reduce energy cost. On the other hand, it can move applications to newer hardware servers with minimum disruption through live VM migra- tion technique. 2.2.2 Virtualization Techniques Virtualization is essentially a mapping and emulating process. It maps the virtual resource to native hardware resource and then uses the lat- ter for computation. According to where the mapping occurs, we will first explain the widely used hardware-level virtualization and then cover other layers' virtualization as well. 2.2.2.1 Hardware-Level Virtualization Figure 2.2 shows two widely used virtualization architectures. The most important component in this architecture is called virtual machine monitor (VMM). VMM uses software to emulate the vir- tualized processor, I/O, memory, storage, and SO on. It can support multiple VM instances simultaneously. Each VM has its application and os layer, just as a normal compute model. The os passes the instructions to the VMM for execution. On the left side, the VMM is a software layer sitting on the bare metal hardware. So this ar