Virtualizzazione x86

Da Wikipedia, l'enciclopedia libera.

In informatica la virtualizzazione x86 consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente e appartenente a un sistema ad architettura x86. Qualunque risorsa hardware o software può essere virtualizzata: sistemi operativi, memoria, spazio disco. Ad oggi la virtualizzazione può essere effettuata a livello software e a livello hardware. Tra gli impieghi della virtualizzazione il più utilizzato è probabilmente la virtualizzazione di sistemi operativi. Via software è necessario un sistema operativo in esecuzione (host) che esegua un software di virtualizzazione che crei ad alto livello le varie virtual machine (guest) che girano come se fossero dei normali programmi e che comunicano con l'hardware solo indirettamente, tramite il software di virtualizzazione che agisce a basso livello. Esempi di software di virtualizzazione sono Bochs, QEMU. L'architettura x86 non supporta nativamente i requisiti di virtualizzazione di Popek e Goldberg[1]. Ne risulta che è molto difficile implementare una macchina virtuale generale su un processore x86. Recentemente sono state introdotte estensioni che hanno risolto questa ed altre difficoltà sulla virtualizzazione.

Virtualizzazione x86 via software[modifica | modifica sorgente]

L'8 febbraio 1999, VMware introdusse il primo prodotto di virtualizzazione x86, "VMware Virtual Platform", basato su precedenti ricerche dei propri fondatori all'Università di Stanford. VMware e software simili devono impiegare sofisticate tecniche per catturare e virtualizzare l'esecuzione di determinate istruzioni. Queste tecniche offrono minori performance rispetto ad una macchina virtuale in esecuzione su un'architettura virtualizzabile nativamente come IBM System/370 o Motorola MC68020. Kevin Lawton lanciò il progetto Plex86 (denominato originariamente "freemware") per la creazione di un "software libero" di virtualizzazione x86 con il solo supporto a Linux come sistema operativo "ospite", ma prima di questo Lawton pubblicò l'articolo Running multiple operating systems concurrently on an IA32 PC using virtualization techniques, il quale fornisce un'analisi sugli aspetti dell'architettura x86 maggiormente complicati da virtualizzare ed alcune tecniche per superare queste difficoltà. Anche Microsoft offre dei software di virtualizzazione x86, Microsoft Virtual PC e Microsoft Virtual Server, basati sulla tecnologia acquisita da Connectix. Recenti ricerche hanno cercato di migliorare le performance alla virtualizzazione x86 attraverso l'utilizzo di un'interfaccia software per le macchine virtuali che emula l'hardware sottostante. I sistemi operativi sono eseguiti su questa interfaccia, la quale non implementa i set di istruzioni x86 difficili da virtualizzare. Questa tecnica è chiamata paravirtualizzazione. Esempi di utilizzo di questa tecnologia sono Denali, L4, e Xen.

Virtualizzazione x86 via hardware[modifica | modifica sorgente]

Intel ed AMD hanno sviluppato indipendentemente le estensioni di virtualizzazione dell'architettura x86. Esse non sono tra loro completamente compatibili, ma supportano grosso modo le stesse istruzioni. Entrambe permettono ad una macchina virtuale di eseguire un sistema operativo ospite senza incorrere in grosse perdite prestazionali causate dall'emulazione via software.

Intel VT (IVT)[modifica | modifica sorgente]

L'estensione di virtualizzazione sviluppata da Intel per le architetture x86 a 32 bit (IA-32) e a 64 bit (EM64T) è denominata IVT (abbreviazione di Intel Virtualization Technology), ed è a volte chiamata con il nome in codice "Vanderpool". IVT è stato ufficialmente lanciato all'Intel Developer Forum Spring 2005 ed è disponibile su tutti i processori Pentium 4 6x2, Pentium D 9x0, Xeon 7xxx, Core Duo e Core 2 Duo, esclusi i T5200, T5500, T6400, E4300, E4400, E4500 ed E4600. Su alcune implementazioni il supporto a Vanderpool può essere disabilitato da BIOS o da EFI.

A titolo di completezza si ricorda che Intel ha inoltre pubblicato le specifiche dell'equivalente di Vanderpool per l'architettura IA-64 (Itanium) il cui nome in codice è "Silvervale".

AMD virtualization (AMD-V)[modifica | modifica sorgente]

L'estensione di virtualizzazione di AMD per l'architettura x86 a 64-bit (AMD64) è denominata AMD Virtualization, conosciuta anche con l'abbreviazione AMD-V o attraverso il nome in codice "Pacifica". I processori AMD che utilizzano il Socket AM2, il Socket S1, e il Socket F supportano la AMD Virtualization. Nel Maggio 2006, AMD ha introdotto sul mercato le versioni dei processori Athlon 64 e Turion 64 con supporto a tale tecnologia. È stata annunciata anche la versione del processore Opteron con supporto alla virtualizzazione disponibile per Agosto 2006.

Software che utilizza VT[modifica | modifica sorgente]

  • Collax V-Cube Piattaforma di virtualizzazione, clustering ed alta disponibilità basata su KVM con gestione semplificata tramite interfaccia web.
  • KVM Virtual Machine basata su kernel per Linux
  • Parallels Workstation ha un hypervisor con il supporto Intel VT-x
  • TRANGO real-time embedded hypervisor
  • VirtualBox
  • VirtualBridges VERDE -
  • Virtual PC, della Microsoft
  • Virtual Server (anche questa della Microsoft): una futura versione (Virtual Server 2005 R2 SP1, da rilasciare nel Q1 2007[2][3]) supporterà le estensioni Intel VT e AMD Pacifica.
  • VMware Workstation su processori Intel, VMware Workstation 5.5 richiede Intel-VT per eseguire sistemi operativi guest a 64-bit.[4] Per i sistemi guest a 32-bit, l'uso della tecnologia VT è possibile ma non è attivo di default, perché per l'attività lavorativa normale è più lento.[5][6]
  • Xen 3.0 utilizza Intel VT per eseguire sistemi operativi guest non modificati. Sia Intel che AMD hanno contribuito a supportare le loro estensioni di virtualizzazione nel monitor di virtual machine Xen, permettendo l'esecuzione di sistemi operativi guest non modificati.

Note[modifica | modifica sorgente]

  1. ^ Requisiti di Popek e Goldberg per la virtualizzazione, pctuner.net, 26 maggio 2009.
  2. ^ Virtual Server 2005 R2 SP1 Beta 1 download link and availability details, technet.com, 28 aprile 2006.
  3. ^ Virtual Server 2005 R2 SP1 - beta 2 feature listing, Microsoft.
  4. ^ Hardware Requirements for 64-Bit Guest Operating Systems, VMWare.
  5. ^ Keith Adams, Agesen, Ole, A Comparison of Software and Hardware Techniques for x86 Virtualization, VMWare, 2006.
  6. ^ How to check if Vanderpool usage is enabled?, VMware, marzo 2006. Article suggests adding monitor_control.vt32 = "TRUE" to the *.vmx file will enable use of hardware VT.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Virtualizzazione hardware VT di Intel
La virtualizzazione hardware Pacifica di AMD
informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica