# Windows Virtual PC

Windows Virtual PC (precedentemente noto come Microsoft Virtual PC e Connectix Virtual PC) è un software di emulazione sviluppato da Microsoft per Windows e macOS, che consente l'esecuzione di diversi sistemi operativi come client. L'emulatore ricrea in forma virtuale un ambiente di lavoro che riproduce quasi integralmente quello di un PC basato su Intel.
Originariamente sviluppato da Connectix, Virtual PC è stato distribuito da Microsoft per consentire l'uso di vecchie applicazioni non più supportate dai moderni sistemi operativi.
La successiva introduzione dei processori Intel nei computer Macintosh ha tolto parecchio interesse pratico all'utilizzo di Virtual PC da parte degli utenti Apple, poiché è divenuto possibile installare Windows in dual boot, svincolandosi dalla limitazione delle prestazioni dovuta all'utilizzo di un emulatore. Microsoft ha pertanto deciso nel 2006 di abbandonare lo sviluppo di Virtual PC per i Mac con processore Intel.
Nel febbraio 2007 Microsoft ha pubblicato una versione per Windows (gratuita, come la precedente versione 2004) chiamata Virtual PC 2007.

## Sistemi operativi supportati
### Sistemi operativi host

Virtual PC 2007 è installabile nei seguenti sistemi operativi:
* Windows 7 (32-bit e 64-bit Windows 7 Ultimate, Enterprise, Business editions e European Business N solamente ma non Windows 7 Starter).
* Windows Vista (32-bit e 64-bit Windows Vista Ultimate, Enterprise, Business editions e European Business N solamente ma non Windows Vista Starter, o European Vista Home N editions).
* Windows XP Professional, Tablet PC Edition (32-bit) e Windows XP Professional x64 Edition.
* Windows Server 2003
NOTA: Alcuni sistemi operativi che non sono ufficialmente supportati, inclusi Windows Vista Home Premium, Windows XP Media Center Edition oppure XP Home Edition funzionano comunque. Virtual PC 2004 è l'ultima versione a supportare Windows 2000 come OS ospitante (host). Attualmente Virtual-PC non è più supportato e viene considerato suo successore Hyper-V.

### Sistemi operativi guest

Virtual PC 2007 supporta la virtualizzazione dei seguenti sistemi operativi:
* Windows 7 (Tutte le edizioni 32-bit senza Service Pack)
* Windows Vista (Tutte le edizioni 32-bit)
* Windows XP (Tutte le edizioni, solo a 32-bit)
* Windows Server 2008 (da Virtual PC 2007 SP1 in avanti)
* Windows 2000 Professional e Server
* Windows 98 Second Edition (SE)
* Windows Server 2003 Standard Edition
* Alcune edizioni di IBM OS/2
Il supporto per Windows 95, la release originale Windows 98, Windows Me, Windows NT 4.0 Workstation e MS-DOS 6.22 come sistemi guest è terminato in Virtual PC 2007: potrebbero comunque funzionare, ma le "Virtual PC Additions" non saranno disponibili per vecchi sistemi operativi come Windows 95 o MS-DOS 6.22; È comunque possibile utilizzare le Additions di Virtual PC 2004 con Windows 95 e MS-DOS.
I sistemi operativi Linux, come guest, non sono supportati ufficialmente da VPC 2004 e 2007 nonostante il supporto per le Virtual Machine Additions fosse disponibile nella versione di Virtual PC della Connectix, prima dell'acquisizione da parte di Microsoft. Microsoft supporta le VM Additions for Linux solo nel prodotto Virtual Server. Le VM additions sia per OS/2 che Linux furono sviluppate dalla compagnia tedesca innotek Archiviato il 12 dicembre 1998 in Internet Archive. GmbH per conto di Connectix/Microsoft.
Installando Microsoft Virtual PC 2007 su un computer avente Windows 7 e Windows XP Mode non sarà più possibile installare software usando la compatibilità (esegui in modalità compatibilità per) Windows XP.

## Ambiente emulato

Virtual PC emula il processore Intel Pentium II a 32 bit con un chipset Intel 440BX (ma virtualizza il processore host nelle versioni Windows), una scheda grafica VESA SVGA (S3 Trio 32 PCI con 4 MB di RAM Video RAM, modificabile in versioni seguenti fino a 16 MB), bios American Megatrends (AMI), scheda sonora Creative Labs Sound Blaster 16 ISA PnP (quando è installato Windows Vista sia nel sistema ospitante (host) che in quello ospitato (guest) non è più necessario configurare l'audio poiché il sistema virtualizzato si sincronizza automaticamente con quello ospitante), una scheda di rete DEC 21041 (DEC 21140 nelle versioni più aggiornate).
L'USB non è supportato, anche se alcune periferiche standard che utilizzano USB nel sistema ospitante, vengono riconosciute in altro modo. Programmi che utilizzano caratteristiche non documentate dell'hardware, usi "esotici" del timer, oppure opcode non supportati, potrebbero non funzionare, anche se in generale la compatibilità è da considerarsi soddisfacente.
La versione Mac di VPC usa una ricompilazione dinamica per tradurre il codice x86 utilizzato da un pc standard in codice equivalente per PowerPC, usato dal Mac.
Anche la versione Windows di VPC utilizza la ricompilazione dinamica, ma solo per tradurre il codice kernel mode in real mode x86, dato che il codice in user mode e in virtual 8086 mode girano in modo nativo. Intercetta anche alcune chiamate dell'ospite (guest, in special modo quando vengono utilizzate estensioni del guest) per accelerare l'emulazione oppure per offrire caratteristiche aggiuntive, come l'integrazione nell'ambiente dell'OS ospitante.
Virtual Hard Disk (VHD) è il formato di file utilizzato da Virtual PC e Virtual Server, formato per il quale Microsoft ha messo a disposizione tutta la documentazione sotto la Open Specification Promise.

## Virtual Machine Additions

Per agevolare lo scambio e la condivisione di file, cartelle e dati tra il sistema operativo ospitante (host) e quello ospitato (guest), Virtual PC supporta l'installazione di "Virtual Machine Additions". Queste vengono installate (opzionalmente) nel sistema operativo ospitato e forniscono le seguenti funzionalità tra sistema host e guest:
* Migliori prestazioni del sistema operativo guest
* condivisione del mouse
* Driver video ottimizzati
* Risoluzione video dinamica (capacità di usare ogni risoluzione video nel sistema ospitato ridimensionando la finestra della Virtual Machine)
* Orologio di sistema sincronizzato con il sistema host
* Condivisione degli appunti (copia, incolla)
* Possibilità di trasferire file con il drag and drop
* Possibilità di condividere cartelle e file tra host e guest

## Windows Virtual PC + Windows XP Mode

Windows Virtual PC è una evoluzione di Microsoft Virtual PC, progettata appositamente per Windows 7 per sopperire all'incompatibilità di alcune applicazioni legacy con Windows 7, consentendo un più elevato grado di virtualizzazione di Windows XP (sia dei programmi sia dell'hardware).
Si appoggia a Windows XP Mode e si integra con esso a tal punto che i programmi installati (eseguibili) su Windows XP nativamente, sono visti e lanciati da Windows 7 analogamente alle altre applicazioni.
Windows XP Mode non è altro che un disco virtuale contenente un'installazione di Windows XP Service Pack 3 a 32 bit, da configurare al primo avvio, con una maggiore integrazione fra sistema host e guest.
Dal punto di vista hardware supporta anche le porte USB e le seriali RS232, anche se non è detto che i driver installati o incorporati in Windows XP Mode siano in grado di pilotare tutte le periferiche di quel tipo.
Essendo pensato per il riutilizzo di costosi software aziendali che non è più possibile o troppo costoso aggiornare a Windows 7, Windows Virtual PC e Windows XP Mode sono disponibili, a titolo gratuito, solo per le versioni Windows 7 (32 e 64 bit) Ultimate, Professional, Enterprise. Per il download è richiesta la verifica software on-line della genuinità del sistema operativo installato sul PC.
Dal punto di vista delle CPU supporta processori con tecnologie Intel-VT o AMD-V (con virtualizzazione hardware nativa) che deve anche essere abilitata se necessario con opportune modifiche del BIOS. Successivamente è stata messa a disposizione da Microsoft una patch, (Windows XP Mode update) che aggiornando XP Mode lo rende usabile anche con CPU senza virtualizzazione hardware nativa.
Alcune funzioni principali:
* Integrazione USB
* Pubblicazione automatica in Windows7 delle applicazioni installate nell'XPMode (in Windows XP ospitato); i programmi sono lanciati dalla stessa barra delle applicazioni di Windows 7
* Supporto al multithreading
* Condivisione degli appunti nella memoria temporanea (consente tra l'altro il copia e incolla file da un deskop all'altro)
* Reindirizzamento delle stampanti e delle smartcard
* Condivisione delle memorie di massa
* Integrazione con Windows Explorer
* Integrazione con le cartelle predefinite del sistema host (Windows7)
* Supporto risoluzioni video elevate

## VMLite + Windows XP Mode

Dato che la maggior parte dell'utenza consumer o delle scuole ha semplicemente la necessità di riutilizzare dispositivi e software che funzionavano con Windows XP, ma non più con Windows Vista e/o Windows 7, VMLite ha sviluppato una soluzione freeware basata su:
* VMLite Workstation (basato su VirtualBox), software che genera la macchina virtuale appoggiandosi al download di Windows XP Mode dal sito Microsoft;
* Windows XP Mode che può essere scaricato tramite la procedura guidata di VMLite Workstation.
Questa soluzione, basata su VirtualBox, permette di superare le limitazioni imposte da Windows Virtual PC, in quanto consente di installare la macchina virtuale XP su qualsiasi versione di Windows e senza limitazioni hardware (con o senza virtualizzazione della CPU).

## Altri software di virtualizzazione

* Xen
* Bochs
* VMware Workstation
* coLinux
* QEMU
* VMLite
* VirtualBox
* Microsoft Virtual Server