Émulation, virtualisation et conteneurisation – qu’est-ce que c’est ?

Daniel Vinet
mmnmDaniel Vinet

Éléments essentiels de l’informatique, nous savons tous sans contredit que les logiciels et systèmes d’exploitation sont virtuels. Toutefois, les chercheurs et ingénieurs en informatique adorent pousser toujours plus loin les limites du domaine. De ces recherches et développements sont nés les concepts d’émulation, de virtualisation et de conteneurisation.

D’entrée de jeu, sachez que tous les trois ont un objectif commun, soit la création d’un environnement virtuel. « Oui, mais l’informatique est déjà virtuelle, vous venez de nous le mentionner ! », me direz-vous, et vous avez parfaitement raison. Mais voilà, ces cracks de l’informatique ont réussi à virtualiser le virtuel !

Émulation

Il s’agit d’un logiciel, nommé émulateur, installé sur notre ordinateur et dédié à la simulation d’un système ou d’un appareil. L’émulation est donc une reproduction du fonctionnement d’un produit nommé une machine virtuelle.

Par exemple, des émulateurs d’équipements électroniques, de consoles de son ou de consoles de jeux ont été créés et ceux-ci peuvent reproduire parfaitement le fonctionnement de l’équipement dans sa partie logicielle, une fois installés sur votre ordinateur.

Un élément essentiel d’un émulateur est nommé interpréteur. Celui-ci effectue la traduction en temps réel des instructions entre votre système d’exploitation et l’émulateur afin de reproduire parfaitement l’appareil émulé.

Un exemple actuellement en développement et offert en essai est l’émulateur Android pour Windows 11. Sans entrer dans les détails, il est possible d’exécuter des applications Android sous Windows 11.

Émulateur Android avec le jeu Lily’s Garden fonctionnant sous Windows 11. Notez l’application du magasin d’applications Android, Amazon Store en arrière-plan, à gauche

Par exemple, l’émulation est également très prisée par les développeurs afin de créer une application pour téléphone intelligent. Le développeur a besoin de tester son application sur un émulateur souvent fourni à même l’outil de développement.

Outil de développement d’applications XCode d’Apple avec émulation d’un iPhone

Virtualisation

La virtualisation est principalement utilisée pour exécuter un ou plusieurs systèmes d’exploitation différents sur un ordinateur physique de façon simultanée. Ces virtualisations, également nommées machines virtuelles, sont isolées de votre système d’exploitation à un point tel qu’elles se croient seules à utiliser pleinement les ressources de votre ordinateur.

La virtualisation se distingue par son logiciel, nommé hyperviseur, qui permet de créer soi-même des virtualisations.

Parmi les hyperviseurs les plus connus, nous avons Microsoft Hyper-V, VMWare WorkStation et Oracle VirtualBox. Du côté des ordinateurs Mac d’Apple, l’hyperviseur Parallels est le plus utilisé. Notez que VMWare Player et Oracle VirtualBox sont des solutions gratuites pour une utilisation à domicile.

Ainsi, il est possible de faire fonctionner une version de Windows ou une instance de Linux simultanément sur votre ordinateur, comme s’il s’agissait d’un logiciel natif. Bien évidemment, vous devez posséder une licence du système d’exploitation pour lequel vous voulez créer une virtualisation.

Notez que la virtualisation nécessite beaucoup de ressources pour fonctionner adéquatement sans hypothéquer les ressources de votre ordinateur. Il faut donc s’assurer d’avoir l’espace disque ainsi que la mémoire vive adéquate pour exécuter une ou plusieurs machines virtuelles simultanément. Pour donner une idée de grandeur, disons qu’un ordinateur de dernière génération avec 16 gigaoctets de mémoire vive ou plus et un disque dur de 512 gigaoctets ou mieux, offre les capacités nécessaires à ce genre d’opération.

Les exemples suivants démontrent quelques possibilités de la virtualisation.

Windows 7 virtualisé et fonctionnant dans une fenêtre sous Windows 10

 

Ubuntu Linux virtualisé sous Windows 10

Ici, nous avons présenté des virtualisations nécessitant un système d’exploitation, tel que Windows 10 par exemple, nommé hôte et sur lequel l’hyperviseur doit être installé comme tout autre logiciel.

Toutefois, sachez qu’il existe une forme d’hyperviseur natif (bare metal) ayant son propre système d’exploitation et s’installant directement sur un ordinateur, sans système d’exploitation hôte au préalable. Ce type d’hyperviseur est utilisé en entreprise pour la gestion d’environnements virtuels de serveurs. Il permet d’améliorer les performances globales puisqu’il n’y a pas d’intermédiaire entre l’ordinateur et les machines virtuelles.

Le diagramme suivant illustre de façon simplifiée la différence.

Cliquez sur l’image pour l’agrandir

 

Les avantages de la virtualisation

Les avantages sont indéniables. La virtualisation représente une économie de coûts, car elle permet d’exécuter plusieurs systèmes d’exploitation sur un seul appareil physique évitant la multiplication des ordinateurs.

Elle permet également d’y installer et tester des logiciels sans affecter votre ordinateur ni même la machine virtuelle grâce à une fonctionnalité des hyperviseurs qui permet la prise d’instantanés (snapshot), telle une photo de l’état de la virtualisation avant d’y faire des modifications. Ainsi, il est possible de ramener la machine virtuelle à son état initial en cas de problème.

La virtualisation est également très estimée par les développeurs d’applications. Par exemple, elle permet de tester une application sur différentes versions de Windows (8.1, 10, 11) afin de s’assurer de son bon fonctionnement.

En entreprise, cet avantage est d’autant plus grand qu’il permet une importante économie d’énergie et de ressources. Avant la venue de la virtualisation, il fallait compter une machine physique pour chaque serveur que l’entreprise mettait en place. Avec les solutions d’entreprise en matière de virtualisation, il n’est pas rare de voir un seul serveur physique faire fonctionner une centaine de serveurs virtuels.

Conteneurisation

Avec le développement de l’infonuagique, de nouveaux besoins sont nés exigeant une plus grande souplesse de partage et de configuration des ressources d’un environnement virtuel. La virtualisation telle que nous l’avons vue ci-haut ne répond pas à ces nouveaux besoins. Ainsi est née la conteneurisation qui est l’évolution naturelle de la virtualisation.

Dans un concept de virtualisation tel que nous l’avons vu, chaque instance de machine virtuelle que nous créons nécessite chaque fois l’installation complète d’un système d’exploitation, des bibliothèques logicielles, ou librairies, puis des applications devant y fonctionner.

La conteneurisation permet d’isoler les composants et les rendre indépendants du système d’exploitation. Chaque application sera isolée avec les librairies et dépendances requises à son fonctionnement. Ceci aboutit à un exécutable léger nommé conteneur. Ce conteneur peut, par la suite, être déplacé aisément, peu importe l’ordinateur, puisque tout ce que l’application requiert est inclus dans le conteneur.

Le diagramme suivant illustre la différence entre virtualisation native et conteneurisation avec l’exemple de trois applications :

Cliquez sur l’image pour l’agrandir

Les avantages de la conteneurisation

La conteneurisation permet d’alléger la charge de travail d’un ordinateur physique en partageant les ressources d’un seul système d’exploitation à la différence de la virtualisation où chaque instance virtuelle nécessite son propre système d’exploitation.

La conteneurisation permet un déploiement rapide d’applications et une plus grande souplesse en ce qui a trait aux transferts d’un ordinateur à un autre. Elle assure également une plus grande sécurité, aucune modification n’étant requise au fonctionnement d’un conteneur.

L’industrie du jeu vidéo en ligne est un bon exemple d’utilisation de la conteneurisation. Cette technologie permet à un studio de déployer rapidement leur jeu, puis d’augmenter ou diminuer le nombre de serveurs requis en fonction du nombre de joueurs ainsi que leur localisation sur la planète.

Bien qu’elle soit très prisée en entreprise, il est possible d’effectuer de la conteneurisation sur son ordinateur à la maison. Encore là, une configuration minimale  est requise (lien en anglais). La solution de conteneurisation la plus en vogue actuellement est Docker. Celle-ci est offerte en logiciel libre. Il est possible de télécharger gratuitement une version personnelle de Docker.

Conclusion

Voilà, j’espère que cet article a suscité votre intérêt et qu’il vous a permis d’explorer un peu plus loin ce vaste univers qu’est l’informatique.

Daniel Vinet

15 réflexions sur « Émulation, virtualisation et conteneurisation – qu’est-ce que c’est ? »

  1. Le terme BAC À SABLE notamment dans les applications antivirus !
    Doit-on parler de virtuel ?

    Détection de bac à sable : si un logiciel antivirus localise un fichier d’apparence suspecte qui n’est manifestement pas un logiciel malveillant sur la base d’une signature et d’une analyse heuristique, il peut ouvrir et exécuter le fichier dans une zone sécurisée appelée « bac à sable ». Cela permettra au logiciel de déterminer si le fichier est en fait malveillant. Si tel est le cas, il peut être supprimé sans endommager votre ordinateur.

  2. Wow, merci de ces informations de haut niveau, Daniel.
    Y a t’il une différence entre un « bac à sable » et la virtualisation?

    1. Céline, il n’y a pas de différence, un implique l’autre !
      Oui un bac à sable est pour moi un conteneur virtuel.

      L’environnement bac à sable dans un ordi hôte est généralement utilisé par les développeurs dans un environnement de test. Les développeurs font ceci pour du développement de Teams ou Office 365 par exemple.

      Le principe du bac à sable est généralement d’isoler l’espace dans une partie de l’ordi et de tout effacer lorsque l’on a terminé. Tout comme on efface un tableau blanc dans une classe.

      Dans l’environnement traditionnel, après avoir ouvert et fermé par exemple plusieurs instances de Word traditionnel, il reste en mémoire ce que j’appelle des résidus poussiéreux en mémoire !!! Je crois qu’il faut un power off du PC pour repartir à zéro mémoire gaspillée en RAM du PC.

      Pour exploiter toutes nos applications quotidiennes en mode bac à sable, il nous faudrait de très grande ressources matérielles notamment en RAM et en temps et disponibilité de ressources de traitement CPU !.

    2. Bonjour Céline et Merci!
      Le bac à sable est une forme de virtualisation, elle existe sous forme de machine virtuelle qui permet l’essai de logiciel, mais dont tu as peu de contrôle sur sa création.

      L’autre forme est intégrée directement au système d’exploitation où chaque application est lancée dans un espace isolée sans que l’utilisateur le sache, protégeant ainsi l’ordinateur de toute forme d’attaque malveillante.

      Le champion toute catégorie de ce mode de fonctionnement est Qubes OS, basé sur Linux et recommandé par Edward Snowden : https://www.qubes-os.org/

    3. Bonjour Céline et Merci du commentaire.

      Concernant ta question, je vois que Robert a répondu. À celle-ci j’apporterais la nuance qu’il existe des systèmes d’exploitation qui fonctionnent nativement en format bac à sable où chaque application lancée est isolée du reste. cela ne nécessite pas autant de mémoire qu’on pourrait le croire.

      Le champion toute catégorie de ce mode de fonctionnement est Qubes OS, basé sur Linux, il est également recommandé par Edward Snowden: https://www.qubes-os.org

      1. Wow ! Super extra ! QUBES, tout un monde numérique en développement, tout un projet international. Un vrai carré de sable pour techie nerd geek ! Des souvenirs me ramène au Technical University of Berlin !
        Moi mes souliers ont beaucoup voyagé….

  3. L’article est excellent. Bravo! La seule chose que j’aurais ajouté est que dans le cas de machine virtuelle, lorsque cette machine tourne, elle isole la mémoire qu’on lui a assigné. C’est pourquoi les ressources en mémoire vive sont très importantes.

    1. Bonjour Réjean et merci du commentaire.

      En fait, c’est plus complexe que cela, la mémoire est davantage partagée et gérée selon le besoin même si la virtualisation affiche 8 gigaoctets de mémoire. C’est ainsi qu’il est possible de faire tourner plusieurs virtualisations. L’exemple donnée des serveurs en est une bonne illustration.

  4. Bravo pour cet article qui fait un excellent survol de l’aspect virtualisation plus globalement.

    Autant je me réfère à mes expériences valables et connaissances du passé, autant je suis méfiant de l’utilisation de la virtualité dans les techniques que dans le langage.

    Dès les années 70 IBM introduisait la mémoire virtuelle dans les grands systèmes informatiques notamment la série IBM 370 OS VM qui suivait la série IBM 360. Et la virtualisation est toujours appliquée dans les PC modernes, car il semble que la mémoire utile se remplit si vite qu’il faille emprunter de la mémoire sur les disques durs (SSD ou non-SSD). Sur mon dernier Lenovo avec ses 16 GO dès que je monte quelques applications comme Acrobat 2020 et MS Office 2021 et que le système d’exploitation Windows 11 réserve sa mémoire pour bien assurer l’état de veille, il ne reste pas beaucoup de libre dans ces 16 GO et avec quelques autres ajouts d’applications additionnelles en parallèle il faudrait commencer à emprunter de la mémoire virtuelle sur les disques durs !!! Les systèmes d’exploitation et les programmes ont une faim insatiable !

    Pour performer, je devrai bientôt augmenter à 32 GO de mémoire RAM. Imaginez en plus si je désire faire de l’émulation ou de la virtualisation de systèmes d’exploitation additionnelle sur ce même PC ! Boy ! Ceci fonctionne, mais pas la performance !

    J’ai souvent dans le passé tenté de rouler du MAC OC sur un PC ou bien un Windows sur un MAC ! Même si le tout fonctionnait, le résultat opérationnel était mitigé en performance. Je manquais toujours de ressources matérielles (temps de processeur ou mémoire RAM) pour obtenir un résultat satisfaisant.

    La technique de partir un système d’exploitation différent à la fois ne fut jamais une solution pratique pour moi ! Donc, j’ai toujours préféré avoir les deux machines côte à côte, un MAC et un PC !

    J’utilise un programme PC Lauyan ToWeb pour fabriquer mes sites web. Il me donne un aperçu local de ce que mon résultat est sur un PC, un MAC, un iPad, un smartphone et un iPhone ! Mais il n’y a rien comme le VRAI pour tester la réalité. Je me suis doté d’appareils Apple et Samsung pour voir la VRAIE RÉALITÉ avant mes premiers visiteurs !

    Le sujet des CONTENEURS est aussi à la toute dernière mode informatique. Il y a une variété de conteneurs : le coffre-fort de mots de passe, le conteneur d’applications, le conteneur de cryptomonnaie, etc. Tous des sujets que je peine à harnacher !

    Alons plus plus loin et imaginons un robot d’intelligence artificielle provenant de la virtualité info-nuagique qui nous offre soit ses services ou qui désire prendre le contrôle. Un beau film à réaliser !

    Là ou je ne marche plus du tout, c’est quand je vois la tendance des experts vendeurs a vendre des NUAGES et du VIRTUEL (ici aucune flèche n’est décrochée pour notre ami Daniel qui fait un excellent travail en expliquant les nombreux concepts).

    Le grands exploitants de ce monde (Apple, Google, Amazon et les grands centres serveurs) semblent nous dire qu’ils ont un capacité infinie et une sécurité infinie comme solution magique. La mode est à la virtualisation pas juste pour les gamers !

    Je conserve un seul proverbe anglais : keep your hope down !

    Malgré mon long commentaire dans le présent blogue, j’ai bien apprécié comme expert le survol de Daniel sur des sujets ni simple, ni facile !

    1. Bonjour Robert,

      Merci de ce complément d’information. Effectivement, tu me rappels que nous utilisions déjà des lecteurs virtuels et de la mémoire virtuelle en DOS, à l’époque, cela ne nous rajeunit pas!

      Linux a même un dossier dédié à la mémoire virtuelle nommée SWAP et trouver l’équilibre dans un environnement de serveurs d’entreprise est un jeu d’équilibriste , expérience à l’appui.

      Tout comme toi, je garde un oeil très critique sur l’infonuagique d’autant plus que les GAFAM (Google, Apple, Facebook, Amazon, Microsoft) possèdent l’ensemble de nos données. Si on regarde du côté Microsoft, celui-ci s’est approprié les informations gouvernementales des pays occidentaux, ce qui représente une mine d’informations à qui veut bien connaître l’état de santé d’un pays. Le Québec n’étant pas exclu, c’est Microsoft qui possèdera la très grande majorité des données gouvernementales québécoise.

      Merci de ton appréciation. Effectivement, il y a tant à dire sur la virtualisation. L’idée est de garder les choses le plus simple possible pour tous.

  5. Intéressant et bien vulgarisé. Bravo Daniel! Pas encore clair clair dans ma tête … Sûrement un bon sujet potentiel de présentation l’an prochain, dans la série Découverte.

    1. Bonjour Pierre et Merci de ton commentaire.

      Effectivement, il faudrait que je vois cela, ça pourrait être intéressant comme découverte. Je pense que Michel à déjà une idée….. Je blague 😉

      Merci

Les commentaires sont fermés.