QEMU

QEMU
Description de l'image Qemu logo.svg.
Description de cette image, également commentée ci-après
QEMU faisant tourner Knoppix (sur Mandriva Linux)
Informations
Développé par Fabrice Bellard
Dernière version 11.1.2 ()Voir et modifier les données sur Wikidata
Dépôt gitlab.com/qemu-project/qemuVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Interface GTK et Simple DirectMedia LayerVoir et modifier les données sur Wikidata
Système d'exploitation GNU/Linux, BSD, Microsoft Windows et macOSVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Formats lus Qcow, Virtual Machine Disk, qcow2 (d), IMG, Copy On Write disk image (d), Linux Unified Key Setup (d) et Image Disque VirtualBox (d)Voir et modifier les données sur Wikidata
Formats écrits Qcow et qcow2 (d)Voir et modifier les données sur Wikidata
Type Virtualization software (d)
Hyperviseur
ÉmulateurVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 2Voir et modifier les données sur Wikidata
Documentation qemu-project.gitlab.io/qemu/index.htmlVoir et modifier les données sur Wikidata
Site web www.qemu.orgVoir et modifier les données sur Wikidata

QEMU est un logiciel libre de machine virtuelle, pouvant émuler un processeur et, plus généralement, une architecture différente si besoin. Il permet d'exécuter un ou plusieurs systèmes d'exploitation via les hyperviseurs KVM et Xen, ou seulement des binaires, dans l'environnement d'un système d'exploitation déjà installé sur la machine.

Présentation

QEMU permet la virtualisation sans émulation, si le système invité utilise le même processeur que le système hôte, ou bien d'émuler les architectures des processeurs x86, ARM, AVR, ColdFire PowerPC, Sparc (32/64), MIPS, RISC-V, S/390, Xtensa

Sous Linux, il peut virtualiser, à l'aide de KVM, les environnements invités x86, ARM, PowerPC, MIPS (32 bits seulement), Sparc, ColdFire (motorola 68K) et quelques autres types de processeurs pour serveur, poste de travail ou embarqué, ainsi que S390.

QEMU fonctionne sur les plates-formes x86, x64, PPC, Sparc, MIPS, ARM. Il fonctionne sous les systèmes d'exploitation Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Unix et Microsoft Windows.

QEMU permet d'exécuter un ou plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique. Il permet de simuler les périphériques PCI, son, USB.

Les systèmes d'exploitation invités partagent ainsi les ressources de la machine physique de façon relativement invisible. Il n'y a donc, dans de nombreux cas, pas besoin d'adapter le système pour fonctionner sur QEMU.

KQEMU est un module pour le noyau Linux et pour FreeBSD qui permet d'accélérer l'émulation.

QEMU a été, à ses débuts, développé par Fabrice Bellard.

Architecture

Espace utilisateur
Linux
Pilotes
Espace utilisateur
Windows
Pilotes
Espace utilisateur
Linux
Pilotes
Espace utilisateur
Mac OS X
Pilotes
Espace utilisateur
Solaris
Pilotes
QEMU x86 QEMU x86 QEMU PPC QEMU PPC QEMU SPARC
Système hôte : Linux, Mac OS X, Windows
Matériel : processeur, mémoire, stockage, réseau, etc.

Matériel émulé

ARM

QEMU émule les systèmes ARM suivants :

x86

QEMU simule les systèmes x86 suivants :

PowerPC

QEMU simule les systèmes PowerPC suivants :

PREP

QEMU émule les périphériques PREP (en) suivants :

QEMU utilise le BIOS Open Hack'Ware Open Firmware Compatible

SPARC

QEMU simule les systèmes SPARC (sun4m) suivants :

RISC−V

QEMU simule les systèmes RISC-V suivants :

Modules d'accélération

Il existe à ce jour trois modules d'accélération pour le noyau Linux. Le système d'exploitation invité est autorisé à être exécuté directement sur le processeur hôte en utilisant ses mécanismes de protection pour intercepter et émuler les événements privilégiés.

Comparaison avec d'autres solutions de virtualisation

QEMU est une solution d'émulation complète dite « hyperviseur de type 2 ». Le matériel vu par le système d'exploitation invité est émulé, et le processeur lui-même peut être émulé.

Cette technique de virtualisation a l'avantage de bien isoler les systèmes d'exploitation invités et permet de faire tourner des systèmes d'exploitation non modifiés, au prix d'une forte dégradation de la performance.

QEMU se compare à d'autres hyperviseurs de type 2, comme VMware Workstation, Bochs, VirtualPC ou VirtualBox.

Ce qui différencie QEMU de ses concurrents est qu'il est libre et universel : il tourne sur et héberge tous les principaux systèmes d'exploitation, sur architecture x86, PPC ou Sparc.

Il est à la fois possible d'utiliser des commandes d'un système d'ISA différente, au sein d'un environnement d'ISA identique, plutôt que d'avoir à émuler l'ensemble du système, grâce à qemu-*arch*-static, ou bien d'émuler l'ensemble d'un système, à l'aide de qemu-system-*arch*

Toutefois, QEMU, lorsqu'une architecture différente est présente entre l'hôte et l'invité, émule en permanence le processeur et cela peut réduire la performance d'un facteur cinq à dix. Pour pouvoir obtenir des performances plus comparables à un système non virtualisé ou à VMware (réduction de performance d'un facteur 1 à 2 seulement), il faut utiliser un module d'accélération, ce qui nécessite un système Linux sur architecture x86 ou x86_64. Des versions préliminaires pour Windows ou FreeBSD sont disponibles[réf. souhaitée].

L'article « virtualisation » présente une comparaison détaillée des différentes techniques de virtualisation.

Notes et références

  1. ↑ « [ANNOUNCE] QEMU 11.1.2 Stable released », (consulté le )
  2. 1 2 3 (en) « QEMU System Emulation User’s Guide », qemu (consulté le )
  3. ↑ (en) ChangeLog/1.6 sur le wiki de qemu.org
  4. ↑ Taper « qemu-system-arm -device help » pour la liste
  5. 1 2 3 4 (en) « ChangeLog/8.1 — RISC-V »,
  6. ↑ Pierre Palatin, « kqemu devient libre, qemu 0.9.0 », Linuxfr,
  7. ↑ Brice Maron, « Qemu 0.12.1 mais sans kqemu », Linuxfr,
  8. ↑ Paul Brook, « qvm86 is obsolete »,

Voir aussi

Articles connexes

Liens externes

Sur les autres projets Wikimedia :