- QEMU
-
QEMU QEMU faisant tourner Knoppix (sur Mandriva Linux)Développeur Fabrice Bellard Dernière version 0.15.1 (12 octobre 2011) [+/-] Version avancée [+/-] Environnement Multiplate-forme Licence GNU GPL Site web qemu.org modifier QEMU est une machine virtuelle (ou émulateur de système) libre qui permet d'exécuter un ou plusieurs systèmes d'exploitation, ou seulement des processus, sur un système d'exploitation déjà installé sur la machine.
Sommaire
Présentation
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. QEMU fonctionne sur les plateformes x86, x64, PPC, Sparc et ARM et fonctionne sous les systèmes d'exploitation Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Unix et Microsoft Windows.
Les systèmes d'exploitation invités partagent ainsi les ressources de la machine physique et n'ont pas « conscience » d'être virtualisés. Ils n'ont donc pas besoin d'être adaptés 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é originellement 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é
QEMU simule le système x86 suivant :
- i440FX host PCI bridge et PIIX3 PCI to ISA bridge
- Cirrus CLGD 5446 PCI VGA card ou une simple carte VGA avec les extensions VESA de Bochs VESA
- Clavier et souris PS/2
- 2 interfaces IDE PCI avec support des disques durs et CD-ROM
- Lecteur de disquette
- Carte réseau NE2000 PCI
- Ports série
- Carte son Soundblaster 16
- BIOS du projet Bochs et le BIOS VGA des projets Plex86/Bochs
QEMU simule le système PPC suivant :
- UniNorth PCI Bridge
- Carte compatible PCI VGA avec extensions Bochs VESA
- 2 interfaces PMAC IDE avec support des disques durs et CD-ROM
- Carte réseau NE2000 PCI
- Non Volatile RAM
- VIA-CUDA avec clavier et souris ADB
QEMU émule les périphériques PREP suivants :
- PCI Bridge
- Carte compatible PCI VGA avec extensions Bochs VESA
- 2 interfaces IDE avec support des disques durs et CD-ROM
- Lecteur de disquette
- Carte réseau NE2000 PCI
- Ports série
- PREP Non Volatile RAM
- Clavier et souris compatible PC
QEMU utilise le BIOS Open Hack'Ware Open Firmware Compatible
QEMU simule le système SPARC (sun4m) suivant :
- IOMMU
- TCX Frame buffer
- Lance (Am7990) Ethernet
- Non Volatile RAM M48T08
- Slave I/O: timers, interrupt controllers, Zilog serial ports
- QEMU uses the Proll, a PROM replacement
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.
- KQEMU est un module noyau Linux 2.4 et 2.6 pour invités x86 sur hôte x86, ou invité x86_64 sur hôte x86_64. Fabrice Bellard, l'auteur de QEMU, avait initialement développé KQEMU sous licence propriétaire, puis libéré le 6 février 2007[1]. Malheureusement, ce module n'a pas trouvé de mainteneur après sa libération, et il a donc été supprimé du code source de QEMU le 8 janvier 2010[2]
- qvm86 est un module noyau Linux sur hôte x86 sous licence GPL. Paul Brook en est le développeur principal, mais il a annoncé l'abandon du projet le 27 janvier 2007[3].
- En plus d'offrir une accélération substantielle à QEMU, le module KVM est une solution de virtualisation complète pour les systèmes à base de processeur x86 supportant les extensions de virtualisation (Intel VT et AMD Pacifica). Jusqu'en mars 2009, le module KVM nécessitait une version modifiée de QEMU. Depuis lors (version 0.10) les modifications sont directement intégrées dans la version officielle de QEMU.
Comparaison avec d'autres solutions de virtualisation
QEMU est une solution d'émulation complète dite « machine virtuelle ». 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ème d'exploitation invités et elle permet également 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 machines virtuelles comme VMware, 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.
Toutefois, QEMU é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 avec un noyau 2.4.x ou 2.6.x. Des versions préliminaires pour Windows ou FreeBSD sont disponibles.
L'article « virtualisation » présente une comparaison détaillée des différentes techniques de virtualisation.
Notes et références
- kqemu devient libre, qemu 0.9.0 », Linuxfr, 6 février 2007 Pierre Palatin, «
- Qemu 0.12.1 mais sans kqemu », Linuxfr, 8 janvier 2010 Brice Maron, «
- qvm86 is obsolete », 21 janvier 2007 Paul Brook, «
Voir aussi
Articles connexes
Liens externes
Catégories :- Émulateur
- Logiciel libre sous licence GPL
- Virtualisation
- Logiciel pour Linux
- Logiciel pour Unix
- Logiciel pour Windows
Wikimedia Foundation. 2010.