Hardware Virtualization Techniques
Operating System Level Virtualization
Application-level virtualization
- To create different and separated execution environments for applications that are managed concurrently.
- There is no virtual machine manager or hypervisor, and the virtualization is done within a single operating system.
- OS kernel allows for multiple isolated user space instances.
- chroot mechanism in Unix systems. The chroot operation changes the file system root directory for a process and its children to a specific directory.
- The process and its children cannot have access to other portions of the file system.
- To achieve ease of deployment of applications, managed execution, and portability across different platforms and operating systems.
- It consists of a virtual machine executing the byte code of a program, which is the result of the compilation process.
- Generally these virtual machines constitute a simplification of the underlying hardware instruction set and provide some high-level instructions that map some of the features of the languages compiled for them.
- Basic Combined Programming Language
- Both Java and the CLI are stack-based virtual machines.
Application-level virtualization
- Such emulation is performed by a thin layer - a program or an operating system component that is in charge of executing the application.
- Interpretation - In this technique every source instruction is interpreted by an emulator for executing native ISA instructions, leading to poor performance.
- Binary translation - In this technique every source instruction is converted to native instructions with equivalent functions. After a block of instructions is translated, it is cached and reused.
- SaaS utilizes application-level virtualization to deploy the application