Le Monde de la Virtualisation et l'Émulation
Virtualisation avec Hyperviseurs et Conteneurs
Contrairement à l'émulation qui émule la totalité d'un ordinateur, un hyperviseur utilise les ressources de l'ordinateur hôte (ordinateur sur lequel est installer l'hyperviseur), en gros il utilise les composants internes de l'ordinateur hôte comme le processeur (CPU), la mémoire vive (RAM), la carte graphique (GPU), carte réseau, carte son,… Par contre, l'hyperviseur ne peut exécuter une VM (machine virtuelle) et système d'exploitation invité que si il se base sur la même architecture processeur que l'ordinateur hôte. C'est à dire que sur un ordinateur ayant un processeur Intel ou AMD 64 bits
(x86), l'hyperviseur ne peut virtualiser qu'un système d'exploitation invité
(OS invité
) ou VM basé sur l'Intel ou AMD 64bits
ou 32bits
(x86) alors qu'un émulateur peut émuler n'importe quel architecture de processeur. Un OS invité est totalement isolé de l'ordinateur et de l'OS Hôte
et même des autres VM, si il y en a. C'est le principe de la virtualisation complète ! Une VM est un ordinateur virtualisé et l'OS invité
est l'OS installé sur cette VM.
La conteneurisation à quelques similitudes avec l'appel système et commande Unix du nom de chroot mais en utilisant une isolation complète entre l'OS Hôte et les autres conteneurs. Je vais prendre pour exemple les conteneurs LXC, les conteneurs ont une méthode
de virtualisation au niveau du système d'exploitation, c'est à dire que les conteneurs peuvent virtualiser plusieurs systèmes Linux (n'importe quelle distribution Linux est virtualisable) sur un ordinateurs hôte qui comportent lui aussi un système Linux, pour cela les conteneurs utilisent le noyau Linux de l'OS Hôte sur l'ordinateur hôte ce qui premet d'exécuter les logiciels d'un conteneur de façon pour ainsi dire native
. Un conteneur n'a accès à aucune donnée de l'OS Hôte et des autres conteneurs, l'isolation est parfaite, le seul OS qui peut accèder à toutes les données des conteneurs est l'OS Linux Hôte (OS principal de l'ordinateur). À noter qu'un conteneur ne virtualise pas le noyau étant donné qu'il utilise le noyau Linux de l'Hôte mais la totalité
de l'espace utilisateur, c'est à dire tout ce qui compose un système Linux hormis le noyau. Il faut aussi préciser que contrairement à la virtualisation par hyperviseur on peut tout à fait virtualiser un conteneur Linux à processeur ARM sur un ordinateurs hôte avec un Linux avec processeur x86 (Intel ou AMD). En définitive, les conteneurs sont parfaits pour avoir plusieurs serveurs Web Linux sur le même ordinateur par exemple ou avoir un conteneur Linux qui donne la possiblité d'avoir un environment de développement, compilation sans interféré avec votre OS Linux principal
, enfin vous avez une infinité de possibilités avec la virtualisation par conteneurs.
Hyperviseurs de Type 2
Un hyperviseur de type 2
est un hyperviseur qui doit être installé sur un système d'exploitation, de se fait, au vu de l'OS, c'est une simple application, ce qui permet d'installer se type d'hyperviseur très simplement. Se genre d'hyperviseur est également appele hyperviseur hébergé. Ce type d'hyperviseur est en général préféré par les particuliers
.
- VirtualBox, nom
complet
Oracle VM VirtualBox est un hyperviseur qui estdéveloppé
par Oracle Corporationcompatible
avec l'architecture processeur Intel x86, Intel x86_64 (x64) et ARM64. Rédaction en cours, rendez vous ici. - VMware Player Rédaction en cours, rendez vous ici.
Hyperviseurs de Type 1
Un hyperviseur de type 1
est un hyperviseur de type bare-metal, c'est à dire qu'il ne nécessite pas de système d'exploitation pour fonctionner se qui accrue globalement les performances de se genre d'hyperviseur qui n'a aucun intermédiaire
entre l'hyperviseur et le matériel informatique. Mais se genre d'hyperviseur est souvent plus délicas à mettre en oeuvre
et configurer
. Ce type d'hyperviseur est en général privilégié par les professionnels
et pour l'utilisation sur serveur informatique ayant plusieurs VM (machines virtuelles).
Conteneurisation (Containers)
- Zone Solaris Rédaction en cours, rendez vous ici
Gestionnaire de Technologie de Virtualisation
Gestionnaire de Virtualisation Graphique
- Virtual Machine Manager un excellent gestionnaire de machine virtuelle qui est une interface graphique pour KVM, LXC,Xen,…
- AQEMU est une interface graphique pour KVM mais également pour l'émulateur QEMU.
Gestionnaire de Virtualisation en Ligne de Commande
Gestionnaire de Virtualisation Web
Émulation
L'émulation permet de simuler la totalité
, d'une console de jeux, d'un ordinateur virtuel complet comprenant : le processeur (CPU), la mémoire vive (RAM), la carte graphique (GPU), carte réseau, carte son,…, enfin en clair, contrairement à un hyperviseur qui simule le moins de composant possible, c'est l'inverse pour l'émulateur. L'émulateur a ses propres atouts
et inconvénients
, parmi les atouts
, il y a le fait qu'un émulateur peut simuler n'importe qu'elle type d'ordinateur avec un processeur complètement différent de l'ordinateur hôte (sur lequel est installer l'émulateur), par exemple vous pouvez avec un émulateur simuler un ordinateur à processeur à architecture : i386 (x86), mips, alpha, m68k, arm, ppc (powerpc), risc-v sur un ordinateur hôte qui a n'importe qu'elle architecture de processeur, par exemple pour les plus courantes x86 ou arm en 64 bits
ou 32 bits
(peut importe), c'est à dire qu'on peut simuler n'importe quel architecture de processeur sur un ordinateur hôte avec une architecture différente voir la même architecture processeur (mais dans se cas il n'y a pas trop d'intérêt à utliser l'émulatation) et parmi les inconvénients
, vu que l'émulateur simule la totalité
d'un ordinateur il y a forcément une perte de performance
vu que l'émulateur n'utilise aucune ressource de l'ordinateur hôte (CPU,RAM,GPU,…) mais en général on utilise un émulateur pour simuler de vieux ordinateurs ou consoles de jeux donc les performances
requisent de ne sont pas vraiment importante au vu des performances
des ordinateurs actuels.
Vous trouvez une liste d'émulateurs plus conséquente.
Émulateur multi-architecture
Émulateur à Architecture unique
- PCem est un émulateur dédié à aux ordinateurs et OS d'antan sur processeur x86, des processeurs
16 bits
et32 bits
. C'est donc un émulateur qui fait revivre les anciens compatibles PC. Dans la même veine il y a l'émulateur du nom de 86Box, qui est encore plus complet.
Émulateur de Console de Jeux
En ce qui concerne les émulateurs de console de jeux rendez-vous ici.