Virtualisation complète avec kqemu

Posté par  (site web personnel) . Modéré par Jaimé Ragnagna.
0
31
mar.
2006
Noyau
Fabrice Bellard a encore frappé, lundi 27 mars est sortie une nouvelle version de kqemu, le module noyau d'accélération de qemu.

Passant directement de la version 0.7.2 à la version 1.3.0pre5, alors que la version officielle de qemu est la 0.8.0, ce module nous propose rien que moins que la virtualisation complète d'un OS (système d'exploitation).

Petit rappel : qemu est un émulateur qui fonctionne sous deux modes : émulation d'un système complet ou émulation sous Linux d'un programme conçu pour un autre CPU (par exemple, cela permet de faire tourner wine sous PowerPC sans avoir à installer une machine virtuelle).

La nouvelle version du module d'extension non libre kqemu nous propose deux modes :
- le mode normal où les applications utilisateurs sont transmises telles quelles au CPU d'où un gain très appréciable de temps, le noyau de l'OS virtuel étant émulé dans la machine qemu
- le nouveau mode de virtualisation complète (full virtualization mode). Dans ce mode, les applications utilisateurs mais aussi l'OS de la machine virtuelle sont directement exécutés par le CPU !

Les gains de temps à espérer de ce dernier mode vont faire du couple qemu+kqemu un outil indispensable (s'il ne l'était déjà). D'après Fabrice Bellard, cette virtualisation ne fait courir aucun risque à la machine hôte. Cependant, tous les OS ne peuvent pas forcément fonctionner sous ce mode. Linux, Windows 2000 et XP ont déjà été validés.

Avec qemu au coté de Xen, la virtualisation des systèmes d'exploitation devient chaque jour une réalité à la portée de tous.

NdM : Qemu est libre et sous licence GPL, mais le module d'accélération est propriétaire, voir license.html.

Qemu 0.8.0 est sorti !

Posté par  (site web personnel) . Modéré par Pascal Terjan.
Étiquettes :
0
21
déc.
2005
Noyau
Une nouvelle version du célèbre émulateur Qemu, la 0.8.0, est sortie aujourd'hui 20 décembre. Cette nouvelle version apporte plusieurs améliorations depuis la version 0.7.2, avec en particulier le support de l'émulation système pour l'architecture ARM, le support de l'émulation multi-processeur (SMP), des nouveaux pilotes sons (ALSA et DirectSound), un début de support du bus USB, l'émulation de la carte son PCI ES1370, l'émulation "utilisateur" des architectures MIPS et MIPSel et des améliorations pour l'émulation système de l'architecture MIPS permettant de démarrer le noyau Linux. Qemu permet également maintenant d'utiliser les ports séries et ports parallèles de l'hôte depuis une machine virtuelle (sous Linux uniquement). Les échanges sont toujours très intenses sur la liste de développement, ce qui promet à l'avenir de nouvelles améliorations.

Dans une précédente dépêche, nous rappelions que Qemu utilise une technique de traduction dynamique de code, ce qui lui permet d'offrir une vitesse d'émulation très supérieure à celle que Bochs peut proposer. L'utilisation des accélérateurs Kqemu (non-libre) ou Qvm86 (libre) permettant d'améliorer encore la vitesse d'émulation lorsque l'architecture hôte est identique à l'architecture émulée.

Sortie de l'émulateur Qemu 0.7.0

Posté par  (site web personnel) . Modéré par Nÿco.
0
31
mai
2005
Noyau
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.