Virtualisation
L'objectif de la virtualisation est d'exécuter plusieurs OS en même temps (placer plusieurs serveurs sur une même machine sans risquer que les pannes de l'un gênent les autres, développement et débogage, etc.).
En pratique, on lance une nouvelle fenêtre qui affiche la sortie de la machine virtuelle (elle utilise la fenêtre comme écran, ainsi que de nombreux périphériques virtuels). Le noyau d'une VM a les privilèges habituels d'un noyau mais ne peut sortir de sa VM.
La virtualisation peut être totale (exposition de matériel virtuel, instructions émulées), voire totale accélérée : les instructions normales s'exécutent directement sur le processeur sans être émulées, et seules les instructions privilégiées déclenchent une exception dans le processeur natif, traitée par l'hyperviseur (trap and emulate, facilité par les extensions matérielles Intel VT-x et AMD-V).
La paravirtualisation se traduit par la présence d'un hyperviseur (OS très simple), chargé du partage du matériel entre plusieurs OS invités, et par des OS invités modifiés pour coopérer avec lui. Dans Xen par exemple, le premier OS invité (dom0) est le maître : l'hyperviseur lui confie les périphériques. Les autres sont des OS invités ordinaires. Dans ce cas, le processeur est réellement partagé, et les OS invités appellent explicitement l'hyperviseur quand nécessaire (hypercalls : création de VM, accès au matériel, etc.).