¿Por qué no puede WINE ejecutar sin problemas todas las aplicaciones de Windows?

El sistema operativo de Microsoft y las bibliotecas de API relacionadas fueron desarrollados por una de las compañías de software más grandes de la historia, durante un período de 30 años. Eso es un montón de años de ingeniero de trabajo. Esto cubre las plataformas de 16 bits, 32 bits y 64 bits, y muchas revisiones de las API, algunas de las cuales no están documentadas y con errores.

El proyecto WINE fue desarrollado por un número relativamente pequeño de personas. Al observar el historial de confirmaciones en openhub.net, podemos ver que casi la mitad del trabajo en WINE fue realizado por solo nueve desarrolladores individuales (esto es típico para muchos proyectos de código abierto, el grupo principal es pequeño, mientras que un gran número de otros desarrolladores contribuyen con pequeños cambios).

No es práctico para un grupo tan pequeño de desarrolladores desarrollar y probar un proyecto que duplica el trabajo de miles de ingenieros de Microsoft.

Del artículo de Wikipedia Wine (software):

El proyecto ha demostrado ser lento y difícil para los desarrolladores, principalmente debido a la documentación incompleta e incorrecta de la API de Windows. Mientras que Microsoft documenta extensamente la mayoría de las funciones de Win32, algunas áreas como los formatos de archivos y protocolos no tienen especificaciones disponibles públicamente de Microsoft. Microsoft Windows también incluye funciones de bajo nivel indocumentadas, comportamiento no documentado y errores desconocidos que Wine debe duplicar con precisión para permitir que algunas aplicaciones funcionen correctamente.

La API de Windows está protegida por derechos de autor. También es exclusivo del sistema operativo Windows, ya que depende de que todos los sistemas principales de Windows estén presentes. Además, se actualiza constantemente con el fin de introducir nuevas características y soluciones de seguridad. Esto significa que la API de Windows es un objetivo peligroso, meticuloso y en movimiento .

Para evitar el riesgo de los derechos de autor, todo el equipo de Wine puede trabajar con las llamadas API documentadas y solo con las llamadas (no con el código que usan las llamadas). No pueden acceder al código fuente de Microsoft. No pueden descompilar, desensamblar ni analizar los archivos de Windows directamente. Simplemente tienen que volver a crear las llamadas a la API de Windows utilizando solo el código original. Este es un proceso muy lento y meticuloso, mucho más lento y más laborioso que para que Microsoft elaborara estos procesos por sí mismo.

Para que el proceso sea aún más lento y más minucioso, la API de Windows depende del sistema operativo subyacente de Windows. Dado que Wine intenta replicar llamadas de Windows para que se ejecuten en un sistema operativo compatible con POSIX, las llamadas deben escribirse cuidadosamente para que las llamadas de Windows se conviertan en llamadas POSIX sin perder ninguna característica proporcionada por la API original de Windows. Este es un proceso muy lento y minucioso, mucho más lento y más laborioso que Microsoft haya conectado estas API a su sistema operativo insignia.

Todo este trabajo lento y meticuloso significa que la API de Windows está avanzando mucho más rápido que Wine, ya que no tienen que seguir a nadie más; hacen su código desde cero. Pueden definir qué son las llamadas API, y pueden decidir cómo funcionan y qué hacen. Wine, por otro lado, tiene que duplicar los efectos de las llamadas a la API de Windows, a la vez que evita el riesgo de duplicar su código (lo que haría que caiga en agua caliente). Como el proceso ya es lento y minucioso, y dado que solo pueden seguir a Microsoft (para mantenerse compatibles), Microsoft siempre estará a la vanguardia del proyecto Wine. Todo lo que el proyecto Wine puede hacer es seguir trabajando y enfocarse en formas de garantizar que los programas específicos funcionen lo suficientemente bien como para que se puedan utilizar.

WINE no es exactamente un Emulador de Windows completo. Pero ayuda a ejecutar aplicaciones básicas basadas en Windows. Sin embargo, no recomiendo instalar WINE y esperar ejecutar Photoshop o Microsoft Office sin problemas.

Las aplicaciones de Wine no se integran correctamente con el sistema operativo. Es mejor encontrar la contraparte de Linux y aprender a usarla.

Incluso las ventanas no pueden ejecutar perfectamente todas las aplicaciones de Windows. 😀 – especialmente para aplicaciones que necesitan compatibilidad. Incluso en mi trabajo, tenemos que habilitar la compatibilidad en algunas aplicaciones para que podamos usarla.

La biblioteca utilizada por Windows generalmente está cerrada, por lo que se necesitan muchas pruebas e ingeniería inversa para duplicar lo que hace una DLL o una llamada al sistema. Lo bueno es que los desarrolladores no funcionan en una sola aplicación, generalmente trabajan en una DLL para que todas las aplicaciones que la usan puedan beneficiarse de ella.

Solo un FYI. He visto juegos que funcionan mejor con el vino. Solo el reciente Sc2 lotv. El juego funciona muy bien en el vino, pero lo que noto, CPU temp en Windows 8.1 spikes, no ocurre en Ubuntu 14.04. Además, tengo una conexión de 100mbps en mi casa. Por alguna razón, Battle.net en el vino maximiza mi conexión mientras que en Windows 8.1 está limitado a 4Mbps. Busqué en Google e intenté varias soluciones para evitar que Battle.net tenga un tope, pero no puedo encontrar una solución. Battle.net en el vino acaba de llegar a la máxima conexión en la primera descarga.

Wine admite solo una cierta cantidad de aplicaciones de Windows.

Puede consultar su base de datos aquí: WineHQ – Wine Application Database