Paravirtualisation

Paravirtualisation

En informatique, la paravirtualisation est une technique de virtualisation qui présente une interface logicielle similaire à du matériel réel à une machine virtuelle mais optimisée pour ce type de fonctionnement, contrairement à l'émulation d'un périphérique matériel existant qui peut s'avérer laborieuse et surtout lente.

La paravirtualisation permet aux moniteurs de machines virtuelles (MMV) d'être plus simples et aux machines virtuelles fonctionnant dessus d'atteindre un niveau de performance proche du matériel réel. Cependant, les systèmes d'exploitations doivent explicitement être portés afin de fonctionner sur des MMV paravirtualisées. Le portage des systèmes d'exploitation libres est généralement effectué, seulement il appartient aux fournisseurs de systèmes fermés de réaliser le portage eux-mêmes, ce qu'ils peuvent refuser de faire pour des raisons stratégiques.

Histoire

Le mot « paravirtualisation » est un mot nouveau pour une idée ancienne. Le système d'exploitation d'IBM appelé VM/370 offrait déjà de telles fonctionnalités en 1972[1]. Dans le monde des machines virtuelles, on y fait référence par l'appellation « code de diagnostic », car il utilise des instructions habituellement utilisées par les logiciels de maintenance du matériel. Le Conversational Monitor System d'IBM utilise des codes de diagnostic pour faire appel aux services de la machine virtuelle.

Dans système d'exploitation Parallels Workstation, on appelle cela un « hypercall » ou hyper-appel. Contrairement à un appel système qui est traité par le noyau d'un système d'exploitation, l'hyper-appel traverse le noyau et remonte jusqu'à l'hyperviseur où il est traité. Puisque ces appels traversent le noyau du système d'exploitation invité, il faut que celui-ci le supporte explicitement afin de le faire remonter jusqu'à l'hyperviseur.

Le terme « paravirtualisation » a été utilisé pour la première fois dans la littérature scientifique en association avec le moniteur de machines virtuelles Denali[2]. Le terme décrit aussi la machine virtuelle Xen, la famille des micronoyaux L4 et l'hyperviseur temps réel embarqué TRANGO. Tous ces projets utilisent des techniques de paravirtualisation afin de parvenir à de la virtualisation à haute performance sur du matériel de type x86 en mettant en place des machines virtuelles qui n'utilisent pas les parties complexes à virtualiser du jeu d'instruction x86.

Suite à la prolifération de solutions de paravirtualisation sous Linux, chacune proposant une adaptation différente du noyau Linux, une solution commune est en cours de développement dans le noyau officiel[3] : virtio. Elle voit ses débuts dans la version 2.6.24 et de nombreuses améliorations sont en cours dans la branche 2.6.25. Cette interface est déjà utilisée par certains hyperviseurs, comme KVM.

La paravirtualisation est aussi utilisée sur du matériel non x86 comme sur les plateformes ARM ou PowerPC.

Comme exemple d'utilisation de la paravirtualisation on peut prendre les cartes réseaux que présentent certaines machines virtuelles aux systèmes d'exploitation invités. Plutôt que de s'acquitter de la lourde tâche de reproduire le fonctionnement de la carte réseau classique, le MMV présente une carte très simple qui permet l'envoi direct des paquets par accès direct à la mémoire, même si la carte du système réel ne supporte pas cette fonctionnalité.

Références

  1. (en) VM History and Heritage, IBM, 2007-10-10
  2. A. Whitaker, M. Shaw, and S. D. Gribble, « Denali: Lightweight Virtual Machines for Distributed and Networked Applications », Univ. of Washington Technical Report 02-02-01, (2002). (Disponible sur Denali publications, technical reports, and talks)
  3. « Une interface de programmation pour les entrées / sorties virtuelles » : virtio

Liens internes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Paravirtualisation de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Virtual machine — A virtual machine (VM) is a completely isolated guest operating system installation within a normal host operating system .[1] Modern virtual machines are implemented with either software emulation or hardware virtualization or (in the most… …   Wikipedia

  • Xen — This article is about the virtualization software. For other uses, see Xen (disambiguation). Xen Xen running NetBSD and three Linux distributions Developer(s) The Xen Project XenSource, Inc …   Wikipedia

  • Virtual Machine Interface — [ [http://vmi.ncsa.uiuc.edu/ Official web site] ] ( VMI ) may refer to a communication protocol for running parallel programs on a distributed memory system.Virtual Machine Interface [ [http://www.vmware.com/interfaces/paravirtualization.html… …   Wikipedia

  • PikeOS — Infobox OS name = PikeOS caption = developer = [http://www.sysgo.com SYSGO AG] source model = kernel type = Microkernel supported platforms = ui = family = Real time operating systems released = latest release version = latest release date =… …   Wikipedia

  • Dom0 — Xen Pour les articles homonymes, voir Xen (Half Life). Xen …   Wikipédia en Français

  • DomU — Xen Pour les articles homonymes, voir Xen (Half Life). Xen …   Wikipédia en Français

  • Freax — Noyau Linux Pour les articles homonymes, voir Noyau et Linux (homonymie). Linux …   Wikipédia en Français

  • Hyperviseur — En informatique, un hyperviseur est une plate forme de virtualisation qui permet à plusieurs systèmes d exploitation de travailler sur une machine physique en même temps. Sommaire 1 Types d hyperviseurs 1.1 Type 1 : natif 1.2 Type 2 …   Wikipédia en Français

  • Kernel-Based Virtual Machine — KVM (Kernel based Virtual Machine) est une machine virtuelle libre pour Linux. Elle fonctionne[1] sur les architectures x86 disposant des technologies Intel VT (voir vanderpool) ou AMD SVM (AMD V). Le module est intégré dans le noyau Linux depuis …   Wikipédia en Français

  • Kernel-based Virtual Machine — Pour les articles homonymes, voir KVM. Kernel based Virtual Machine …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”