# QEMU/Windows XP
## Por qué ejecutar Windows en QEMU

GNU/Linux, OSX y FreeBSD son buenos sistemas operativos, pero a veces simplemente se necesita ejecutar programas de Windows. Esto se puede conseguir de diferentes maneras, por ejemplo:
* Wine ejecutará algunos programas de Windows directamente en Linux/OSX/*BSD
* Rdesktop permite un escritorio remote de Windows desde un ordenador que ejecute Linux/OSX/*BSD
* El arranque dual permite seleccionar cuál de los sistemas operativos instalados en el ordenador se ejecutara cuando se encienda éste
* QEMU permite ejecutar Windows como otro programa más desde Linux/OSX/*BSD
Las primeras tres opciones tiene algunas ventajas importantes, especialmente el rendimiento, pero no son siempre prácticas. Algunos programas de Windows no se ejecutan en Wine, o al menos no correctamente, rdesktop requiere tener acceso a otro ordenador que este ejecutando Windows; el arranque dual implica que no podrás ejecutar los programas de tu sistema operativo nativo mientras estás ejecutando Windows.
Si disponemos de una copia legitima licenciada de Windows XP Pro, podemos crear una imagen de QEMU y ejecutar Windows en nuestro ordenador con Linux/OSX/*BSD. NOTA: puede que no se pueda usar una copia OEM de Windows XP, ya que podría estar bloqueada para el hardware con el que vino (y no el hardware que QEMU está emulando).
Añadido por otro lector: No hay realmente mucha diferencia entre Windows OEM y Windows Retail (al por menor). La diferencia puede sorprender a algunos usuarios, pero en el fichero setup.ini que está en la carpeta i386 hay un pid, ese pid puede ser cambiado para convertir una copia retail en OEM o viceversa. OEM no está codificado a ningún hardware, pero las claves para OEM son diferentes. Yo tengo dos claves legales OEM y ningún disco, así es como lo descubrí, muchos usuarios se encuentran con este problema, porque los discos no siempre son entregados con el ordenador sino que habitualmente se copian a una carpeta y los usuarios tienden a perderlos debidos a problemas con el disco duro, o se olvidan de que están ahí y piden prestado un disco o se descarga una imagen .iso de Windows XP y comprueban que no pueden usar su contraseña. Realmente se puede, cambiando el pid. Así que creo que se podría usar Windows XP OEM al igual que la versión retail con QEMU. Ya que solo la diferencia es solo unos pocos números y letras en el fichero .ini
Nota a pie de página del lector: tenga en cuenta que algunos Windows OEM incluyen marcas de fabrica y algunos incluso tienen un conjunto de drivers muy limitado. Está menos limitado por el hardware que por la falta de soporte. Normalmente los drivers se pueden encontrar en las paginas web de los fabricantes.

## Crear una imagen

Las instrucciones de configuración básicas funcionan bien para crear una imagen básica de Windows XP para QEMU. Para hacer las cosas más sencillas, copie el disco de Windows XP a una imagen .iso de tal manera que se conectar de nuevo más fácilmente (por ejemplo para instalar componentes de red adicionales como un servidor IIS)
Tenga en cuenta que 3GB podría no ser suficiente, dependiente del software que se vaya a instalar en Windows, y no es fácil expandir una partición NTFS con software instalado en ella. Un mejor tamaño base seria 10 GB, de todas manera, con un poco de ajuste de la memoria virtual y la configuración de hibernación un Windows XP básico funcionara con 3GB. Guardar los ficheros de datos en Linux/unix y acceder a ellos a través de SAMBA también ayuda a reducir los requerimientos de ficheros de imágenes de QEMU más grades.

## Optimizar la imagen

Incluso con el modulo del kernel KVN, ejecutar Windows desde QEMU puede ser irritantemente lento. Mientras que el código puro se ejecuta rápidamente, llamadas del sistema que necesitan ser emuladas (especialmente a la tarjeta gráfica) pueden hacer que las cosas parezcan muy lentas y perezosas. Esto se puede mejorar fácilmente desactivando algunos de los adornos que Windows XP introdujo en la interfaz gráfica de usuario. Abrir las propiedades del sistema desde el panel de control, seleccionar la pestaña Opciones avanzadas y abrir la configuración de Rendimiento. Ver la imagen a la derecha para algunos ejemplos de configuración que se pueden desactivar para mejorar el rendimiento, o simplemente desactivarlos todos seleccionando "Ajustar para obtener el mejor rendimiento". NOTA: si nos conectamos a la imagen Windows XP usando RDP (escritorio remoto), estas opciones se escogerán por nosotros por defecto de todas maneras; RDP es probablemente la manera más rápida de obtener un escritorio de Windows XP visible en otros sistemas operativos, pero requiere algo de configuración de red (ver más abajo).
Ya que tenemos las propiedades del sistema abiertas, podríamos también desactivar Restaurar sistema. Esto consume algunos recursos, y probablemente podremos trabajar sin ello si mantenemos copias de seguridad de nuestras imágenes (siempre es buena idea!).
Otra cosa que probablemente no se necesite es Windows Update. Siempre se puede activar una actualización cuando se este preparado, así que ¿por qué dejar a Windows inicia la instalación mientras estamos intentando hacer algo en Windows desde QEMU? NOTA: si se va a navegar por internet desde la imagen de Windows XP, especialmente con internet explorer, es muy peligroso desactivar completamente Windows Update. Sería más seguro programar las actualizaciones para una hora concreta, o usar la opción "Descargar actualizaciones por mí, pero permitirme elegir cuándo instalarlas".
A no ser que se quiera probar hibernar / restaurar el sistema con algún software a medida, probablemente querremos deshabilitar la hibernación. Esto liberará algo de espacio en disco, tanto como RAM se haya reservado en QEMU (así que probablemente 256 MB o más). Cuando se trabaja con imágenes con el espacio de disco restringido, se agradece mucho recuperar algo de espacio..
Si se tienen diferentes imágenes de QEMU de Windows XP, por ejemplo para probar diferentes versiones de software o mantener distintos entornos de desarrollo, se puede mover el fichero de paginación de Windows a otra imagen de disco y compartirlo. NOTA: solo se puede compartir un fichero de paginación si solo se tiene una instancia de QEMU ejecutándose a la vez! Crear una imagen para el fichero de paginación con formato raw usando qemu-img, formatearlo a NTFS con Windows XP en QEMU y mover el fichero de paginación a la nueva unidad en las Propiedades del sistema.
Se podría querer ejecutar un antivirus en la imagen de Windows XP (¡y probablemente se debería!) Si es así, hay que recordar desactivar las actualizaciones automáticas para mejorar el tiempo de arranque. Solo recordar también ejecutar las actualizaciones de vez en cuando! NOTA: al igual que con Windows Update, deshabilitar completamente la característica de actualización automática de un antivirus es muy peligroso si se va a navegar por internet desde la imagen de Windows XP. Si el software ofrece una posibilidad de programar la actualización, sería más seguro configurar la programación a una hora en la que no moleste, en vez de confiar en nuestra memoria para recordar este cometido.

## Red

Si solo se van a usar los recursos de red externos a nuestro sistema operativo guest Windows XP, entontes no necesitaremos realizar nada especial para tener la red activada y funcionando. QEMU dará el modo de usuario de red por defecto, dando al sistema operativo guest acceso a TCP y UDP basado en la red a la que el host Linux/unix tiene acceso. Por defecto, Windows XP activará DHCP y así se asignará automáticamente una dirección IP por parte del servidor de DHCP virtual de QEMU (con una dirección a partir de 10.0.2.15)
Esta configuración dará acceso a internet desde el sistema operativo guest, y permitirá asignar unidades de Windows a recursos compartidos SAMBA en la red física o en el servidor virtual SAMBA de QEMU (10.0.2.4). Si se necesita comprobar páginas web en Internet Explorer, por ejemplo, se podrá navegar por ellas en internet, o escribiendo la dirección ip del host Linux/unix si se tienen alojadas localmente. Para acceder por nombre a los recursos de red nombrados sólo en los ficheros host, hay que editar el fichero local hosts en Windows:
Si se necesita acceder a recursos de red en el sistema operativo guest Windows XP desde el host Linux/unix, se necesita hacer un poco más de trabajo. La red en modo usuario muestra como configurar QEMU para redirigir puertos hacia el sistema operativo guest para la compartición de ficheros de Windows y servir páginas web. Si se quiere seguir manteniendo algunos sitios web con ASP, pero no se quiere abandonar la comodidad del escritorio Linux/unix y sus herramientas, se puede usar esta técnica para permitirnos montar un recurso compartido de Windows del sistema operativo guest de QEMU desde nuestro sistema operativo host. Solo hay que compartir la carpeta C:\inetpub\wwwroot\ con los permisos apropiados y estaremos listos.
Si se necesita una configuración de red más compleja con todos los puertos disponibles sin Redireccionamiento de puertos, se necesita entrar en las conexiones o interfaces TAP.