
En este intento de aproximación de ambas plataformas software (ya que las dos tienen en común que pueden ejecutarse sobre la plataforma hardware compatible Intel x86) existen básicamente dos filosofías: por una parte la ejecución de un sistema Windows completo mediante un programa de virtualización que crea lo que se llama una "máquina virtual hardware", y que simula una computadora completa por software, dentro de la cual se ejecuta un sistema operativo completo. De esta forma, puede ejecutarse Windows dentro de Linux o viceversa, o también jugar con otros sistemas operativos. Esta aproximación es la que utilizan programas como VMware o Bochs.
Por otra parte encontramos la posibilidad de ejecutar programas de Windows bajo Linux sin tener que ejecutar el sistema operativo de Microsoft al completo, traduciendo al instante (on the fly) las instrucciones dirigidas a la API de Windows (Application Program Interface, la capa que ejecuta las instrucciones que recibe desde el programa) desde el programa que estemos ejecutando, de forma que quien las ejecute finalmente sea la API de Linux. Ejemplos del uso de este método son el emulador WINE o el conjunto de librerías CrossOver Office.
David, el proyecto que ocupa estas líneas, sigue esta última tendencia. No se trata de un programa de virtualización que nos permite ejecutar Windows dentro de Linux, si no de un entorno que traduce las instrucciones que el programa intenta mandar a Windows para que sea Linux quien las acabe ejecutando.
Hace unos pocos días SpecOps (la compañía que fabrica a David) realizó una demostración pública de la efectividad de su invento, en la cual se consiguió instalar Office 2000, uno de los "huesos duros de roer", pero necesarios, en cualquier proyecto de ejecución de software Windows en Linux, ya que la compatibilidad con el Office de Microsoft es un elemento clave para luchar por la migración de los usuarios desktop, además de una especie de "Santo Grial" en el mundo de la informática, y la versión 2000 es compatible a nivel de formato de ficheros con las versiones superiores.
Según la misma SpecOps, David funcionará como un "middleware" (literalmente sería "software en medio") entre Linux y la aplicación Windows que intentemos ejecutar. Será independiente de la plataforma, y a largo plazo el proyecto de SpecOps es incrustar este software en un navegador web, de forma que podamos ejecutar nuestras aplicaciones Windows desde cualquier lugar de la red, simplemente con el acceso a un browser. De esta forma, conseguiríamos también una independencia total del sistema operativo instalado en nuestra máquina, y las computadoras solamente necesitarían el sistema mínimo para arrancar y cargar el navegador web en memoria. El sueño del NC (Network Computer) de Sun Microsystems hecho realidad...
El desarrollo de este software ha sido realizado mediante la llamada "ingeniería inversa", un proceso que analiza la forma en que se ejecutan los programas y la respuesta que da el núcleo del sistema a cada llamada de estos, para reescribir aproximadamente el software que se encarga de atender a las llamadas de los programas, con lo que acabamos teniendo un clon del núcleo que, si bien puede ser diferente en su interior, es (casi)idéntico en lo que se refiere a su respuesta ante los programas.
Más información:
Página web de SpecOps