Open source/Plex86 virtualizza Windows

Grazie al progetto Plex86 è possibile disporre di un software open source in grado di far girare più sistemi operativi in modo concorrente sulla stessa macchina


Far girare sistemi operativi differenti su di una stessa macchina sta diventando un’esigenza molto diffusa, soprattutto con l’ascesa dei sistemi operativi “alternativi” come Linux, BeOS, ecc. Da qualche tempo, grazie ad un software commerciale di nome VMWare , è possibile non solo disporre di più sistemi operativi sullo stesso computer, ma anche farli girare contemporaneamente.

VMWare è un progetto ormai maturo e supporta in pieno anche Windows 2000: il suo unico difetto è quello di essere commerciale! Ma il mondo dell’open source poteva forse stare a guardare? Niente affatto, ed infatti da alcuni mesi è disponibile quello che originariamente si chiamava FreeMWare , ma che oggi ha dignitosamente cambiato il suo nome in “plex86”.

Come si può leggere sul sito del progetto l’obiettivo del team che sta dietro a plex86 è quello di dar vita ad “un programma di virtualizzazione di PC, espandibile ed open source, che permetta agli utenti di PC e workstation di utilizzare più sistemi operativi in maniera concorrente sulla stessa macchina. Freemware girerà come codice nativo quanto più possibile del sistema operativo e del software applicativo; il resto verrà emulato dal monitor di virtualizzazione PC.”

La possibilità di poter far girare due o più sistemi operativi in modo concorrente sulla stessa macchina diventa uno strumento utilissimo, oltre che per sfruttare un parco software più vasto, anche per lo sviluppo, per il debugging, per la strumentazione e per il profiling di sistemi operativi. E poi, diciamocelo: poter far vedere ad amici o colleghi Windows che gira in una finestra di Linux è una bella soddisfazione!


Il progetto FreeMWare, oggi plex86, nasce soprattutto grazie all’apporto di Kevin Lawton, creatore di Bochs, un emulatore software di processori IA-32. Gran parte del codice di Bochs è stato integrato in plex86 per l’emulazione dei dispositivi hardware, una tecnica che vedremo perché si rende necessaria nella prossima parte dell’articolo.

Sebbene plex86 fino a pochi mesi fa si chiamasse FreeVMWare, Lawton sostiene che il loro progetto non ha nulla a che fare, in termini di codice, con VMWare: forse la scelta di quel nome è stata un po ‘ infelice. Non solo, ma Lawton afferma che l’intenzione di virtualizzare Bochs era già nell’aria ben prima che la società di VMWare si formasse, e d’altronde questi stessi sviluppatori si sono rifatti abbondantemente su lavori preesistenti.

Plex86 è un progetto open source pubblicato con licenza LGPL. Più recentemente anche Boch è passato a licenza LGPL grazie all’acquisizione del codice da parte di MandrakeSoft. Lawton, che ora è stato assunto dal noto distributore di Linux, sostiene che questo evento darà nuova linfa vitale a tutto il progetto plex86 portandolo più velocemente alla maturità.


A differenza degli emulatori puri come WINE o Twin, che si limitano ad implementare le API di Windows, plex86 e VMware non emulano il sistema operativo, bensì tutto l?hardware di un comune personal. Questo significa che plex86, come VMWare, implementa un suo BIOS che esegue tutte le tradizionali procedure di un normale BIOS per PC, con possibilità di modificarne i parametri.
Questo sistema, denominato appunto “virtualizzazione”, permette di far girare più sistemi operativi differenti (chiamati guest) su delle macchine virtuali in esecuzione su un sistema operativo chiamato host, che a sua volta viene eseguito su una macchina reale. In questo modo potremo vedere Windows 98 che gira tranquillamente all’interno di una finestra di Linux.

Come sostengono i creatori di plex86, quella della virtualizzazione è un’idea abbastanza datate (risale agli anni ’70) ma ancor oggi rappresenta un vera sfida per i programmatori, soprattutto per il fatto che i processori x86 non sono stati progettati per eseguire diversi sistemi operativi in maniera concorrente. La soluzione è quella di emulare solo le istruzioni x86 che non possono essere compatibili con la virtualizzazione ed eseguire in modo nativo tutte quelle, fortunatamente la stragrande maggioranza, che invece non creano problemi: questo fa sì che una macchina virtuale, rispetto ad un emulatore puro, possa fornire prestazioni di gran lunga superiori, sebbene perda in portabilità.

Un altro problema che software come plex86 e VMWare devono superare è che più sistemi operativi non possono accedere direttamente allo stesso insieme di dispositivi hardware: questo viene risolto emulando tali dispositivi ad uso del sistema operativo ospite.
Da questo lato plex86 parte avvantaggiato visto che ha potuto importare questa funzione da Boch, l’emulatore per eccellenza.

Per il momento plex86 è disponibile solo in versione non stabile e per sistemi operativi Linux e BeOS: l’installazione è consigliata solo su macchine di prova. Lawton sostiene inoltre che la tecnologia che sta dietro a plex86 può essere facilmente portata anche su altre architetture, come i PowerPC, ma di questo il suo team non si occuperà. Il fatto però che il codice sorgente di plex86 sia open source potrebbe favorire il nascere di altre versioni del software.

Alessandro Del Rosso

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti