Wabi (software)

From Wikipedia, the free encyclopedia
Wabi
Developer(s)Sun Microsystems
Operating systemSolaris, AIX, Linux

Wabi is a discontinued commercial software application from Sun Microsystems that implements the Windows Win16 API specification on Solaris and AIX; a version for Linux was also released by Caldera. Wabi runs applications developed for Windows 3.1, Windows 3.11, and Windows for Workgroups.

History[edit]

The technology was originally developed by Praxsys Technologies as the result of discussions in 1990 with Interactive Systems Corporation. The assets of Praxsys were acquired by Sun in the fall of 1992.[1] Originally referenced in publicity as WABI, short for Windows Application Binary Interface,[2][3] the product was eventually known as Wabi, reportedly to avoid trademark issues.[4] Another connotation given to the name is its meaning in Japanese aesthetics, given as "quiet taste" in SunSoft's own literature, with the original WABI acronym being acknowledged as "a fair description of what Wabi is".[5]: 1 

Originally demonstrated by SunSelect, a division of Sun Microsystems, at the 1992 Fall Comdex show, the product was described as leveraging the Windows API to be able to "separate the software from the hardware", allowing RISC workstation vendors such as Sun to provide greater performance running Windows applications than such applications exhibited on conventional Intel-based personal computers. This use of the Windows API meant that Wabi was not able to run DOS applications, unlike other solutions such as the company's existing SunPC product based on technology licensed from SoftPC creator Insignia Solutions.[2]

Announced in May 1993, Wabi was to be offered at no cost to Solaris purchasers during that year.[3] Later in 1993, IBM obtained the right to offer the software on its own RS/6000 workstation range in exchange for granting Sun access to "certain IBM technology to enhance WABI further".[6] Sun announced Wabi 1.1 in April 1994, having shipped only 30,000 copies of Wabi 1.0. Offering "significantly enhanced stability and reliability" over the previous version, Hewlett-Packard and IBM were also to provide the updated software on their own systems. Wabi 2.0 was promised as a further upgrade in the summer of 1994, supporting a larger number of certified applications than the 13 titles of the original release.[7]

By late 1994, Sun had reported shipping 100,000 copies of Wabi bundled at no extra cost with Solaris 2. Meanwhile, HP and IBM offered the product as an optional extra, charging $395.00 and $249.00 respectively.[8] Wabi 2.0 eventually broadened this application support to 24 titles, these reportedly accounting for "over 80 percent of the commercial Windows applications market".[9]

Sun improved the product and released Wabi 2.1 in 1995, introducing multimedia capabilities such as the handling of audio and video, as well as ODBC support in Windows applications. Alongside this, Sun upgraded its version of Merge, offered to run DOS applications, announced a deal with Merge's creator, Locus Computing Corporation, for continued development of that product, and introduced a faster CPU in its SunPC expansion card. The company indicated that with the introduction of Windows 95, anticipating that sufficient demand for Windows 95 applications would be met with an updated version of Wabi supporting such applications within a year of the release of Windows 95.[10] Sun also introduced WabiServer, providing a means of running Windows applications in Wabi on a server, with clients accessing those applications over a network. This permitted X terminals and low-end SPARC systems, including those running SunOS, to take advantage of the software.[11]

Wabi 2.2 was licensed from SunSoft by Caldera in 1996 as part of that company's Linux strategy,[12] and sold as a product for various Linux distributions.[13] Caldera also licensed Merge for running DOS applications.[citation needed] Wabi development was discontinued in December 1997,[14] with only "sustaining engineering" being performed beyond this date. Wabi 2.2 revision E was the final Sun-issued version of the product, available only for Solaris 2.6.[15]

Other solutions sought to provide similar functionality to Wabi. The Willows Toolkit, previously known as TWIN APIW, provided the Willows Application Programming Interface (WAPI) consisting of a Willows Binary Interface capable of hosting existing Windows applications, the Willows Library implementing the Windows API, and the Willows Driver implementing three functional subsystems performing window management, graphical operations, and access to native system functionality.[16] Wine was also already in development at the time of Wabi's discontinuation, although both Wine and the Willows Toolkit were unable to provide a similar level of experience to that delivered by Wabi at that point in time.[17]

Features[edit]

In its initial form, Wabi was intended to be able to run certified applications, these having been tested to establish correct operation, without any need for any Windows software.[4] However, Wabi 2.0 explicitly supported Windows 3.1 itself as a certified application, and an installation of Windows was reported as a helpful measure in addressing the shortcomings of previous versions of the software.[9] Wabi 2.1 added support for Windows for Workgroups 3.11.[5]: 114 

To support programs written for the Windows API, Wabi provides library routines for published or documented API calls that perform the equivalent work in the host environment, this being Solaris in the version of the product for Sun's own workstations.[18] In contrast to other approaches, notably Insignia's SoftWindows and related products, hosted applications employ native software components, resulting in Windows applications appearing in their own windows within the X Window System environment, as opposed to appearing in a Windows desktop session confined to a single native window.[19]

Wabi implements the lowest layers of the Windows environment in the form of the user.dll, kernel.dll, and gdi.dll libraries. All other Windows dlls depend on these three modules, so cloning this functionality allows Windows software to execute correctly on a foreign host system. This approach, as opposed to a full replacement, was thought by the engineering team to be the only rational methodology for success given both the size of Microsoft's ever-expanding efforts and the difficulties of the emulation being precise enough to run commercial software.[20]

Wabi was released for Solaris SPARC, x86 and PowerPC systems,[21] as well as on PowerPC systems running AIX,[22] and PA-RISC systems running HP-UX.[23] To run an x86 Windows environment on SPARC systems, a code translation layer dynamically converts x86 instructions upon first use into SPARC instructions.[20]

Standardization attempt[edit]

Since Wabi implemented and thus depended on the usage of "published, well-known" Windows API calls by applications, it remained sensitive to instances of undocumented API usage by applications with "intimate knowledge of the Windows environment" that would refuse to run correctly.[18] Despite the use of techniques that accelerated Windows applications when run under Wabi when comparing a Solaris on Intel system with one running Windows on identical hardware,[19] users reported that application performance varied, with some applications performing too slowly.[7]

Meanwhile, an impression had been established that undocumented Windows calls were being exploited by application developers, Microsoft in particular, to gain a form of competitive advantage. Indeed, in response to claims to this effect, prompted by the publication of a book, Undocumented Windows, Microsoft confirmed that its own applications did use such calls, claiming that since such practices were widespread, no advantage had been gained.[24] Following industry experience with the DOS API as a de-facto standard, with multiple implementations and supported by multiple environments, and with efforts such as Wabi seeking to support the Windows API across multiple environments, an argument was made for considering both DOS and Windows, or at least their APIs, as "sufficiently generic, and sufficiently important, to deserve something like ANSI standards committees".[25]

In conjunction with its development of the Wabi software, Sun initiated the Public Windows Interface effort to create such a public standard, enlisting several other companies including systems vendors such as IBM, ICL and Toshiba, operating systems vendors such as SCO and Unix System Laboratories, and application developers such as Corel and WordPerfect Corporation. Sun's Scott McNealy claimed that Sun had effectively "documented the Windows API for Microsoft", submitting it to X/Open for consideration as an industry standard.[26] Developed from public specifications and maintained by an international standards organisation, such a standard was regarded as being free from the assertion of Microsoft's copyright and patents.[27]

Sun had reportedly but unsuccessfully sought some form of licensing arrangement with Microsoft for access to Windows technologies in early 1993.[28] Microsoft's Bill Gates claimed in response to Sun's initiative that the same information was already available in "a $9 book at the local bookstore", nevertheless considering a legal response after reviewing the released Wabi product.[29] In response to the threat of this initiative and Wabi, Microsoft "launched a preemptive strike" by licensing Windows source code to Insignia Solutions, leading to the release of its SoftWindows product.[19] This was part of a broader licensing effort seeking to appeal to selected companies looking to run Windows solutions on Unix systems.[26]

Despite Sun's contention that there was no intellectual property breach, the Public Windows Interface effort was obstructed by Microsoft lobbying directed towards various standards bodies, effectively curtailing this standardisation attempt.[30]

See also[edit]

References[edit]

  1. ^ "Short takes". Computerworld. 21 September 1992. p. 16. Retrieved 5 May 2024.
  2. ^ a b Andrews, Dave (February 1993). "SunSelect Intrigues with WABI for Unix". Byte. p. 36. Retrieved 5 May 2024.
  3. ^ a b Bozman, Jean S. (3 May 1993). "Sun opens Unix to Windows apps". Computerworld. pp. 1, 10. Retrieved 5 May 2024.
  4. ^ a b Alsop, Stewart (24 May 1993). "Brace yourself for the next generation of desktop operating systems". InfoWorld. p. 4. Retrieved 5 May 2024.
  5. ^ a b Fordin, Scott; Nolin, Susan (1996). Wabi 2 Opening Windows. SunSoft Press. ISBN 0-13-461617-0. Retrieved 6 May 2024.
  6. ^ "IBM Licences SunSelect's WABI Technology". The Computer Paper. October 1993. p. 56. Retrieved 5 May 2024.
  7. ^ a b Bozman, Jean S. (11 April 1994). "SunSoft bridges gap with Solaris 2.4". Computerworld. p. 16. Retrieved 5 May 2024.
  8. ^ Bozman, Jean S. (19 September 1994). "Wabi gets 'interface-lift' to enhance user appeal". Computerworld. pp. 49, 53. Retrieved 9 May 2024.
  9. ^ a b Tamasanis, Doug (July 1995). "A Less Wobbly Wabi". Byte. pp. 159–160. Retrieved 5 May 2024.
  10. ^ "A better Wabi, SunPC". SunWorld Online. 27 June 1995. Retrieved 9 May 2024.
  11. ^ "82.10: SunSoft Expands WABI Line With New Server Product" (Press release). Sun Microsystems. October 1995. Retrieved 9 May 2024.
  12. ^ "Caldera Licenses Wabi for Windows Apps on Linux". Tech Monitor. 6 March 1996. Retrieved 7 May 2024.
  13. ^ Johnson, Dwight L. (1 June 1997). "Wabi: Caldera's Solution for Windows Applications". Linux Journal. Retrieved 7 May 2024.
  14. ^ Holve, Michael (3 December 1997). "WABI v2.2 for Linux by Caldera". Everything Linux. Retrieved 7 May 2024.
  15. ^ "The Future of Wabi". Sum Microsystems. 1998. Retrieved 9 May 2024.
  16. ^ "The Willows Toolkit Technical White Paper". Willows Software. 5 December 1998. Retrieved 7 May 2024.
  17. ^ Diedrich, Oliver (July 1998). "Shaky Bridges". c't. p. 170. Retrieved 7 May 2024.
  18. ^ a b Nance, Barry (November 1995). "Sincere OS Flattery". Byte. pp. 119–120, 122. Retrieved 5 May 2024.
  19. ^ a b c Hayes, Frank (January 1994). "SunSelect's Wabi vs. Insignia Solutions' SoftWindows". Byte. pp. 156–157. Retrieved 5 May 2024.
  20. ^ a b Hohensee, Paul; Myszewski, Mat; Reese, David (August 1996). "Wabi Cpu Emulation" (PDF). Hot Chips VIII. Retrieved 6 July 2021.
  21. ^ "Running Wabi on 24-bit video displays". Inside Solaris. Vol. 4, no. 3. The Cobb Group. March 1998. pp. 14–15. ISSN 1081-3314. Retrieved 9 May 2024.
  22. ^ "Wabi 1.1 for AIX".
  23. ^ Pollace, Michelle (March 1994). "Product Focus". hp-ux/usr. pp. 60–61. Retrieved 9 May 2024.
  24. ^ Karnes, Clifton (December 1992). "Editorial License". Compute!. p. 4. Retrieved 5 May 2024.
  25. ^ Schulman, Andrew; Brown, Ralf; Maxey, David; Michels, Raymond J.; Kyle, Jim (1993). Undocumented DOS (2 ed.). Addison-Wesley. p. 179. Retrieved 5 May 2024.
  26. ^ a b Paul, Fredric (17 May 1993). "Vendors port Windows, Mac apps to Unix platforms". Network World. pp. 15–16. Retrieved 6 May 2024.
  27. ^ Hines, John R. (July 1993). "Windows API: private or public property". IEEE Spectrum. p. 17. Retrieved 6 May 2024.
  28. ^ Hess, Robert (10 May 1993). "APIs jumping across platforms". MacWEEK. pp. 1, 107. Retrieved 5 May 2024.
  29. ^ Johnson, Maryfran (November 1993). "Warring Over Windows". Computerworld Client/Server Journal. Vol. 1, no. 1. pp. 42–45. Retrieved 6 May 2024.
  30. ^ Fellows, William (6 May 1999). "Sun Uses ECMA as Path to ISO Java Standardization". Tech Monitor. Retrieved 6 May 2024.

External links[edit]