docs: update virt/lexicon

This commit is contained in:
lukas 2022-01-12 15:43:14 +00:00
parent db2f50c666
commit e69199084f

View File

@ -2,28 +2,25 @@
title: Lexicon title: Lexicon
description: description:
published: true published: true
date: 2021-11-13T18:47:23.476Z date: 2022-01-12T15:43:12.102Z
tags: tags:
editor: markdown editor: markdown
dateCreated: 2021-11-13T11:58:43.776Z dateCreated: 2021-11-13T11:58:43.776Z
--- ---
> Section under construction. # Key terms related to virtualization
{.is-warning}
## Terms related to virtualization ## Emulator
### Emulator
Emulators or virtualizers are software that provide material components Emulators or virtualizers are software that provide material components
similar to physical hardware, but that are made of computer code instead similar to physical hardware, but that are made of computer code instead
of silicon, -- virtual hardware --, such as virtual floppy disks. of silicon, -- virtual hardware --, such as virtual floppy disks.
QEMU[^6] is a popular emulator that can act as a simulator or virtual QEMU is a popular emulator that can act as a simulator or virtual
machine monitor. In the latter case, it can leverage hardware machine monitor. In the latter case, it can leverage hardware
acceleration, acceleration,
### Hardware-assisted virtualization ## Hardware-assisted virtualization
Hardware-assisted virtualization is a feature of certain computer Hardware-assisted virtualization is a feature of certain computer
hardware made to take advantage of virtualization. hardware made to take advantage of virtualization.
@ -34,12 +31,12 @@ In other words, hardware-assisted virtualization translates into better
performance for virtualized workloads, significantly reducing the gap in performance for virtualized workloads, significantly reducing the gap in
performance between a virtual machine and a physical one. performance between a virtual machine and a physical one.
### Nested-virtualization ## Nested-virtualization
Nested-virtualization refers to the ability to run a virtual machine Nested-virtualization refers to the ability to run a virtual machine
inside another virtual machine. inside another virtual machine.
### Virtualization ## Virtualization
Most computers are made of hardware and software. By analogy, the brain Most computers are made of hardware and software. By analogy, the brain
that animates the cells to control a body can be thought as the that animates the cells to control a body can be thought as the
@ -53,12 +50,12 @@ machines.
There are roughly three types of virtualization: There are roughly three types of virtualization:
- **Simulation or emulation**: when a computer is fully emulated and * **Simulation or emulation**: when a computer is fully emulated and
can be made to look like any device to an operating system can be made to look like any device to an operating system
- **Partition**: when computer resources are split such that each * **Partition**: when computer resources are split such that each
operating system can only see a subset of available hardware operating system can only see a subset of available hardware
resources resources
- **Paravirtualization**: when both hardware and software-assisted * **Paravirtualization**: when both hardware and software-assisted
virtualization is being used. In this case, the guest is aware that virtualization is being used. In this case, the guest is aware that
it is running in the virtualized environment, and acts accordingly. it is running in the virtualized environment, and acts accordingly.
@ -68,7 +65,7 @@ better use of resources through consolidation. For instance, with
virtualization, multiple operating systems can run concurrently on a virtualization, multiple operating systems can run concurrently on a
physical machine. physical machine.
### Hypervisor ## Hypervisor
A hypervisor is an operating system or firmware that is designed to run A hypervisor is an operating system or firmware that is designed to run
guest systems: it handles scheduling, execution of hyper privileged guest systems: it handles scheduling, execution of hyper privileged
@ -86,56 +83,51 @@ virtual hardware.
As of 2021, there are two major open-source hypervisor that are both are As of 2021, there are two major open-source hypervisor that are both are
able to leverage hardware-assisted virtualization: able to leverage hardware-assisted virtualization:
- Xen (2003)[^7]. - Xen (2003)
- Kernel-based Virtual Machine (KVM) module for Linux (2007)[^8]. - Kernel-based Virtual Machine (KVM) module for Linux (2007)
### Device ## Device
Devices are computer components that can be attached to machines. They Devices are computer components that can be attached to machines. They
can be classified in two ways : physical or emulated. can be classified in two ways : physical or emulated.
+--------+-------------------+----------------+------------------------+ | | Physical hardware | Emulated: model-based | Emulated: paravirtual |
| | Physical hardware | Emulated : | Emulated : paravirtual | | :- | :-: | :-: | :-: |
| | | | | | *Design* | Specific | Specific | Generic |
| | | model-based | | | *Type* | Silicon-based | Software-based | Software-based |
+--------+-------------------+----------------+------------------------+
| Design | Specific | Specific | Generic |
+--------+-------------------+----------------+------------------------+
| Type | Silicon-based | Software-based | Software-based |
+--------+-------------------+----------------+------------------------+
- Physical * Physical
- Physical components refer to devices that can be attached to a * Physical components refer to devices that can be attached to a
system. For instance, a dedicated physical graphics card system. For instance, a dedicated physical graphics card
attached to a physical system can be directly attached to a attached to a physical system can be directly attached to a
virtual machine, which then becomes responsible for managing it, virtual machine, which then becomes responsible for managing it,
a technique called *passthrough*. The PCI-SIG standards provide a technique called *passthrough*. The PCI-SIG standards provide
IOMMU-related specifications to allow a host operating system to IOMMU-related specifications to allow a host operating system to
not have a driver for a particular device[^9] and passthrough not have a driver for a particular device and passthrough
the device to the guest. The guest will have a device with the device to the guest. The guest will have a device with
nearly native performance, and use the standard vendor's drivers nearly native performance, and use the standard vendor's drivers
for the device. for the device.
- The PCI-SIG standards also provide a way to partition compatible * The PCI-SIG standards also provide a way to partition compatible
devices using so-called Virtual Functions (VFs). In this case, devices using so-called Virtual Functions (VFs). In this case,
the host manages the way a physical device is used by the guest. the host manages the way a physical device is used by the guest.
Both host and guest must have specific device drivers. It offers Both host and guest must have specific device drivers. It offers
nearly native performance. nearly native performance.
- Emulated * Emulated
- Model-based * Model-based
- Model-based emulated hardware are designed after real * Model-based emulated hardware are designed after real
devices, but are made out of computer code, not silicon. The devices, but are made out of computer code, not silicon. The
i440fx and Q35[^10] chipsets are both instances of emulated i440fx and Q35 chipsets are both instances of emulated
hardware. This is the slowest (but most compatible) way to hardware. This is the slowest (but most compatible) way to
provide a device to a guest. An emulated GPU is not going to provide a device to a guest. An emulated GPU is not going to
be fast enough in an emulated mode to do 3D rendering. be fast enough in an emulated mode to do 3D rendering.
- Paravirtual * Paravirtual
- Paravirtual hardware, also known as paravirtualized Virtual * Paravirtual hardware, also known as paravirtualized Virtual
I/O devices or simply virtio, are also made out of computer I/O devices or simply virtio, are also made out of computer
code. Contrary to emulated hardware, they function as a code. Contrary to emulated hardware, they function as a
generic piece of software-based hardware which doesn't generic piece of software-based hardware which doesn't
@ -145,7 +137,7 @@ can be classified in two ways : physical or emulated.
Paravirtualization refers to the emulation practice of letting an Paravirtualization refers to the emulation practice of letting an
operating system running in a virtualized environment know that it is operating system running in a virtualized environment know that it is
running in such an environment[^11]. running in such an environment.
Under this configuration, more efficient communication methods are Under this configuration, more efficient communication methods are
available between the host and the guest, including VirtIO devices available between the host and the guest, including VirtIO devices