martes, 25 de septiembre de 2007

[Artículo] WINE

Wine (acrónimo recursivo que en inglés significa Wine Is Not an Emulator "Wine no es un emulador") es una reimplementación de la API de Win16 y Win32 para sistemas operativos basados en Unix bajo plataformas Intel. Permite la ejecución de programas para MS-DOS, Windows 3.11, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000 y Windows XP. El nombre Wine empezó como un acrónimo para Windows Emulator, pero a lo largo de sus versiones fue evolucionando y ahora corre nativamente los programas para Windows.

Descripción

Wine provee lo siguiente:

* Un conjunto de herramientas de desarrollo para portar código fuente de aplicaciones Windows a Unix.
* Un cargador de programas, el cual permite que muchas aplicaciones para Windows 3.x/9X/ME/NT/2000/XP/Vista se ejecuten sin modificarse en varios Unix para plataformas Intel como GNU/Linux, BSD y Solaris.

Historia del Proyecto

El proyecto Wine comenzó en 1993 para programas del sistema "Microsoft Windows 3.11". El proyecto posiblemente se originó en discusiones en comp.os.linux, los programadores Eric Youngdale y Bob Amstadt crearon su primera versión. La razón por la cual Wine no es un emulador es que los emuladores tienden a duplicar el entorno completo en el que un programa vive, incluyendo la simulación de una arquitectura de procesador determinada. Wine, por el contrario, implementa lo que podría ser llamado una capa de compatibilidad, la cual provee alternativas a las bibliotecas de Windows.

A mediados del año 2002, ya se contaba con una aplicación con más de 1 millón de líneas de código diseñados en lenguaje C, además ésta aplicación, cuenta con un grupo de programación de más de 300 personas las cuales actúan como clave para el desarrollo de esta aplicación. Sin embargo, dada la complejidad del proyecto por los diferentes cambios que ocurren con las nuevas versiones de Windows, el proyecto no ha podido liberar aún la versión 1.0 El proyecto tuvo tiempos en los cuales no se avanzó lo suficiente, hasta que en el año 2003, aplicaciones muy utilizadas en el entorno Windows como Microsoft Office e Internet Explorer fueron posibles de utilizar en entornos Unix gracias a Wine.

El proyecto tiene una gran demanda de tiempo y posee grandes dificultades para los desarrolladores, o al menos en parte debido a la documentación incompleta de la API de Windows. A pesar de estar la mayoría de las funciones API Win32 correctamente documentadas, existen aún muchas áreas como formatos de archivos y protocolos para los cuales no existen especificaciones de Microsoft.

Hacia comienzos del 2003, Wine puede ejecutar muchos programas populares, como Lotus Notes y algunas versiones de Microsoft Office, con comportamientos y estabilidad variables. El éxito del funcionamiento de cada aplicación dependen del uso de bibliotecas dinámicas (DLL) de Windows.

La empresa de software Corel ha ayudado mucho al proyecto, empleando temporalmente a uno de los principales desarrolladores del proyecto, Alexandre Julliard, junto con muchos otros programadores secundarios. Esta ayuda fue motivada por el porte de la suite ofimática de Corel a Linux. Sin embargo, debido a dificultades económicas el apoyo de Corel ha cesado.

Otras organizaciones han hecho esfuerzos comerciales para apoyar el proyecto, incluyendo CodeWeavers, Linspire y TransGaming. CodeWeavers ha desarrollado una versión de Wine específicamente diseñada para ejecutar Microsoft Office y la comercializa bajo el nombre CrossOver Office. TransGaming produce una versión de Wine diseñada para ejecutar juegos de Windows. El desarrollo oficial de Wine está orientado hacia la correcta implementación de la API de Windows como un todo, y se encuentra un poco atrasado en estas áreas.

Otros proyectos que han incorporado código fuente de Wine son Rewind y ReactOS (un intento por construir un sistema operativo compatible con Windows NT)

Estado actual de WINE

De acuerdo a un estudio realizado en Internet por DesktopLinux.com [1] en 2006, la aplicación Wine es bastante usada con relación a las demás con una demanda de 33.5% de los encuestados, mientras que un 16.7% utiliza el VMware y apenas un 7% usa la aplicación CrossOver. En tanto la porción de la población que no utiliza ninguno fue de un 39%, lo que permite demostrar que cada día el uso de aplicaciones Windows bajo usuarios de plataformas libres es menos usual.

Es importante destacar que el uso de programas como el Wine, no se ve con un futuro cercano, debido a que cada día las aplicaciones bajo plataforma Windows crecen y por ende se debe correr bajo plataformas libres. Actualmente el proyecto Wine lanzó su nueva versión beta 0.9 la cual presenta mejoras con relación a las versiones alfa, de las cuales se puede mencionar un mejor soporte de Ratón en los juegos, aplicaciones con uso de librerías Open GL, manejo de nuevos estados en Direct3D y mejora del sistema de audio, entre otras grandes ventajas por lo que la convierte en una buena aplicación a la hora de ser seleccionada.

CARACTERÍSTICAS

Compatibilidad binaria

* Soporte para programas de la familia MS-DOS y Windows 3.x/9x/NT/XP/Vista.
* Soporte para llamadas de funciones de Windows de 32 y 16 bits.
* Código x86 de 32 y 16 bits.
* Extensas librerías de interrupciones para programas utilizando llamadas de modo real INTxx.
* Capacidades avanzadas de thunking.
* Posibilidad de usar librerías dinámicas(DLL).
* Diseño de ingeniería inversa para mejorar la solución frente a errores.

Gráficos

* Puede dibujar en entornos gráficos basados en X11, SDL texto/ttydrv.
* Pantalla remota para cualquier terminal X.
* Soporte total de GDI y parcial GDI32.
* Soporte parcial de DirectX para juegos.
* Puede utilizar impresoras para sistemas Windows de 16 bits de forma nativa.
* Interfaz interna de impresión PostScript.
* Capacidad de meta-archivo.
* Capacidad de ejecución en una o varias ventanas.

Otras características

* Soporte aceptable de sonido y entradas alternativas.
* Soporte de modems o dispositivos por puerto serie.
* Trabajo en red con Winsock TCP/IP.
* Soporte de escáneres ASPI.
* Soporte de controles avanzados típicos de programas Windows de 32 bits.

Wine API

* Diseñado para ser compatible con código para Windows de 32 bits.
* Programas de muestra.
* Documentación generada automáticamente de las API.
* Compilador fuente de 32 bits.
* Capacidad parcial de codificación Unicode.
* Internacionalización: Wine está disponible en 16 lenguas.
* Depurador integrado y mensajes de rastreo configurables.

No hay comentarios: