Share on Facebook Share on Twitter Email
Answers.com

Win32s

 

The programming interface (API) for 32-bit Windows operating systems, starting with Windows 95. When applications are written to the Win32 API, they are activating advanced functions not available from the 16-bit API (Win16).

An application written to Win32 can run in all operating systems except where there are OS-specific features that are unavailable in the others. For example, Windows NT provides security features that are not in Windows 95/98. A program written for those features in NT will not run under the other Windows versions.

When Windows 95 came out, many 32-bit functions were made available to Windows 3.1 applications with Win32s, a subset of Win32. Win32s functionality had to be added to Windows 3.1 machines, and applications that used that API generally installed the necessary Win32s DLLs. See .NET Framework 3.0.

   An Application
   Using This
   API           Can Be Run In
   Win32                   95, 98, NT, 2000, XP
   Win32s             3.1, 95, 98, NT, 2000, XP
   Win32c                  95
   Win16         3.0, 3.1, 95, 98, NT, 2000, XP

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: Win32s
Top

Win32s is a 32-bit application runtime environment for the Microsoft Windows 3.11 operating system. It allowed some 32-bit applications to run on the 16-bit operating system using call thunks.

Contents

Concept and Characteristics

Win32s was intended as an implementation of a subset of Win32, Microsoft's main 32-bit Windows API taken from Windows NT 3.1.[1] However, several program compilation options and DLLs which were implicit in Windows NT 3.1 have to be included with the application in Win32s.

Although ostensibly compatible with early versions of Windows NT, many functions were not implemented including threading and asynchronous I/O, newer serial port functions and many GDI extensions. This essentially limits it to applications specifically designed for the platform.[2] In addition, Microsoft made a number of changes to Win32s which were regarded by some observers as an attempt to discourage any third party from marketing a compatible platform.[citation needed] It would not, however, be logical for Microsoft to make developing for Win32s difficult, as it was intended to ease the transition to Win32 for developers and allow Microsoft to shift all of its own development and support to the newer platform.

At the same time, however, Microsoft already had to manage separate and sometimes incompatible APIs for MS-DOS and Win16, complicating efforts to make a third API (Win32/Win32s) a stable option for developers.

Win32s inherits many of the limitations of the Win16 environment. True Win32 applications execute within a private virtual address space, whereas Windows 3.x used an address space shared among all running applications. An application running on Win32s has the shared address space and cooperative multitasking characteristics of Windows 3.1. Consequently, for a Win32 application to run on Win32s, it must contain relocation information.

A technique named thunking is fundamental to the implementation of Win32s as well as Chicago-kernel operating systems, which are Windows 95, Windows 98, and Windows Me. However, allowing user-level thunking greatly complicates attempts to provide stable memory management or memory protection on a system-wide basis, as well as core or kernel security—this allows poorly written applications to undermine system stability on Win32s, as well as the Chicago-kernel systems. The stability and security Windows NT can offer is partially based on thunking being totally illegal, except thunks from Win16 to Win32—the CPU must remain in protected mode at all times. Newer versions of Windows transparently provide a virtual machine for running Win16 applications.

The "s" in Win32s signifies subset, as Win32s contained but a subset of Win32. A "Win32s program" is thus a Win32 program that uses only those Win32 calls that are available in Win32s. This is not always recursive; Win32 apps would initialize poorly on Win32s, if at all. Notable exceptions were Microsoft's own 3D Pinball Space Cadet and the Windows 95 calculator.[3]

Microsoft dropped support for Win32s from their developer tools with Visual C++ version 4.2 released in late 1996.

Win32s included an implementation of the card game FreeCell as an example application, a couple of years before the game became famous with its inclusion in Windows 95.

Warcraft II: Tides of Darkness, a DOS game, included a level editor that required Win32s to run. The editor used a Windows GUI for displaying the large maps because high-resolution graphic modes were already handled by Windows.


Sources and installation

Win32s can still be found using web search engines; PW1118.EXE is generally the installation file used. Developers should ensure they are installing OLE if they require consistent clipboard handling. Many applications which need to be made OLE aware (i.e. setting up their OLE server) must be reinstalled. Win32s was also included with some early Win32 programs.

References

  1. ^ "General Overview of Win32s". Microsoft Corporation. 12 April 2004. http://support.microsoft.com/kb/83520. Retrieved 2007-09-05. 
  2. ^ "General limitations under Win32s". Microsoft Corporation. 22 November 2005. http://support.microsoft.com/kb/q131896/. Retrieved 2007-09-05. 
  3. ^ "The Win32s compatibility list". http://stephan.win31.de/w32slist.htm. Retrieved 2008-11-30. 

External links


 
 

 

Copyrights:

Computer Desktop Encyclopedia. THIS DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2010 The Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Win32s" Read more