Máquinas virtuales.

Uno de los problemas a los que nos solemos enfrentar habitualmente es al de ejecución de software en entornos diferentes al que disponemos. Así pues, ya seamos aficionados o profesionales, disponer de la posibilidad de ejecutar un programa Windows en MacOSX o Linux, o una app de móvil Android en un ordenador es algo que a priori puede resultar muy atractivo. 

En la imagen, se pueden observar una máquina virtual Windows XP, un emulador Android ejecutando Whatsapp, una máquina virtual Android Phone y la AppStore de MacOSX. Todo ello en un MacBook Air bajo MacOSX como sistema operativo anfitrión.

Pero, ¿qué es la virtualización y qué ventajas aporta? En la Wikipedia nos lo explican muy bien. 

De todos es conocido que poco a poco me he convertido en un Apple “fanboy” y que a los inevitables iPhone e Ipad, he añadido sendos MacBook Air en la oficina y en casa. Por otro lado hay software que no está disponible en entorno Mac, y como persona curiosa que soy, me gusta probar tanto nuevas soluciones de software como nuevas apps, así que decidí montar un entorno de virtualización para poder ejecutar Windows (en concreto, una versión XP) y otro entorno para ejecutar Android. 

Antes de seguir adelante, cabe recordar que si queréis montar máquinas virtuales con sistemas operativos diferentes al vuestro tenéis que tener una licencia legítima para poderlo hacer; y esto es extensible al software que se ejecute con ese sistema operativo virtualizado. Una vez dicho esto, hay que elegir el software gestor de máquinas virtuales. 

Aunque hay diferentes fabricantes de gestores de virtualización, he preferido elegir un producto Open Source, y entre todos ellos, me he decidido por VirtualBox. De VirtualBox existen versiones para Windows, Linux y MacOSX, por lo que sólo será necesario la versión que se ajuste a nuestro sistema operativo anfitrión. Algo importante a recordar es que este gestor de virtualización permite emular entornos para instalar sistemas operativos siempre que dichos sistemas operativos usen el set de instrucciones X86, es decir, microprocesadores para ordenadores de sobremesa o portátiles. 

En el caso de los sistemas operativos móviles, el set de instrucciones que soportan es ARM, que ES diferente al X86. En el caso de Android el único problema que nos representa es que la versión de Android debe ser X86 (al ser open source y disponer la comunidad de los fuentes, ha habido diferentes grupos que han creado versiones para ejecutar en X86, mientras que en el caso de iOS no existe una versión X86; recordad que iOS es un entorno propietario y cerrado. 

Existen proyectos como QEMU que sí tienen una emulación ARM y que forma parte del SDK de Android; en el SDK de iOS también existe un emulador iOS, pero este emulador sólo se puede ejecutar bajo MacOSX y debéis constar como desarrolladores para tener acceso. 

¿Y máquinas virtuales MacOSX? Violan el acuerdo de licencia de Apple. Cabe la posibilidad que buscando mucho encontréis alguna, pero de versiones de MacOSX antiguas y con muchas dudas sobre su funcionamiento. 

También existen emuladores de Android (máquinas virtuales dedicadas con el sistema operativo autocontenido) que permiten tener el entorno cargado y funcionando sin tener que perder el tiempo en configuraciones. De las que he probado la que más me gusta es BlueStacks, con versiones del emulador Android para Windows y MacOSX. 

En los siguientes posts os explicaré como crear máquinas virtuales desde cero, importar una máquina virtual existente creada con VMWare, y por último, montar y utilizar máquinas virtuales Android. 

Stay tunned!