Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
wiki:virtualisation_et_emulation [2025/01/16 19:36] – [Émulateur à Architecture unique] Thibault Seguin | wiki:virtualisation_et_emulation [2025/03/11 21:30] (Version actuelle) – [Le Monde de la virtualisation et l'émulation] Thibault Seguin |
---|
====== Le Monde de la Virtualisation et l'Émulation ====== | ====== Monde de la virtualisation et l'émulation ====== |
| |
===== Virtualisation avec Hyperviseurs et Conteneurs ===== | ===== 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**. | 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**. | 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 ==== | ==== 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''. | 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''. |
* [[wiki:virtualisation_et_emulation:VirtualBox]], nom ''complet'' **Oracle VM VirtualBox** est un **hyperviseur** qui est ''développé'' par **Oracle Corporation** ''compatible'' avec l'**architecture processeur** **Intel x86**, **Intel x86_64** (**x64**) et **ARM64**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Oracle_VM_VirtualBox|ici]]. | * [[wiki:virtualisation_et_emulation:VirtualBox]], nom ''complet'' **Oracle VM VirtualBox** est un **hyperviseur** qui est ''développé'' par **Oracle Corporation** ''compatible'' avec l'**architecture processeur** **Intel x86**, **Intel x86_64** (**x64**) et **ARM64**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Oracle_VM_VirtualBox|ici]]. |
* [[wiki:virtualisation_et_emulation:Hyper-V]] est l'**hyperviseur** ''natif'' de **Windows** de **Microsoft**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Hyper-V|ici]]. | * [[wiki:virtualisation_et_emulation:Hyper-V]] est l'**hyperviseur** ''natif'' de **Windows** de **Microsoft**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Hyper-V|ici]]. |
| |
==== Hyperviseurs de Type 1 ==== | ==== 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**). | 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**). |
* [[wiki:virtualisation_et_emulation:KVM]] est l'**hyperviseur** intégré dans le **noyau Linux**. Rédaction en cours, rendez-vous [[https://fr.wikipedia.org/wiki/Kernel-based_Virtual_Machine|ici]] | * [[wiki:virtualisation_et_emulation:KVM]] est l'**hyperviseur** intégré dans le **noyau Linux**. Rédaction en cours, rendez-vous [[https://fr.wikipedia.org/wiki/Kernel-based_Virtual_Machine|ici]] |
* [[wiki:virtualisation_et_emulation:Xen]] est un **hyperviseur** ''développé'' par **The Xen Project** et ''compatible'' avec **x86**, **x86-64**, **IA-64**, **PowerPC** et **ARM Cortex-A7** et **Cortex-A15**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Xen|ici]] | * [[wiki:virtualisation_et_emulation:Xen]] est un **hyperviseur** ''développé'' par **The Xen Project** et ''compatible'' avec **x86**, **x86-64**, **IA-64**, **PowerPC** et **ARM Cortex-A7** et **Cortex-A15**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Xen|ici]] |
| |
==== Conteneurisation (Containers) ==== | ==== Conteneurisation (containers) ==== |
* [[wiki:virtualisation_et_emulation:LXC]] est le **système** de base de **conteneurisation** sous **Linux**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/LXC|ici]] | * [[wiki:virtualisation_et_emulation:LXC]] est le **système** de base de **conteneurisation** sous **Linux**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/LXC|ici]] |
* [[wiki:virtualisation_et_emulation:Docker]] sont des **conteneurs** (**containers** en anglais) qui **virtualise** des **distributions Linux** par **isolation** et qui sont ''compatibles'' avec **Linux**, **macOS**, **Windows** et **FreeBSD**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Docker_(logiciel)|ici]] | * [[wiki:virtualisation_et_emulation:Docker]] sont des **conteneurs** (**containers** en anglais) qui **virtualise** des **distributions Linux** par **isolation** et qui sont ''compatibles'' avec **Linux**, **macOS**, **Windows** et **FreeBSD**. Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Docker_(logiciel)|ici]] |
* [[wiki:virtualisation_et_emulation:Zone Solaris]] Rédaction en cours, rendez vous [[https://www.unixmaniax.fr/wiki/index.php?title=Zones_-_Solaris|ici]] | * [[wiki:virtualisation_et_emulation:Zone Solaris]] Rédaction en cours, rendez vous [[https://www.unixmaniax.fr/wiki/index.php?title=Zones_-_Solaris|ici]] |
| |
==== Gestionnaire de Technologie de Virtualisation ==== | ==== Gestionnaire de technologie de virtualisation ==== |
=== Gestionnaire de Virtualisation Graphique === | === Gestionnaire de virtualisation graphique === |
*[[https://virt-manager.org/|Virtual Machine Manager]] un excellent **gestionnaire de machine virtuelle** qui est une **interface graphique** pour **KVM**, **LXC**,**Xen**,... | *[[https://virt-manager.org/|Virtual Machine Manager]] un excellent **gestionnaire de machine virtuelle** qui est une **interface graphique** pour **KVM**, **LXC**,**Xen**,... |
*[[https://github.com/tobimensch/aqemu|AQEMU]] est une **interface graphique** pour **KVM** mais également pour l'**émulateur** **QEMU**. | *[[https://github.com/tobimensch/aqemu|AQEMU]] est une **interface graphique** pour **KVM** mais également pour l'**émulateur** **QEMU**. |
| |
=== Gestionnaire de Virtualisation en Ligne de Commande === | === Gestionnaire de virtualisation en ligne de commande === |
| |
=== Gestionnaire de Virtualisation Web === | === Gestionnaire de virtualisation web === |
| |
===== Émulation ===== | ===== Émulation ===== |
* [[wiki:virtualisation_et_emulation:SimH]] est un **émulateur** ''dédié'' aux **ordinosaures** (**ordinateurs** d' ''antan''). Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/SIMH|ici]] | * [[wiki:virtualisation_et_emulation:SimH]] est un **émulateur** ''dédié'' aux **ordinosaures** (**ordinateurs** d' ''antan''). Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/SIMH|ici]] |
| |
==== Émulateur à Architecture unique ==== | ==== Émulateur à architecture unique ==== |
* [[wiki:virtualisation_et_emulation:Bochs]] Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Bochs|ici]] | * [[wiki:virtualisation_et_emulation:Bochs]] Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/Bochs|ici]] |
* [[wiki:virtualisation_et_emulation:PearPC]] Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/PearPC|ici]] | * [[wiki:virtualisation_et_emulation:PearPC]] Rédaction en cours, rendez vous [[https://fr.wikipedia.org/wiki/PearPC|ici]] |
* [[https://doc.ubuntu-fr.org/pcem|PCem]] est un **émulateur** dédié à aux **ordinateurs** et **OS** d'antan sur **processeur** **x86**, des **processeurs** ''16 bits'' et ''32 bits''. C'est donc un **émulateur** fait revivre les anciens **compatibles PC**. | * [[https://doc.ubuntu-fr.org/pcem|PCem]] est un **émulateur** dédié à aux **ordinateurs** et **OS** d'antan sur **processeur** **x86**, des **processeurs** ''16 bits'' et ''32 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 ==== | ==== Émulateur de console de jeux ==== |
En ce qui concerne les **émulateurs** de **console de jeux** rendez-vous [[https://wiki.ordunix.net/doku.php?id=wiki:gaming#retrogaming|ici]]. | En ce qui concerne les **émulateurs** de **console de jeux** rendez-vous [[https://wiki.ordunix.net/doku.php?id=wiki:gaming#retrogaming|ici]]. |
| |
| |