Wabi (software)

Last updated
Wabi
Developer(s) Sun Microsystems
Operating system Solaris, 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 Systems. Wabi runs applications developed for Windows 3.1, Windows 3.11, and Windows for Workgroups.

Contents

History

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. The name "Wabi" was chosen for two reasons: its meaning in Japanese of balance or harmony, which conjured the notion of a more peaceful coexistence between Windows and Unix software; and, the more obvious implication of it standing for Windows Application Binary Interface, although before its release Sun declared that the name was not an acronym.

Wabi 2.2B was licensed by Caldera for Linux, [1] together with the also licensed Merge.

Wabi development was discontinued in December 1997.

Features

Wabi requires a licensed Windows 3.x installation, unlike similar software that endeavors to implement the entire Windows API, such as Wine or select versions of OS/2. 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.

Wabi was released for x86 and SPARC systems, and on PowerPC for AIX. [2] To run an x86 Windows environment on SPARC systems, a code translation layer dynamically converts x86 instructions upon first use into SPARC instructions. [3]

Standardization attempt

In conjunction with its development of the Wabi software, Sun initiated an effort to create an ISO standard, non-proprietary definition of the Windows API. The Public Windows Interface (PWI) was intended to define a public standard to help Sun and other companies clone the Windows environment (such as Willows TWIN, [4] another LGPL implementation of the API [5] ), but despite Sun's contention that there was no intellectual property breach, this effort was lobbied against at ISO by Microsoft, being rejected in 1996. [6]

See also

Related Research Articles

<span class="mw-page-title-main">Cygwin</span> Unix subsystem for Windows machines

Cygwin is a Unix-like environment and command-line interface for Microsoft Windows.

<span class="mw-page-title-main">Wine (software)</span> Windows compatibility software

Wine is a free and open-source compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Developers can compile Windows applications against WineLib to help port them to Unix-like systems. Wine is predominantly written using black-box testing reverse-engineering, to avoid copyright issues. No code emulation or virtualization occurs. Wine is primarily developed for Linux and macOS.

<span class="mw-page-title-main">Oracle Solaris</span> Unix operating system originally developed by Sun Microsystems

Solaris is a proprietary Unix operating system originally developed by Sun Microsystems. After the Sun acquisition by Oracle in 2010, it was renamed Oracle Solaris.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running.

In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, address buses, or data buses of that size. A computer that uses such a processor is a 64-bit computer.

In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

Virtual DOS machines (VDM) refer to a technology that allows running 16-bit/32-bit DOS and 16-bit Windows programs when there is already another operating system running and controlling the hardware.

In computer security, executable-space protection marks memory regions as non-executable, such that an attempt to execute machine code in these regions will cause an exception. It makes use of hardware features such as the NX bit, or in some cases software emulation of those features. However, technologies that emulate or supply an NX bit will usually impose a measurable overhead while using a hardware-supplied NX bit imposes no measurable overhead.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

Binary-code compatibility is a property of a computer system, meaning that it can run the same executable code, typically machine code for a general-purpose computer Central processing unit (CPU), that another computer system can run. Source-code compatibility, on the other hand, means that recompilation or interpretation is necessary before the program can be run on the compatible system.

In computing on Microsoft platforms, WoW64 is a subsystem of the Windows operating system capable of running 32-bit applications on 64-bit Windows. It is included in all 64-bit versions of Windows, except in Windows Server Server Core where it is an optional component, and Windows Nano Server where it is not included. WoW64 aims to take care of many of the differences between 32-bit Windows and 64-bit Windows, particularly involving structural changes to Windows itself.

The Application Programming Interface for Windows (APIW) Standard is a specification of the Microsoft Windows 3.1 API drafted by Willows Software. It is the successor to previously proposed Public Windows Interface standard. It was created in an attempt to establish a vendor-neutral, platform-independent, open standard of the 16-bit Windows API not controlled by Microsoft.

Mingw-w64 is a free and open source software development environment to create (cross-compile) Microsoft Windows PE applications. It was forked in 2005–2010 from MinGW.

<span class="mw-page-title-main">Longene</span> Linux distribution

Longene is a Linux-based operating system kernel intended to be binary compatible with application software and device drivers made for Microsoft Windows and Linux. As of 1.0-rc2, it consists of a Linux kernel module implementing aspects of the Windows kernel and a modified Wine distribution designed to take advantage of the more native interface. Longene is written in the C programming language and is free and open source software. It is licensed under the terms of the GNU General Public License version 2 (GPLv2).

In computing, a system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".

References

  1. Wabi: Caldera's Solution for Windows Applications
  2. "Wabi 1.1 for AIX".
  3. Paul Hohensee; Mat Myszewski; David Reese (August 1996). "Wabi Cpu Emulation" (PDF). Hot Chips VIII. Retrieved July 6, 2021.
  4. Linux Journal: "The Desktop War"
  5. Willows TWIN libraries are LGPL
  6. Sun Uses ECMA as Path to ISO Java Standardization ( Computergram International )