Prerequisite: Introduction to Virtualization
When an execution environment is virtualized at unlike levels of the stack of computation then it requires a reference model which defines the interfaces within the level of abstractions, and this level of abstraction hides the details of implementations.
This projects an idea that, virtualization techniques can substitute any one layer and can intercept the calls which are directed to it. That’s why a clear separation within the layers can simplify their implementations, which only need an emulation of the interfaces and a proper response with the underlying layer.
At the base layer, the model for the hardware is declared or manifested on terms of an architecture i.e. Instruction Set Architecture (ISA).
Instruction Set Architecture (ISA) defines the instruction set for the processor, registers, memory, and interrupt management. It is an interface between software and hardware and It is mandatory for the operating system (OS) developer (system ISA) developers of applications who directly manages core hardware (user ISA). The operating system layer is separated by the application binary interface (ABI) from the application and libraries, which are managed by operating system.
Application Binary Interface (ABI) covers facts such as low-level data types and call conventions and it also defines a format for many programs. Mainly, system calls are defined at this level. Moreover, this type of interface enables portability of various applications and libraries across OS which employ the same ABI. Application programming interface (API) is represented by the highest level of abstraction. This API interfaces applications to libraries and/or the core OS. For an action is to be performed in the application level API, ABI and the two which are responsible to make it done. Mainly, CPU runs on two privilege levels:
- User Mode: In this mode, memory access is restricted up to some limit whereas access to peripherals is denied.
- Kernel Mode: In this mode, CPU has instructions which manage memory and how to be accessed and it also has instructions which enable access of the peripherals like disks and network cards. From one running program to another running program, CPU switches automatically. The expansions and applications of computing system are simplified by this layered approach. Application of multitasking and co-existence of multiple executing is simplified by this layered approach.
The first can be made within privileged and non-privileged instructions. Those instructions which can be used with interrupting with another task are known as Non- privileged instruction. They are also called so because shared resources are not accessed. Ex- contains all the fixed points, floating and arithmetic instructions. The instructions which are executed under particular restrictions and which are frequently used for sensitive operations (which expose behavior-sensitive or modify control sensitive) are known as privileged instructions.
It is expected that in a hyper visor-managed environment, code of guest OS runs in user to prevent it from the direct access of OS’s status. It is no longer possible to completely isolate the guest OS when non-privileged instructions are implemented.
Reference: Book- Mastering Cloud Computing
- Need of Virtualization and its Reference Model
- Virtualization | VMware: Full Virtualization
- Learning Model Building in Scikit-learn : A Python Machine Learning Library
- Characteristics of Virtualization
- Virtualization | Xen: Paravirtualization
- Hardware Based Virtualization
- Operating system based Virtualization
- Virtualization In Cloud Computing and Types
- Linux Virtualization - Chroot Jail
- On-premises cost estimates of Virtualization
- Linux Virtualization : Resource throttling using cgroups
- Linux Virtualization : Linux Containers (lxc)
- How Does Google Use Machine Learning?
- How Does NASA Use Machine Learning?
- Brain Machine Interface (BMI)
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.