Agence web » Actualités du digital » Quelle est la différence entre la virtualisation et l’émulation? Pourquoi c’est important –

Quelle est la différence entre la virtualisation et l’émulation? Pourquoi c’est important –

Shutterstock / kkssr

L’émulation et la virtualisation atteignent le même objectif: exécuter un autre système d’exploitation dans une machine virtuelle. Cependant, chacun fait cela différemment, et quand il peut être utilisé, la virtualisation est beaucoup plus rapide.

Une question de performance

La réponse courte est que l’émulation est beaucoup plus lente que la virtualisation, et tout se résume à optimisations matérielles.

L’émulation est la forme la plus basique d’exécution d’une application sur un hôte involontaire. Un émulateur prend les commandes destinées au système cible et les traduit en quelque chose que l’ordinateur hôte peut comprendre et exécuter. Cela implique généralement l’émulation des opcodes et des registres du processeur. Un bon exemple de cela est l’émulation d’anciens jeux, comme la Nintendo N64, sur un PC moderne. Le PC ne peut pas exécuter directement les jeux N64, mais l’émulateur est capable de prendre les instructions destinées au N64 et de les exécuter aussi près que possible de la perfection.

Bien que le terme «émulation» soit couramment utilisé pour désigner l’émulation de jeux vidéo, il est tout aussi souvent utilisé pour les applications professionnelles. Par exemple, vous avez peut-être un logiciel hérité essentiel, qui doit fonctionner sur un système comme DOS. L’exécuter dans un émulateur sur un nouveau serveur peut souvent être plus facile que de l’exécuter sur une machine à partir du moment. Il peut également faire référence à un logiciel émulant les effets du matériel hérité, comme l’émulation d’anciens contrôleurs réseau.

Cependant, l’émulation peut être inutilement lente. Un cas d’utilisation extrêmement courant consiste à exécuter plusieurs machines virtuelles Linux sur un système d’exploitation hôte. Lorsque la machine hôte est la même que la machine virtuelle, l’émulation complète de l’ensemble du processeur est très lente par rapport à une exécution normale.

Par conséquent, la plupart des machines virtuelles utiliseront une technologie de virtualisation optimisée pour le matériel. Sur Intel, cette technologie s’appelle Intel-VT, et sur AMD, elle s’appelle AMD-V. Les deux accomplissent le même objectif de virtualisation des applications x86. Si vous utilisez un ordinateur de bureau, vous devrez peut-être les activer dans le BIOS s’ils ne sont pas activés par défaut.

La virtualisation est souvent utilisée en combinaison avec un hyperviseur, qui est un système d’exploitation barebones qui gère plusieurs serveurs privés virtuels. Si vous louez un VPS à une société de calcul dans le cloud comme AWS, il s’exécute probablement sur un hyperviseur comme Nitro, Proxmox ou Hyper-V d’AWS. Les hyperviseurs modernes peuvent atteindre des performances très proches du natif (également appelé «bare metal»). Bien qu’il y ait toujours un peu de surcharge, c’est mieux que d’avoir à l’émuler.

La virtualisation fonctionne presque toujours mieux si vous virtualisez la même architecture. Par exemple, les processeurs x86 d’AMD et d’Intel pourront virtualiser les systèmes d’exploitation x86 comme Windows et Linux standard. Bien qu’il ne soit pas techniquement impossible pour un processeur ARM de virtualiser un processeur x86, ce n’est généralement pas une chose.

Cela peut être un problème, comme dans le cas des nouveaux Macbooks basés sur ARM d’Apple qui fonctionnent sur leurs propres processeurs M1. La virtualisation des systèmes d’exploitation x86 n’est pas prise en charge. Bien que vous puissiez toujours exécuter d’autres systèmes d’exploitation avec des programmes comme Parallels, cela va être beaucoup plus lent car il devra recourir à l’émulation.

Donc, en conclusion, si vous allez exécuter un programme à partir d’un autre système d’exploitation, vous voudrez vous assurer de le faire en utilisant une sorte de virtualisation si vous voulez atteindre une vitesse proche de 100%.

Comment Docker se compare-t-il?

les-conteneurs-valent-ils-le-mal-de-tete-cloudsavvy-it-3358835

Docker permet d’exécuter des conteneurs d’applications, qui sont des packages isolés contenant tout le code nécessaire à l’exécution d’une application. C’est aussi très sûr; une machine hôte peut exécuter plusieurs conteneurs Docker sans craindre qu’ils ne sortent du conteneur ou ne se gâtent les uns avec les autres.

À bien des égards, Docker atteint exactement le même objectif d’exécuter plusieurs applications dans des machines virtuelles Linux privées, mais sous le capot, il fait les choses un peu différemment.

Docker n’utilise ni l’émulation ni la virtualisation. Il exécute tout le code directement sur le processeur et le système hôte, sans surcharge de virtualisation. Afin d’isoler les conteneurs, il utilise intelligemment les espaces de noms Linux, entre autres fonctionnalités qui peuvent isoler les processus dans leur propre «prison conteneur». Les processus à l’intérieur de la prison ne peuvent pas voir ou interagir avec les fichiers, processus ou ressources système qui ne leur sont pas affectés.

Cela permet d’obtenir un système dans lequel plusieurs applications peuvent s’exécuter les unes à côté des autres sur un système d’exploitation hôte sans la surcharge d’un système d’exploitation distinct pour chaque serveur privé virtuel. Pour un fournisseur comme AWS, cela économise beaucoup d’argent.

1594134826_808_les-conteneurs-valent-ils-le-mal-de-tete-cloudsavvy-it-2047483

Si vous envisagez de virtualiser, mais que vous êtes préoccupé par les performances, Docker n’a pratiquement pas de frais généraux par rapport à l’exécution d’applications sur le bare metal. Vous pouvez lire notre guide de mise en route pour en savoir plus.

★★★★★