# VirtualPC

VirtualPC est un logiciel propriétaire gratuit d'émulation et de virtualisation développé par Microsoft. Il permet d'émuler un système d'exploitation sur une architecture matérielle différente de celle à laquelle il était initialement destiné. Il permet également de faire fonctionner en même temps plusieurs systèmes d'exploitation différents sur une même machine physique.
En août 2006, Microsoft a annoncé que la version Macintosh ne serait pas portée sur les Macintoshs utilisant les processeurs Intel, la version Macintosh n'est donc effectivement plus maintenue, étant donné que les Macintoshs utilisant des PowerPC ne sont plus fabriqués.
Virtual PC émule un PC standard et ses périphériques associés. Ainsi, il peut être utilisé pour héberger à peu près tous les systèmes d'exploitation disponibles pour PC. Cependant, des soucis peuvent survenir lors d'installations de systèmes peu courants qui n'ont pas été étudiés spécifiquement au moment du développement de Virtual PC.
VirtualPC fut créé par Connectix pour Mac OS, puis racheté et édité par Microsoft en octobre 2003.

## L'environnement émulé

Virtual PC émule un processeur 32-bit Intel Pentium II (mais il virtualise le même processeur hôte sur les versions Windows) avec le composant Intel 440BX, une carte graphique de type SVGA VESA S3 Trio 64 PCI avec 4 MB de mémoire vidéo (réglable dans les versions suivantes jusqu'à 16 MB), un BIOS d'American Megatrends (AMI), une carte son émulée Creative Labs Sound Blaster 16 ISA PnP (ou carte audio native sous Vista audio quand Vista est utilisé en tant que hôte et machine hébergée), et une carte ethernet DEC 21041 (DEC 21140 dans les nouvelles versions).
Il n'est pas garanti que tous les logiciels fonctionneront parce qu'ils peuvent utiliser des fonctionnalités non documentées de certains matériels, des fréquences particulières, ou des codes d'opérations particuliers, bien que la compatibilité globale puisse être considérée comme satisfaisante.
* La version Macintosh de Virtual PC utilise la recompilation dynamique pour traduire le code x86 utilisé par un PC standard dans le code équivalent PowerPC utilisé sur un Mac.
* La version Windows de Virtual PC utilise aussi la recompilation dynamique, mais seulement pour traduire le code en mode noyau ou mode réel x86 en code x86 utilisateur, alors que le mode utilisateur originel et le code en mode virtuel 8086 fonctionneront de manière native.
Virtual PC utilise aussi des signaux d'appels du système hébergé (en particulier lorsque les extensions spécifiques sont installées) pour accélérer l'émulation et offrir des fonctions supplémentaires, telle que l'intégration avec l'environnement de l'hôte.
Le format VHD (Virtual Hard Disk) est le format de fichier utilisé par Virtual PC et Virtual Server, pour lequel Microsoft a rendu disponible toute la documentation par le document appelé "Microsoft Open Specification Promise".

## Les extensions (compléments) de machines virtuelles

Pour faciliter l'échange et le partage de fichiers, de dossiers et de données entre l'hôte et le système hébergé, Virtual PC supporte l'installation des Virtual Machine Additions. Ceux-ci sont installés dans le système hébergé et fournissent les fonctionnalités suivantes :
* de meilleures performances sur le système hébergé
* l'utilisation intégrée et améliorée de la souris
* des drivers vidéos optimisés
* la synchronisation horaire avec l'hôte
* Le partage du presse-papier
* des possibilités de "Copier&coller"

## Les systèmes hébergés supportés

Virtual PC supporte Windows 98 Second Edition, les versions Windows XP Professionnelles et "Tablet PC", Windows Server 2003 Standard Edition, Windows 2000 Professionnel et Serveur, Windows NT 4.0 Serveur et certaines versions de IBM OS/2 en machine hébergée avec un support complet grâce à des "Virtual Machine Additions" spécifiques. Le support de Windows Vista en tant qu'hôte et invité a été ajouté par Virtual PC 2007. MS-DOS et Windows 95 étaient supportés officiellement et intégrés aux Virtual Machine Additions dans Virtual PC 2004, cependant ils sont devenus officiellement non supportés dans Virtual PC 2007 par l'absence des Virtual Machine Additions correspondants. De manière identique, les systèmes Linux hébergés étaient officiellement non supportés dans Virtual PC 2004 et 2007 bien que le support des Virtual Machine Additions pour Linux était disponible dans la version Connectix de "Virtual PC" avant d'être acquis par Microsoft. Microsoft assure le support des "VM Additions" pour Linux uniquement dans leur produit Virtual Server. Les compléments VM pour OS/2 et Linux ont été développés par la société allemande « innotek » GmbH pour Connectix puis Microsoft.
Les systèmes d'accueil "Virtual PC 2007" peuvent fonctionner sur des versions x86 (32 bits) et x64 (64 bits) de "Windows XP" et "Windows Vista" bien que les systèmes hébergés 64-bit ne sont pas encore supportés. Virtual PC 2007 supprime le support de Windows 2000 comme plate-forme d'accueil, ainsi que le support pour Windows 95, la version initiale de Windows 98, Windows Me, workstation Windows NT 4.0 et MS-DOS 6.22 en systèmes hébergés.
Les systèmes d'exploitation qui ne sont pas officiellement supportés peuvent être installables. Cependant, ils peuvent fonctionner ou non, et les Virtual Machine Additions n'existeront pas.
| | Virtual PC 2004$^,$$^,$$^,$$^,$ | Virtual PC 2004$^,$$^,$$^,$$^,$ | Virtual PC 2004$^,$$^,$$^,$$^,$ | Virtual PC 2007$^,$$^,$ | Virtual PC 2007$^,$$^,$ | Virtual PC 2007$^,$$^,$ | Windows Virtual PC$^,$$^,$ | Windows Virtual PC$^,$$^,$ | Windows Virtual PC$^,$$^,$ |
| Système d'exploitation | Hôte | Hôte | Invité | Hôte | Hôte | Invité | Hôte | Hôte | Invité |
| Système d'exploitation | 32-bit | 64-bit | 32-bit | 32-bit | 64-bit | 32-bit | 32-bit | 64-bit | 32-bit |
| Windows 7 Édition Intégrale | Non | Non | Non | Non | Non | Non | Oui | Oui | Oui |
| Windows 7 Entreprise | Non | Non | Non | Non | Non | Non | Oui | Oui | Oui |
| Windows 7 Professionnel | Non | Non | Non | Non | Non | Non | Oui | Oui | Oui |
| Windows 7 Home Premium | Non | Non | Non | Non | Non | Non | Oui | Oui | Oui |
| Windows 7 Home Basic | Non | Non | Non | Non | Non | Non | Oui | Oui | Oui |
| Windows 7 Starter | Non | NC | Non | Non | NC | Non | Non | NC | Non |
| Windows Server 2008 Standard | Non | Non | Non | Non | Non | Oui | Non | Non | Non |
| Windows Vista Ultimate | Non | Non | Non | Oui | Oui | Oui | Non | Non | Oui |
| Windows Vista Enterprise | Non | Non | Non | Oui | Oui | Oui | Non | Non | Oui |
| Windows Vista Business | Non | Non | Non | Oui | Oui | Oui | Non | Non | Oui |
| Windows Vista Home Premium | Non | Non | Non | Oui | Oui | Oui | Non | Non | Non |
| Windows Vista Home Basic | Non | Non | Non | Oui | Oui | Oui | Non | Non | Non |
| Windows Vista Starter | Non | NC | Non | Non | NC | Oui | Non | NC | Non |
| Windows Server 2003 Standard | Oui | Non | Oui | Oui | Oui | Oui | Non | Non | Non |
| Windows XP Professionnel | Oui | Non | Oui | Oui | Oui | Oui | Non | Non | Oui |
| Windows XP Tablet PC Edition | Oui | NC | Oui | Oui | NC | Oui | Non | NC | Non |
| Windows XP Media Center Edition | Non | NC | Non | Non | NC | Non | Non | NC | Non |
| Windows XP Édition familiale | Non | NC | Oui | Oui | NC | Oui | Non | NC | Non |
| Windows XP Starter Edition | Non | NC | Oui | Non | NC | Oui | Non | NC | Non |
| Windows 2000 Server | Non | NC | Oui | Non | NC | Oui | Non | NC | Non |
| Windows 2000 Professionnel | Oui | NC | Oui | Non | NC | Oui | Non | NC | Non |
| Windows Me | Non | NC | Oui | Non | NC | Non | Non | NC | Non |
| Windows 98 SE | Non | NC | Oui | Non | NC | Oui | Non | NC | Non |
| Windows 98 (première édition) | Non | NC | Oui | Non | NC | Non | Non | NC | Non |
| Windows 95 | Non | NC | Oui | Non | NC | Non | Non | NC | Non |
| Windows NT 4.0 Workstation | Non | NC | Oui | Non | NC | Non | Non | NC | Non |
| Windows NT 3.51 Workstation | Non | NC | Non | Non | NC | Non | Non | NC | Non |
| Windows NT 3.1 | NT 3.5 | Non | NC | Non | Non | NC | Non | Non | NC | Non |
| IBM OS/2 | Non | NC | Oui | Non | NC | Oui | Non | NC | Non |
| | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit |
| Windows 3.1 | Non | Non | Non | Non | Non | Non | Non | Non | Non |
| Windows 3.0 | Non | Non | Non | Non | Non | Non | Non | Non | Non |
| MS-DOS 6.22 | Non | Non | Oui | Non | Non | Non | Non | Non | Non |
LÉGENDE :
| Support Virtual PC ||
| Oui | Supporté |
| Non | Non supporté |
| NC | Version non existante |

## L'émulation des environnements basés sur Linux

Bien qu'installer un environnement basé sur Linux soit possible, cela ne se fait pas sans peine. Pour certaines distributions Linux, le système Linux devra être installée en mode texte, car Microsoft Virtual PC n'émule les cartes graphiques qu'en couleurs 16 bits ou en 32 bits, mais pas en 24. Afin d'utiliser l'interface X Window, le système Linux devra être modifié dans le fichier de configuration "xorg.conf" pour utiliser le mode 16 bits et respecter cette contrainte.
Certains sites fournissent la liste des systèmes d'exploitation qui fonctionnent sur Virtual PC, y compris les distributions Linux. Ainsi, l'utilisateur peut éviter les problèmes lors de tests de systèmes non supportés sur Virtual PC.

## Virtual PC pour Mac OS

Microsoft a également développé une version de Virtual PC pour Mac OS X. Cette version ne fonctionne qu'avec des processeurs PowerPC. Microsoft a annoncé qu'il allait arrêter Virtual PC pour Mac lors de la WWDC d'août 2006 en raison du passage des ordinateurs Apple vers Intel.
Étant donné qu'il fonctionne avec un processeur RISC, Virtual PC est obligé d'émuler un processeur CISC utilisé par Intel (en fait un processeur Pentium II avec MMX) ce qui fait que la vitesse du processeur de la machine virtuelle est environ 4 fois plus faible que celle du processeur physique de la machine.
Pour faire fonctionner Virtual PC pour Mac, il faut :
* Un processeur G3, G4 ou G5 à au moins 700 MHz
* 512 Mo de RAM
* Un lecteur de CD-Rom
* Mac OS 10.2.8 ou supérieur (Mac OS 10.3 ou supérieur requis pour le G5)
À noter que si VirtualPC pour Windows est désormais gratuit, ce n'est pas le cas de la version Mac.

## Microsoft Virtual Server

Microsoft Virtual PC est aussi disponible en version serveur nommée Microsoft Virtual Server.
La version 2005 R2 a pour nouveautés :
* Host clustering : mise en cluster de deux Virtual Server : si le premier serveur tombe en panne, les VM (machine virtuelle) installées dessus sont déplacées sur le 2e, de manière transparente pour l'utilisateur.
* Support de l'iSCSI : permet d'accéder à un SAN, un NAS ou une baie de disques via le réseau IP et de réduire les coûts, mais aussi d'augmenter les performances.
* Support des serveurs 64 bits : s'installe aussi bien sur des serveurs 32 bits que sur des serveurs 64 bits
* Support du PXE : démarrage à distance (via réseau) lorsque la machine est équipée d'une carte réseau PXE, ce qui permet l'installation de systèmes à distance.