A hypervisor or virtual machine monitor (VMM) is computer software, firmware, or hardware, that creates and runs virtual machines.
it is a piece of software that enables you to run one or more VMs on a physical server.
Linux's Kernel-based Virtual Machine (KVM) module effectively convert the host operating system to a type-1 hypervisor.
At the same time, since Linux distributions are still general-purpose operating systems, with other applications competing for VM resources, KVM can also be categorized as type-2 hypervisors.
A program is usually limited to its own address space so that it cannot access or modify other running programs or the operating system itself, and is usually prevented from directly manipulating hardware devices.
System call is a way in which a computer program requests a service from the kernel of the operating system it is executed on.
a privileged instruction is a processor op-code (assembler instruction) which can only be executed in "supervisor" (or Ring-0) mode.
These types of instructions tend to be used to access I/O devices and protected data structures from the kernel.
Regular programs execute in "user mode" (Ring-3) which disallows direct access to I/O devices, etc.
hypercall is to a hypervisor what a syscall is to a kernel.
A hypercall is a software trap from a virtual machine to the hypervisor, just as a syscall is a software trap from an application to the kernel.
Domains will use hypercalls to request privileged operations like updating pagetables.
https://en.wikipedia.org/wiki/Hypervisor https://en.wikipedia.org/wiki/X86_virtualization#Intel_virtualization_.28VT-x.29 https://en.wikipedia.org/wiki/Protection_ring https://en.wikipedia.org/wiki/System_call https://stackoverflow.com/questions/89607/what-is-a-privileged-instruction http://www.cs.princeton.edu/courses/archive/spr01/cs217/slides/21.os.pdf https://wiki.xen.org/wiki/Hypercall https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/VMware_paravirtualization.pdf
htmlexports of project available at: https://ravexina.github.io/linux-notes.
Linux Notes by Milad As (Ravexina) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.