Quelle est la différence entre la virtualisation complète, assistée et matérielle?

Je passe en revue le sujet de la virtualisation, il semble un peu idiot de poser cette question mais je suis totalement aspiré à comprendre le concept de base, Wikipedia fournit des informations pertinentes, mais ce n’est pas suffisant pour comprendre le concept de base. Le concept sera de 2 à 3 lignes, mais je ne suis pas en mesure de les trouver sur le net, ni sur le livre.

Je serai heureux si quelqu’un me donne le concept de base de ces trois types. Je connais bien la virtualisation et la comprend bien, mais ces 3 types …

  • La paravirtualisation est une virtualisation dans laquelle le système d’exploitation invité (celui en cours de virtualisation) est conscient qu’il s’agit d’un invité et qu’il possède donc des pilotes qui, au lieu d’émettre des commandes matérielles, émettent des commandes directement sur le système d’exploitation hôte. Cela inclut également la gestion de la mémoire et des threads, qui nécessitent généralement des instructions privilégiées indisponibles dans le processeur.

  • La virtualisation complète est une virtualisation dans laquelle le système d’exploitation invité ignore qu’il se trouve dans un environnement virtualisé. Par conséquent, le système d’exploitation virtualise le matériel afin que l’invité puisse émettre des commandes périphériques matériels créés par l’hôte.

  • La virtualisation assistée par matériel est un type de virtualisation complète dans lequel l’architecture du microprocesseur contient des instructions spéciales pour faciliter la virtualisation du matériel. Ces instructions peuvent permettre à un contexte virtuel d’être configuré pour que l’invité puisse exécuter des instructions privilégiées directement sur le processeur sans affecter l’hôte. Un tel ensemble de fonctionnalités est souvent appelé un hyperviseur . Si ces instructions n’existent pas, la virtualisation complète est toujours possible, mais cela doit se faire via des techniques logicielles telles que Dynamic Recompilation où l’hôte recomstack à la volée des instructions privilégiées dans l’invité pour pouvoir s’exécuter de manière non privilégiée sur le hôte.

  • Il existe également une combinaison de virtualisation et de virtualisation complètes appelée virtualisation hybride, où certaines parties du système d’exploitation invité utilisent la paravirtualisation pour certains pilotes matériels, et l’hôte utilise la virtualisation complète pour d’autres fonctionnalités. Cela produit souvent des performances supérieures sur l’invité sans qu’il soit nécessaire que l’invité soit complètement paravirtualisé. Un exemple de ceci: l’invité utilise la virtualisation complète pour les instructions privilégiées dans le kernel, mais la paravirtualisation pour les demandes d’E / S utilisant un pilote spécial dans l’invité. De cette façon, le système d’exploitation invité n’a pas besoin d’être complètement paravirtualisé, car il n’est pas toujours disponible, mais peut néanmoins profiter de certaines fonctionnalités paravirtualisées en implémentant des pilotes spéciaux pour l’invité.

Dans le cas de la virtualisation assistée par matériel, la virtualisation est conçue. Le jeu d’instructions fournit des instructions pour partitionner l’hôte. Voir la technologie VT-x d’Intel à titre d’exemple. Pour que l’hyperviseur fonctionne directement avec le matériel sans utiliser aucun système d’exploitation pour y accéder et fournir une virtualisation complète