Kernel-Based Virtual Machine

Kernel-Based Virtual Machine

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 la version 2.6.20[2].

Sommaire

Fonctionnement

KVM est en fait un fork de QEMU, mais les développeurs des deux projets essayent de ne pas trop diverger et le code source des deux projets est fréquemment resynchronisé[3]. La principale modification apportée est le support du module kvm. Lorsqu'on parle de KVM, on parle généralement de l'ensemble : la version modifiée de QEMU et le module kvm.

QEMU est déjà capable, grâce à son module KQEMU ("K" pour 'Kernel', noyau en anglais), d'exécuter du code machine directement sur le processeur hôte[4] afin d'accélérer l'émulation. Mais cette technologie, bien qu'apportant un gain de performance important, n'est pas parfaite, car des mécanismes de protection pour intercepter et émuler les évènements privilégiés doivent être mis en place ; or le code noyau du système invité, fonctionnant normalement entièrement en mode privilégié et étant émulé de manière classique, est donc fortement pénalisé alors qu'il s'agit de l'élément crucial du système.

Les processeurs de la famille x86 disposent de 4 niveaux de privilège d'exécution, appelés anneaux de protection. En plus de ces Anneaux, les processeurs récents intègrent un nouveau mécanisme d'isolation qui permet à un système invité d'être exécuté directement sur le processeur quels que soient les Anneaux de protection qu'il requiert pour fonctionner, tout en assurant la protection contre la lecture et l'écriture dans la mémoire n'appartenant pas à la machine virtuelle. Cela est principalement possible grâce à une MMU dédiée à chaque machine virtuelle sur le processeur et à une redirection des interruptions matérielles vers l'hyperviseur de machines virtuelles (KVM en l'occurrence) afin d'émuler le matériel dont a besoin le système invité.

Les technologies mises en place par les deux principaux fondeurs que sont AMD et Intel étant différentes, le module kvm se décline en deux sous-modules : kvm-intel et kvm-amd ; le module kvm n'étant là en fait que pour fournir à l'émulateur une abstraction supplémentaire.

Dans les versions récentes de kvm (au minimum la version 60[5]) il est possible d'utiliser un mécanisme de paravirtualisation appelé virtio, supporté pour les systèmes invités Linux d'une version 2.6.25 au minimum. Ce mécanisme permet une vitesse d'exécution accrue car il n'est plus nécessaire d'émuler des périphériques matériels. Cependant, ce système sort du cadre de la virtualisation au sens strict car il faut que le système invité soit informé qu'il fonctionne en tant que une machine virtuelle et qu'il supporte virtio.

Voir aussi

Article connexe

Liens externes

Notes et références

  1. Status sur le wiki de KVM
  2. Linux 2 6 20 sur KernelNewbies
  3. Voir cette page sur le blog d'Avi Kivity
  4. Si l'architecture du système hôte et invité sont de type x86 32 ou 64 bits
  5. Voir cette page sur le site de KVM


  • Portail de la sécurité informatique Portail de la sécurité informatique
  • Portail GNU/Linux Portail GNU/Linux
  • Portail des logiciels libres Portail des logiciels libres
Ce document provient de « Kernel-based Virtual Machine ».

Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Kernel-based Virtual Machine — KVM ejecutando Opensolaris, NetBSD y Kubuntu en Arch Linux. ? …   Wikipedia Español

  • 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 — Infobox Software name = Kernel based Virtual Machine logo = caption = Screenshot of the Windows XP boot up process in a qemu/kvm window in Fedora 7. developer = latest release version = 75 latest release date = release date|2008|09|10 operating… …   Wikipedia

  • Kernel-based Virtual Machine — Запрос «KVM» перенаправляется сюда; см. также другие значения. Kernel based Virtual Machine Тип виртуализация Разработчик Red Hat Написана на Си Операционная система Linux Последняя версия 8 …   Википедия

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

  • Kernel-based Virtual Machine — Die Kernel based Virtual Machine (KVM) ist eine Linux Kernel Infrastruktur für Virtualisierung und läuft auf x86 Hardware mit den Hardware Virtualisierungstechniken von Intel (VT) oder AMD (AMD V) und auf der System z Architektur. KVM wurde im… …   Deutsch Wikipedia

  • Kernel based Virtual Machine — Die Kernel based Virtual Machine (KVM) ist eine Linux Kernel Infrastruktur für Virtualisierung und läuft auf x86 Hardware mit den Hardware Virtualisierungstechniken von Intel (VT) oder AMD (AMD V). KVM wurde im Oktober 2006 veröffentlicht und ist …   Deutsch Wikipedia

  • 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

  • Virtual PC — Entwickler: Microsoft Aktuelle Version: VPC 2007 Service Pack 1 (Win) / VPC 7.03 (Mac) (16. Mai 2008 (Win) 14. August 2007 (Mac)) Betriebssystem: Microsoft Win …   Deutsch Wikipedia

  • Virtual PC Express — Virtual PC Entwickler: Microsoft Aktuelle Version: VPC 2007 Service Pack 1 (Win) / VPC 7.03 (Mac) (16. Mai 2008 (Win) 14. August 2007 (Mac)) Betriebssystem: Microsoft Win …   Deutsch Wikipedia

Share the article and excerpts

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