Après plus de 6 mois de développement, une nouvelle version de Qemu est sortie fin avril. Qemu est un émulateur fonctionnant dans deux modes différents. Le premier mode permet d'émuler une architecture matérielle complète : le processeur ainsi que les périphériques matériels comme les disques, les cartes réseau, les ports séries, etc. Ce mode permet d'exécuter un système d'exploitation complet, et se rapproche de ce que permet l'émulateur Bochs. Le second mode, fonctionnant sous GNU/Linux uniquement permet d'exécuter des binaires prévus pour une architecture donnée sur une autre architecture : l'émulation n'a lieu que pour un processus particulier.
Le premier mode permettant d'exécuter un système d'exploitation complet, il est parfait pour tester de nouveaux systèmes, réaliser le débogage de modules noyau ou simuler des réseaux composés de machines virtuelles. Le second mode permet par exemple aux possesseurs d'architectures non-x86 d'exécuter des applications propriétaires compilés pour x86 lorsque cela est nécessaire.
Qemu étant indépendant du processeur émulé, il supporte l'émulation de différentes plateformes. L'émulation des processeurs x86 et PPC est complète, et l'émulation des processeurs x86_64, ARM ou SPARC sont à des états
plus ou moins avancés. D'autre part, Qemu utilise une technique de traduction dynamique, qui consiste à transformer le code binaire de l'architecture cible en code binaire pour l'architecture hôte. Cette traduction étant effectuée une fois pour toutes pour chaque partie de code, la vitesse d'émulation est grandement améliorée par rapport à un émulateur classique comme Bochs.
Par ailleurs, la version 0.7.0 permet d'utiliser un module noyau,
kqemu qui permet d'
accélérer encore plus l'émulation, en permettant l'exécution de parties du code directement sur le processeur. Ce module ne fonctionne que si l'on émule un PC sur un PC et est livré sous licence propriétaire. Son auteur, Fabrice Bellard, qui est aussi le développeur principal de Qemu, recherche en effet un sponsor pour le développement de Qemu et
kqemu. L'utilisation de cette licence propriétaire a
provoqué de vives discussions sur la liste, certains défendant le bien-fondé de la démarche du développeur, d'autres la rejetant. Parallèlement, Paul Brooks a créé un projet expérimental pour développer un module aux fonctionnalités similaires à
kqemu, mais distribué sous licence GPL:
qvm86.
En dehors de ce support de
kqemu, la version 0.7.0 apporte quelques nouveautés ou améliorations comme le support initial de l'architecture x86_64, une amélioration du support SPARC qui permet maintenant de démarrer Linux, le support de l'émulation du port parallèle, des instructions MMX, SSE, SSE2 et PNI, l'amélioration du support ARM, et l'intégration d'un code émulant une unité de calcul en virgule flottante.