Wabi es una aplicación de software comercial discontinuada de Sun Microsystems que implementa la especificación API de Windows Win16 . Wabi ejecuta aplicaciones desarrolladas para Windows 3.1 , Windows 3.11 y Windows para Trabajo en Grupo , interpretando y traduciendo instrucciones x86 cuando corresponde, pero sin brindar compatibilidad con emulación para hardware de PC o DOS .
Wabi se lanzó originalmente para Solaris , y luego se lanzaron versiones para AIX , HP-UX y SCO OpenServer . Caldera también lanzó una versión para Linux .
La tecnología fue desarrollada originalmente por Praxsys Technologies como resultado de las discusiones en 1990 con Interactive Systems Corporation . Los activos de Praxsys fueron adquiridos por Sun en el otoño de 1992. [1] Originalmente mencionado en la publicidad como WABI, abreviatura de Windows Application Binary Interface, [2] [3] el producto finalmente fue conocido como Wabi, supuestamente para evitar problemas de marca registrada. [4] Otra connotación dada al nombre es su significado en la estética japonesa , dado como "gusto tranquilo" en la propia literatura de SunSoft, con el acrónimo original WABI siendo reconocido como "una descripción justa de lo que es Wabi". [5] : 1
Originalmente presentado por SunSelect, una división de Sun Microsystems, en la feria Comdex de otoño de 1992, el producto se describía como un sistema que aprovechaba la API de Windows para poder "separar el software del hardware", lo que permitía a los proveedores de estaciones de trabajo RISC como Sun ofrecer un mayor rendimiento al ejecutar aplicaciones de Windows que el que se ofrecía en los ordenadores personales convencionales basados en Intel. Este uso de la API de Windows significaba que Wabi no podía ejecutar aplicaciones DOS, a diferencia de otras soluciones como el producto SunPC existente de la empresa basado en tecnología licenciada por Insignia Solutions, el creador de SoftPC . [2]
Anunciado en mayo de 1993, Wabi iba a ser ofrecido sin costo alguno para los compradores de Solaris durante ese año. [3] Más tarde en 1993, IBM obtuvo el derecho de ofrecer el software en su propia gama de estaciones de trabajo RS/6000 a cambio de conceder a Sun acceso a "cierta tecnología de IBM para mejorar WABI aún más". [6] Sun anunció Wabi 1.1 en abril de 1994, habiendo enviado sólo 30.000 copias de Wabi 1.0. Ofreciendo "estabilidad y confiabilidad significativamente mejoradas" con respecto a la versión anterior, Hewlett-Packard e IBM también iban a proporcionar el software actualizado en sus propios sistemas. Wabi 2.0 fue prometido como una actualización adicional en el verano de 1994, admitiendo un mayor número de aplicaciones certificadas que los 13 títulos de la versión original. [7]
A finales de 1994, Sun había informado de que había enviado 100.000 copias de Wabi incluidas sin coste adicional con Solaris 2. Mientras tanto, HP e IBM ofrecían el producto como un extra opcional, cobrando 395 y 249 dólares respectivamente. [8] Wabi 2.0 acabó ampliando el soporte de aplicaciones a 24 títulos, que supuestamente representaban "más del 80 por ciento del mercado de aplicaciones comerciales de Windows". [9] SCO también ofrecía Wabi como una opción para sus productos OpenServer Release 5, [10] específicamente Wabi 2.0. [11]
Sun mejoró aún más el producto y lanzó Wabi 2.1 en 1995, introduciendo capacidades multimedia como el manejo de audio y video, así como soporte ODBC en aplicaciones Windows. Junto con esto, Sun actualizó su versión de Merge , se ofreció a ejecutar aplicaciones DOS, anunció un acuerdo con el creador de Merge, Locus Computing Corporation, para continuar el desarrollo de ese producto e introdujo una CPU más rápida en su tarjeta de expansión SunPC . La compañía indicó que con la introducción de Windows 95 , anticipando que se cumpliría una demanda suficiente de aplicaciones de Windows 95 con una versión actualizada de Wabi que admitiera dichas aplicaciones dentro de un año desde el lanzamiento de Windows 95. [12] Sun también presentó WabiServer, proporcionando un medio para ejecutar aplicaciones de Windows en Wabi en un servidor, con clientes accediendo a esas aplicaciones a través de una red. Esto permitió que los terminales X y los sistemas SPARC de gama baja, incluidos los que ejecutaban SunOS , aprovecharan el software. [13]
Wabi 2.2 fue licenciado por SunSoft por Caldera en 1996 como parte de la estrategia Linux de esa compañía , [14] lanzando el software en noviembre de ese año, [15] siendo vendido como un producto para varias distribuciones Linux. [16] El desarrollo de Wabi fue interrumpido en diciembre de 1997, [17] y sólo se realizó "ingeniería de mantenimiento" después de esta fecha. Wabi 2.2 revisión E fue la versión final del producto emitida por Sun, disponible sólo para Solaris 2.6. [18]
Otras soluciones buscaban proporcionar una funcionalidad similar a la de Wabi. El kit de herramientas Willows, anteriormente conocido como TWIN APIW, proporcionaba la interfaz de programación de aplicaciones Willows (WAPI), que consistía en una interfaz binaria Willows capaz de alojar aplicaciones de Windows existentes, la biblioteca Willows que implementaba la API de Windows y el controlador Willows que implementaba tres subsistemas funcionales que realizaban la gestión de ventanas, operaciones gráficas y acceso a la funcionalidad nativa del sistema. [19] Wine también estaba en desarrollo en el momento de la discontinuación de Wabi, aunque tanto Wine como el kit de herramientas Willows no pudieron proporcionar un nivel de experiencia similar al que ofrecía Wabi en ese momento. [20]
En su forma inicial, Wabi fue pensado para poder ejecutar aplicaciones certificadas, las cuales habían sido probadas para establecer su correcto funcionamiento, sin necesidad de ningún software de Windows. [4] Sin embargo, Wabi 2.0 admitía explícitamente Windows 3.1 como una aplicación certificada, y se informó que la instalación de Windows era una medida útil para abordar las deficiencias de las versiones anteriores del software. [9] Wabi 2.1 agregó soporte para Windows for Workgroups 3.11. [5] : 114
Para dar soporte a los programas escritos para la API de Windows, Wabi proporciona rutinas de biblioteca para llamadas a API publicadas o documentadas que realizan el trabajo equivalente en el entorno host, siendo este Solaris en la versión del producto para las propias estaciones de trabajo de Sun. [21] A diferencia de otros enfoques, en particular SoftWindows de Insignia y productos relacionados, las aplicaciones alojadas emplean componentes de software nativos, lo que da como resultado que las aplicaciones de Windows aparezcan en sus propias ventanas dentro del entorno del sistema X Window, en lugar de aparecer en una sesión de escritorio de Windows confinada a una sola ventana nativa. [22]
Wabi implementa las capas más bajas del entorno Windows en forma de las bibliotecas user.dll, kernel.dll y gdi.dll. Todas las demás DLL de Windows dependen de estos tres módulos, por lo que clonar esta funcionalidad permite que el software de Windows se ejecute correctamente en un sistema host externo. El equipo de ingeniería pensó que este enfoque, en lugar de un reemplazo completo, era la única metodología racional para el éxito, dada la magnitud de los esfuerzos cada vez mayores de Microsoft y las dificultades para que la emulación fuera lo suficientemente precisa como para ejecutar software comercial. [23]
Wabi fue lanzado para sistemas Solaris SPARC , x86 y PowerPC , [24] así como en sistemas PowerPC que ejecutan AIX , [25] sistemas PA-RISC que ejecutan HP-UX , [26] y en sistemas x86 y SPARC que ejecutan Linux. [16] Para ejecutar un entorno Windows x86 en SPARC y otros sistemas RISC, una capa de traducción de código convierte dinámicamente las instrucciones x86 en el primer uso en instrucciones SPARC u otras instrucciones nativas. [23]
Wabi no proporciona emulación de hardware de DOS ni de PC, pero la versión del software de Caldera permitía el uso de un emulador de DOS, proporcionado por el paquete DOSEMU , para permitir que el Administrador de programas de Windows iniciara una sesión de comandos de DOS desde su icono de símbolo del sistema de MS-DOS . [27]
Dado que Wabi implementó y, por lo tanto, dependió del uso de llamadas API de Windows "publicadas y conocidas" por parte de las aplicaciones, siguió siendo sensible a instancias de uso de API no documentado por parte de aplicaciones con "conocimiento íntimo del entorno de Windows" que se negarían a ejecutarse correctamente. [21] A pesar del uso de técnicas que aceleraban las aplicaciones de Windows cuando se ejecutaban con Wabi, al comparar un Solaris en un sistema Intel con uno que ejecutaba Windows en un hardware idéntico, [22] los usuarios informaron que el rendimiento de las aplicaciones variaba y que algunas aplicaciones funcionaban demasiado lentamente. [7]
Mientras tanto, se había establecido una impresión de que los desarrolladores de aplicaciones, Microsoft en particular, estaban explotando las llamadas no documentadas de Windows para obtener algún tipo de ventaja competitiva. De hecho, en respuesta a las afirmaciones en este sentido, impulsadas por la publicación de un libro, Undocumented Windows , Microsoft confirmó que sus propias aplicaciones sí utilizaban dichas llamadas, alegando que, dado que tales prácticas estaban muy extendidas, no se había obtenido ninguna ventaja. [28] Tras la experiencia de la industria con la API de DOS como estándar de facto, con múltiples implementaciones y compatible con múltiples entornos, y con esfuerzos como Wabi que buscaban dar soporte a la API de Windows en múltiples entornos, se presentó un argumento a favor de considerar tanto a DOS como a Windows, o al menos a sus API, como "suficientemente genéricos y suficientemente importantes como para merecer algo así como comités de estándares ANSI". [29]
Junto con el desarrollo del software Wabi, Sun inició el esfuerzo de la Interfaz Pública de Windows para crear un estándar público, en el que se involucraron otras empresas, entre ellas proveedores de sistemas como IBM, ICL y Toshiba, proveedores de sistemas operativos como SCO y Unix System Laboratories, y desarrolladores de aplicaciones como Corel y WordPerfect Corporation. Scott McNealy , de Sun , afirmó que Sun había "documentado efectivamente la API de Windows para Microsoft", presentándola a X/Open para su consideración como estándar de la industria. [30] Desarrollada a partir de especificaciones públicas y mantenida por una organización de estándares internacionales, se consideraba que un estándar de este tipo estaba libre de la afirmación de los derechos de autor y patentes de Microsoft. [31]
Sun había intentado, sin éxito, llegar a algún tipo de acuerdo de licencia con Microsoft para acceder a las tecnologías de Windows a principios de 1993. [32] Bill Gates , de Microsoft, afirmó en respuesta a la iniciativa de Sun que la misma información ya estaba disponible en "un libro de 9 dólares en la librería local", aunque consideró una respuesta legal después de revisar el producto Wabi lanzado. [33] En respuesta a la amenaza de esta iniciativa y de Wabi, Microsoft "lanzó un ataque preventivo" otorgando licencias de código fuente de Windows a Insignia Solutions, lo que llevó al lanzamiento de su producto SoftWindows. [22] Esto fue parte de un esfuerzo de licencia más amplio que buscaba atraer a empresas seleccionadas que buscaban ejecutar soluciones de Windows en sistemas Unix. [30]
A pesar de la afirmación de Sun de que no hubo violación de propiedad intelectual , el esfuerzo por crear la Interfaz Pública de Windows fue obstruido por el cabildeo de Microsoft dirigido hacia varios organismos de normalización, lo que efectivamente restringió este intento de estandarización. [34]