Windows XP en Windows 7

No hace mucho tiempo se ha hecho pública una característica enormemente interesante que va a traer el nuevo Windows 7 y, como suele pasar a veces, los betatesters somos los últimos en enterarnos.

Algunas versiones de Windows 7 traerán una copia de Windows XP3 SP3 virtualizada mediante lo que será la nueva versión de Virtual PC, que supongo usará Hyper-V ya que sólo funcionará con los micros de última generación. Bueno, realmente no la traerá, sino que uno podrá bajársela de internet como si fuera un extra del Ultimate, lo que tampoco está mal, ya que si no lo quieres pues no lo usas ni gastas espacio de disco.

Los sitios de referencia sobre esta nueva característica, que ya estará presente en la inminente RC, son varios. Paul Thurrott se hace eco de ella aquí y aquí, así como los blogs de Windows 7 y otros.

Parece ser, por las pantallas vistas, que por fin Virtual PC traerá soporte para USB, con lo que una de las bazas de vmWare se pierde, ya que ninguna versión de virtualización de Microsoft ha traído soporte para ello, y muchos de nosotros usamos vmWare sólo porque trae USB virtualizado. De hecho, en mi caso, usando máquinas virtuales corriendo XP para poder tener dispositivos legados que no funcionan ni en Vista ni en 64 bits, así como tener separados ciertos programas que no pueden coexistir juntos, Virtual PC va sensiblemente más rápido que vmWare y se integra mejor, al menos en mi equipo. Y encima ayuda a mantener el ordenador relativamente limpio sin tener que instalar programas de terceros.

La otra baza es algo similar al Unity de vmWare, ya que las aplicaciones que lancemos desde el XP virtualizado podrán correr como si fueran nativas pero, según los pantallazos que he visto, con el decorado de ventanas de XP. Esperemos que funcione algo más rápido que el Unity.

No obstante, esto que parece tan bonito supone una seria patada en la boca a vmWare, supongo que no intencionada, pero cualquiera sabe. Me explico.

Tanto los productos de virtualización de Microsoft como los de vmWare, así como la mayoría de los demás, soportan el bit VT de los nuevos (y no tan nuevos) procesadores Intel y AMD. Siendo sincero no sé exactamente en qué ayuda dicho bit (es una tarea pendiente el averiguarlo, dentro de mi larga lista de tareas pendientes), pero según los expertos sí que lo hace, y no poco.

No obstante parece ser que hay algún tema de exclusividad sobre el mismo. Es decir, que si un programa de virtualización lo usa, otro ya no podrá hacerlo. De nuevo ignoro si es una limitación física o si se trata de que los productos actuales exigen su uso exclusivo porque sí, porque ellos lo valen, o como forma de intentar quitarse de en medio a la competencia, pero lo cierto es que Hyper-V se da de patatas con vmWare y lo mismo pasa con Virtual PC y los dos anteriores.

Si uno tiene abierta una máquina virtual de un tipo, y abre otra de otro tipo, instantes después tendrá una bonita pantalla azul que, con suerte sólo será eso: pantalla azul y reinicio, pero otras muchas significará la pérdida de parte del sistema de archivos y las menos, la ruptura completa del sistema operativo. Y esto no viene de terceras partes, viene de mi experiencia directa: hace un tiempo usaba indistintamente vmWare y Virtual PC, y a veces se me olvidaba que ya tenía lanzado un sistema en uno de ellos y lanzaba otro… cosa de la que me enteraba inmediatamente.

Hace un tiempo, cuando Tella y yo éramos amigos y el sol brillaba con más fuerza, estuve investigando de forma somera la posibilidad de que vmWare tuviera alguna opción oculta como petición del citado. No sé qué miró él, que supongo sería bastante más que yo y con mayor profundidad. Yo estuve aplicando algunas técnicas sencillas de ingeniería inversa sobre vmWare.

Cuando uno busca una opción oculta o no documentada, ya venga definida como un parámetro de entrada o como opción dentro de un fichero de configuración, una forma común es la de buscar cadenas de texto dentro del ejecutable. Uno abre con editor hexadecimal el ejecutable y sus satélites asociados y se dedica a buscar cadenas de texto. También puede usar un descompilador inteligente de código fuente y mirar el resultado en ensamblador. Y también puede obtener un snapshot de memoria en diferentes etapas de ejecución por si las cadenas estaban encriptadas o codificadas de alguna forma.

Otros métodos más avanzados son poner un trap en la apertura de ficheros, o en la llamada a las posibles rutinas del sistema operativo que tengan que ver con lo que buscamos, cosa que se puede averiguar fácilmente mirando las importaciones que hace el programa y luego hacer un backtracking hasta llegar al sitio que nos interesa. Y supongo que habrá más formas, como llamar al programador que lo hizo y preguntarle…

Bueno, pues yo estuve mirando las primeras y no encontré nada, así que podemos razonablemente suponer que vmWare no contempla la posibilidad de funcionar sin usar el bit VT, y más razonablemente todavía cuando Tella tampoco encontró la forma, con lo que es muy posible que nuestro flamante Windows 7 reviente cada vez que queramos usarlo con vmWare. Y digo posible porque quizás dicho bit no venga activado de serie, o se pueda desactivar desde el propio sistema operativo o desde el Virtual PC que traiga incorporado, o que simplemente permita el uso compartido entre diferentes software de virtualización…

No obstante, lo más cierto y evidente es que vmWare tenga que implementar algo y cambiar lo necesario para no quedarse atrás.

Actualización 26/04/09

Me comenta davidrec que a partir de la versión 6.5.1 de vmWare, si tenemos alguna otra máquina virtual de otro producto abierta, vmWare avisa de ello con un error, tal y como se muestra en la captura:

image

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *