Cómo emular un PC


  • 0

    Desde que el núcleo NT se ha hecho común en los ordenadores de sobremesa con la aparición de Windows XP y más recientemente de Windows Vista, han ido surgiendo problemas de compatibilidad con programas antiguos diseñados para el núcleo “9x” o MS-DOS. Una de las formas de evitar este problema pasa simplemente por instalar Windows 9x en otra partición y desde ahí ejecutar nuestros programas diseñados para este sistema operativo, o incluso para MS-DOS.

    Por otra parte no es raro que por diversas razones necesitemos usar varios sistemas operativos. Si por ejemplo usamos Linux habitualmente y queremos ejecutar alguna aplicación compilada para Windows, existen varias soluciones. Una de ellas, que es bastante común, pasa por instalar Windows en otra partición con el inconveniente de que si queremos usarlo tenemos que cerrar Linux. Otra más practica, pero mas restringida desde el punto de vista de la compatibilidad es WINE, gracias al cual podemos usar una gran cantidad de software desarrollado para Windows. Por último nos encontramos con la opción más práctica de todas, cuya única desventaja es una disminución del rendimiento de la maquina que en muchos casos, como cuando queremos ejecutar software antiguo, no representa ningún problema; se trata de la emulación.

    ¿Qué es la emulación?

    Esta técnica consiste en hacer parecer que existe un hardware que en realidad no tenemos. Esto se hace mediante software, lo cual produce una reducción considerable del rendimiento. A cambio obtenemos un entorno simulado que nos ahorra dicho hardware y que en los casos en los que no se requiere demasiada potencia de cálculo nos hace la misma función que el “hardware real”. En este caso concreto nos encontraremos con un software que hace que parezca que tenemos otro PC, dentro del cual podemos hacer cualquier cosa que podríamos hacer si tuviéramos el ordenador físico. La principal ventaja reside en que estos programas se ejecutan sobre otro sistema operativo, por lo que podremos tener tantas maquinas virtuales funcionando como nuestros recursos físicos nos permitan y todo esto en un solo PC físico. Las ventajas de esto son evidentes a la hora de querer ejecutar programas viejos o que hayan sido compilados para otro sistema operativo. Los emuladores de PC en la actualidad además de traer el hardware básico como puede ser el procesador, la memoria, una tarjeta grafica o el disco duro, incluyen tarjetas de red, la posibilidad de puentear unidades físicas para su uso dentro de la maquina virtual, poder montar imágenes de casi cualquier dispositivo de almacenamiento digital, etc.

    **
    Emuladores**

    En la actualidad, el uso de maquinas virtuales esta muy generalizado ya que hace unos años se produjo un punto de inflexión en el mundo de los sistemas operativos con la aparición de Windows XP. Se podría decir que es un sector que cambia poco con el tiempo y donde no existe demasiado donde elegir. Así pues tenemos básicamente tres opciones (aunque hay más), que por otra parte son los más utilizados. Se trata de VMWare, Microsoft Virtual PC y QEMU.

    VMWare

    Se trata de software de pago. Nos vamos a centrar en la versión Workstation ya que es la que nos permite crear numerosas maquinas virtuales sobre nuestro sistema operativo. Quizás sea el más ineficiente de todos. A pesar de ser de pago existe la posibilidad de usar VMWare Player que es gratuito y cuya función es ejecutar maquinas virtuales sin poder modificar sus características. Esto es especialmente útil si queremos distribuir un programa que en principio no este diseñado para Windows ni para Linux, los sistemas donde se puede usar VMWare. Su página web es http://www.vmware.com/es/.

    Memoria

    Una de sus mejores características es que nos permite crear un PC virtual con más memoria RAM de la que dispone el sistema. Específicamente, la versión 5.5.x nos deja crear maquinas con hasta 3600 Mb de RAM. La configuración de la memoria es tan simple como indicar la cantidad que creamos que vamos a necesitar. Debido a la característica de poder emular más memoria de la disponible físicamente y el programa nos indicará cual es el máximo a partir del cual nuestro sistema operativo “host” empezara a tirar de paginación.

    Disco duro

    En este apartado VMWare también sobresale con respecto a otras alternativas. Y es que de un sistema de almacenamiento masivo lo más que se puede esperar es poder guardar en él cosas. Tampoco hay mucho donde innovar, pero este programa tiene la opción de impedir que la máquina virtual no escriba nada sobre el disco duro, algo que puede resultar interesante si queremos ejecutar alguna aplicación con VMWare Player e impedir que los usuarios desconfiguren algo, introduzcan virus, etc. Esta opción puede ser activada dentro de las opciones del disco duro en el botón “Advanced” activando el modo “Independent – Nonpersistent”. Por otra parte podremos elegir si queremos reservar todo el espacio del disco que hemos creado o que se vaya llenando conforme se introducen datos.

    Medios ópticos

    En este aspecto WMWare es como tantos otros. Podemos puentear nuestras unidades físicas para que al introducir un disco este aparezca dentro de nuestra maquina virtual como si la unidad estuviera conectada directamente al equipo virtual. También podemos montar una imagen y que aparezca dentro de nuestro equipo como una unidad más, tal y como ocurre cuando montamos una imagen con cualquier software del estilo de Daemon Tools en Windows XP.

    Conexiones de red

    Tenemos cuatro opciones para elegir:
    • Bridged (Puenteada): Con esta opción el sistema operativo hospedado se conecta directamente a la tarjeta de red física con una dirección IP propia. En realidad es como si se conectara a una tarjeta de red diferente de la que usa el sistema operativo “host” ya que la actividad de equipo virtual es absolutamente transparente. Evidentemente el ancho de banda se comparte entre ambos sistemas.

    •NAT: Es igual que la puenteada con la excepción de que la dirección IP se comparte entre el SO host y hospedado.

    •Host-only: En este caso se crea un enlace con la red del sistema host, pero no sale de ahí, es decir, que es como si tuviéramos ambos PC´s conectados directamente con un cable cruzado, a excepción de que la maquina física sigue teniendo la accesibilidad que tenia en un principio.

    •Custom: Specific virtual network: En esencia es igual que la Bridged con la diferencia de que los parámetros los configuramos en una conexión de red virtual que aparece en nuestro sistema operativo host.

    Otras características

    Además VMWare Workstation tiene soporte para buses USB, sonido y multiprocesador cuya configuración es tan simple como activar o desactivar del soporte de cada elemento de hardware. Por otra parte este programa tiene un paquete de controladores específicos para los principales sistemas operativos.

    Virtual PC 2004 y 2007

    Esta es la alternativa de Microsoft, que es gratuita. Recientemente ha aparecido Virtual PC 2007 que viene incluido con Windows Vista a partir de la edición “Enterprise”. En este caso voy a tratar con la versión 2004, que es la que conozco. El hardware que simula es el chipset Intel 440BX, una tarjeta grafica S3 Trio de 4Mb y un Pentium 4. Se trata de uno de los emuladores para PC mas eficientes, pero tiene un gran inconveniente que consiste en que si la ventana donde aparece el PC virtual no esta en primer plano el procesador físico no dedica tiempo al sistema virtual, lo que provoca un bloqueo de lo que se esté haciendo. Es decir, que si algún programa instalado en la máquina virtual esta trabajando y minimizamos o dejamos en segundo plano la ventana de la máquina en cuestión, la tarea que se estuviera realizando se paraliza hasta que volvemos a tener la ventana activa. Actualizado: Este problema se solucionó con el Service Pack 1 para Virtual PC 2004. Por otra parte como he dicho antes, con la aparición de Windows Vista, Microsoft lanzó Virtual PC 2007 que también es compatible con Windows XP y que hace lo mismo que la versión 2004 y con el mismo aspecto físico pero con mucha más eficiencia. Esta nueva versión también es gratuita.

    Podeis descargar Virtual PC 2007 desde aquí.

    Memoria

    Podemos virtualizar como máximo la memoria RAM disponible en el sistema. Si la suma de la memoria reservada para varias maquinas virtuales es superior a la disponible físicamente, alguno de los equipos no se ejecutara. Configurar este parámetro de muy simple: solo hay que especificar cuanta memoria quieres reservar.

    Disco duro

    Se tendrán que usar discos duro virtuales creados por Virtual PC. Para crearlo tenemos cuatro opciones donde elegir:

    • Expansión dinámica: Especificaremos un tamaño límite, pero el disco duro virtual solo ocupara tanto espacio físico como datos tengamos guardados. Por ejemplo, si creamos un disco de 20gb y solo tenemos almacenados 4 GB ocupara 4GB de espacio físico y no podremos almacenar mas de 20gb.

    •Tamaño fijo: Desde el principio ocupa todo el espacio especificado, aunque este no este siendo utilizado.

    •Diferenciación: Si tenemos ya creado un disco duro con un sistema operativo instalado y datos almacenados y queremos usar ese disco duro, pero guardando los cambios en otro diferente, esta es la opción que estamos buscando.

    •Vínculo a un disco duro: En vez de crear un disco duro virtual se emplea uno físico. Ojo con esta opción porque no se usa una partición, sino todo el disco físico, que aparecerá como tal con todas las particiones y todos los datos en el equipo virtual.

    Unidades ópticas y diskete

    Podemos tanto usar las unidades físicas de nuestro equipo como montar una imagen una vez que el equipo virtual esta funcionando.

    Redes

    Tenemos exactamente las mismas opciones que en VMWare quitando la de usar una red virtual especifica. La red puenteada recibe el nombre de la tarjeta de red física, la red NAT tiene la misma denominación y la “Host-only” pasa a llamarse “Local solamente”.

    Otras características

    Como en VMWare, tenemos la opción de habilitar el soporte para puertos y sonido. En este caso podemos usar puertos serie y paralelo además de sonido. Otra característica a tener en cuenta es “Virtual Machine Adition”, que entre otras cosas nos permitirá compartir carpetas entre el sistema host y hospedado. Por último cabe destacar la posibilidad de guardar el estado de una maquina. Esto significa que podemos cerrar el programa guardando la memoria virtual y el estado del hardware en el disco duro físico, y cuando queramos, volver a donde estábamos; una característica similar a la hibernación.

    QEMU

    Hemos llegado al emulador que más me gusta de todos. En realidad es el que menos uso por incomodidad, pero el hecho de que sea de código abierto y de que este disponible para Windows, MACos y Linux lo convierte en el más “universal” de todos. Su principal inconveniente es que no es gráfico y hay que introducir la configuración manualmente cada vez que se ejecuta. Simplemente es menos intuitivo que los dos anteriores. El hardware que puede emular es un procesador con arquitectura x86, x86-64, PowerPC, MIPS, SPARC sun4m o SPARC sun4u, y una tarjeta grafica Cirrus Logic CL-GD5446. Quizás sea el más eficiente de todos ya que algunas aplicaciones se ejecutan casi tan rápido como en una maquina física. Su web es http://fabrice.bellard.free.fr/qemu/ y podeis descargarlo desde aquí.

    Disco duro

    Deberemos usar una imagen de disco que puede ser creada con una utilidad que trae el QEMU llamada qemu-img. Para crear un disco de por ejemplo 1Gb llamado discoduro tan solo tenemos que escribir (sin las comillas) “qemu-img create discoduro.img vpc 1G”. En este momento se reservara 1 gb de espacio en el disco duro, es decir, que se ocupara ese espacio en el disco físico aun cuando alguna parte no este siendo usada. En el tamaño del disco podemos elegir como unidades Kbytes escribiendo solo la cantidad, Mbytes escribiendo la cantidad seguida de M y Gbytes haciéndolo tal y como se muestra en el ejemplo. Además podemos elegir el formado de la imagen añadiendo a la cadena (sin las comillas):

    “bochs”: Sistema de archivos BOCHS
    “cloop”: Linux Compressed LOOP
    “cow”: user mode Linux Copy-On-Write
    “dmg”: Imagen de disco macintosh
    “qcow”: Qemu Copy-On-Write
    “raw”: Sistema de archivos RAW
    “vfat": Sistema de archivos Virtual FAT
    “vmdk”: Disco duro virtual de VMWare
    “vpc”: Disco virtual Virtual PC

    Ejecución de una máquina virtual y discos ópticos

    Una vez que hemos creado nuestra imagen de disco duro podemos ejecutar nuestra maquina. Quizás queramos usar un cdrom o dvd para instalar un sistema operativo. En QEMU no podremos usar nuestras unidades físicas, así que previamente habrá que crear una imagen, preferiblemente en formato ISO para evitar incompatibilidades. En el caso de la disketera ocurre exactamente lo mismo: tendremos que crear una imagen con cualquier utilidad para tal fin. Supongamos que hemos llamado a nuestra imagen del cdrom “cdrom.iso” y que la imagen del disquete se llama “diskete.img”. Para ejecutar finalmente la máquina tendremos que escribir la siguiente cadena sin comillas: “qemu –L . –m 512 –boot c –fda diskete.img –hda discoduro.img –cdrom cdrom.iso”. El modificador L sirve para elegir la BIOS que queremos usar. QEMU trae una que es la que se usa por defecto escribiendo “.”. Si queremos usar cualquier otra BIOS tan solo tendrás que cambiar el punto por el nombre del archivo, por ejemplo “bios.bin”. El modificador –m sirve para reservar una cantidad en Mbytes de memoria RAM. En este caso hemos elegido 512 Mb de ram. Con el parámetro –boot elegimos la unidad con la que queremos arrancar (a para el diskete, c para el disco duro y d para el cdrom). Por último hemos introducido los modificadores –fda, -hda y –cdrom con los cuales indicamos el nombre de las imágenes de cada unidad.

    Esto es lo básico para empezar a usarlo ya que QEMU tiene muchísimas más opciones configurables. La mejor manera de cogerle el truco es probar y ver los resultados.


    Instalación de Windows XP Professional ejecutada con el emulador QEMU sobre ReactOS 0.3.0, que a su vez esta siendo emulado por VMWare sobre Windows XP Professional.

    VirtualBox
    Se trata de una máquina virtual gratuita en su versión básica muy eficiente para ciertas tareas.

    Parte de su hardware no es nada convencional ya que se trata de una emulación de hardware que no existe físicamente, aunque no con todo ya que por ejemplo la tarjeta de red es de AMD.

    Memoria

    Este quizás sea el punto fuerte de VirtualBox ya que permite no solo elegir la cantidad de memoria RAM, sino también la memoria de video hasta un máximo de 128 Mb, aunque como ocurre con las otras máquinas virtuales, no permite usar aceleración gráfica.

    Disco duro

    Este apartado también es destacable. En cuanto a la creación de discos virtuales es bastante normal: se puede crear un volumen dinámico (que ocupa en el disco físico lo que se está usando) o de tamaño fijo (que ocupa todo lo que se establece esté o no usado). Lo realmente bueno es que te permite usar discos virtuales de VMWare.

    Unidades ópticas, de diskette y otro hardware

    En este aspecto es bastante sencillo como el resto: se pueden usar unidades físicas o imágenes. La última versión GPL tiene un bug que da problemas con las unidades físicas de diskette. Por otra parte, como el resto tiene la posibilidad de sonido, USB y la compartición de carpetas.

    Redes

    He aquí su punto flaco ya que no permite emular una tarjeta de red independiente de la del sistema físico,si no que crea una especie de puente y enruta las conexiones desde una tarjeta de red virtual a la física impidiendo la utilización de una raíz de IP igual a la de nuestra red local. Las opciones de conexión son similares a las otras máquinas virtuales:



  • 1

    Esto no puede ser, estais poniendo el liston muy alto.. :P



  • 2

    muy bueno cobito, a tope de puntuacion!



  • 3

    Marchando una de para el Granaíno :D
    Enhorabuena cobito ;)



  • 4

    Gran trabajo, si señor. Además no sabía que el Virtual PC era gratuito (por eso ni lo he probado) y las posibilidad de Qemu.

    Otro gallifante para el caballero, que estas cosas son las que hacen más grande al foro :sisi:.



  • 5

    Bueno, pues he actualizado el hilo (el Virtual PC) y he añadido el VirtualBox a la lista.



  • 6

    No me habia fijado en este hilo. Muy buen trabajo, si señor. Haber si me pongo a probar esos emuladores, que siempre senti mucha curiosidad por el tema, pero la vageria…:llorar:



  • 7

    @Neptunno:

    No me habia fijado en este hilo.

    Joder, lo mismo digo yo. (aunque en las fechas de los post estaba de examenes :p )
    Esta muy bien aunque para mejorar la carga del post yo hubiera usado PNG en lugar de JPG porque no pierde calidad y ocupa menos pero bueno. :girl:



  • 8

    Me alegro que os guste. :)

    @Espinetenbolas:

    Esta muy bien aunque para mejorar la carga del post yo hubiera usado PNG en lugar de JPG porque no pierde calidad y ocupa menos pero bueno. :girl:

    Tomo nota para la próxima vez a ver si no se me olvida.



  • 9

    Os recuerdo que existe la reputación, ;) dadle todo vuestro karma a cobito, que se lo merece :p:p (aunque ya desprendes un aura noseque, jaja)

    A todo esto, por si quieres completar más, también se puede virtualizar con Xen (enlace a Wikipedia) es código libre y debe funcionar muy bien. Lo acaba de comprar Sun, por tanto es de esperar que se le de un fuerte empujón en breve.



  • 10

    cobito tiene un aura espectacular a su alrededor

    Increíble es trabajo que haces cobito, espero que algún moderata te regale un jamón que seguro que les sobra alguno :p



  • 11

    Llevo unos días usando VirtualBox en Linux Mint 4 (gnome) y la verdad es que funciona muy bien. Incluso detecta los USB que quieras y si conectas un dispositivo USB te lo instala como si se tratara de una maquina real.

    Además, al tener dos monitores puedo poner el Windows en FullScreen emulado con VirtualBox en el monitor secundario y en el primario tener Linux de forma normal. Con solo mover el cursor de una pantalla a otra canvio de un SO a otro, sin tener que presionar ninguna tecla ni nada; ya que en el Windows emulado tengo instalado el paquete de VirtualBox que entre otras cosas hace la función de autocapturar el mouse al mover el cursor encima de la maquina y viceversa, o sea soltar el cursor al salir de ésta.

    Le pongo un 9 a VirtualBox; no le pongo un 10 porqué el 10 es la perfección, y la perfección sería que el 3D funcionase como en una máquina real :P.

    Buen trabajo Cobito :)

    Saludos!!



  • 12

    Gracias a todos.

    @MonXP:

    A todo esto, por si quieres completar más, también se puede virtualizar con Xen (enlace a Wikipedia) es código libre y debe funcionar muy bien. Lo acaba de comprar Sun, por tanto es de esperar que se le de un fuerte empujón en breve.

    He estado buscando Xen para Windows y no he encontrado ninguna versión libre. Lo he instalado en Linux, pero me da errores y no puedo ejecutarlo. Cuando solucione estos problemillas lo incorporaré a la lista.



  • 13

    Tambien esta la version Virtual Server 2005. Es similar al Virtual PC pero permite clusterizacion.

    Microsoft Virtual Server 2005 - Página de Inicio

    Por cierto, es gratuita; solo tienes que instalar el IIS pues se ejecuta desde una pagina web. Es la que yo utilizo, tengo un 2003 server en Active Directory, un servidor miembro con un ISA Server 2004 y dos maquinas Windows XP que pertenecen al dominio (para aplicar directivas de grupo y demas); la verdad es que va muy bien y tiene versiones para 32 y 64 bits.





Has perdido la conexión. Reconectando a Hardlimit.