Win32s

Win32s

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.

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. [cite web
title = General Overview of Win32s
publisher = Microsoft Corporation
date = 12 April 2004
url = http://support.microsoft.com/kb/83520
format = html
accessdate = 2007-09-05
] 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. [cite web
title = General limitations under Win32s
publisher = Microsoft Corporation
date = 22 November 2005
url = http://support.microsoft.com/kb/q131896/
format = html
accessdate = 2007-09-05
] 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 Fact|date=February 2007. 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.

As Win32s is built on top of Windows 3.1x, it inherits many of the limitations of that environment. As a notable example, in Windows NT and Windows 95, 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. As a result of this, for a Win32 application to run on Win32s, it must contain relocation information. This is typically done by omitting the /FIXED switch or including /FIXED:NO when linking the application. By default, Visual C++ 5 and later do not generate 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.

Many early 1990s programs that ran on Windows 3.1 and Windows 95 used Win32s instead of completely separate 16- and 32-bit versions. Several Win32s programs that predate Windows 95 can run on it and often Windows 98. Others were purely Win16, such as Word for Windows. In theory, a "Win32s program" is just a Win32 program that uses only those Win32 calls that are available in Win32s. However, not all Win32 programs are Win32s programs, as many perfectly legal Win32 apps would not initialize at all on Win32s.

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

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.

Trivia

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.

"", 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.

References

External links

* [http://web.archive.org/web/20040627001512/http://www.gajits.com/win32.asp Win32 Tutorial by Graeme Chandler]
* [http://www.i24.com/en/win32s/tips/w32slist.htm Win32s Compatibility List]
* [ftp://ftp.microsoft.com/softlib/MSLFILES/PW1118.EXE Download Win32s from Microsoft]


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Win32s — était une extension de Windows 3.x nécessitant une machine IA 32 contenant la prise en charge d un jeu très réduit d instructions Win32 (« s » veut dire « subset »). Win32s a été supporté par les compilateurs de Microsoft… …   Wikipédia en Français

  • Win32s — Win32s,   eine Systemerweiterung für Windows 3.1 und Windows für Workgroups 3.11, mit dem die 32 bit Befehle des 80386er bzw. 80486er Prozessors innerhalb des 16 bit Betriebssystems genutzt werden konnten …   Universal-Lexikon

  • WIN32S — Das Windows Application Programming Interface (kurz: WinAPI; zu dt. etwa: Windows Anwendungs Programmierungs Schnittstelle) ist eine Programmierschnittstelle und Laufzeitumgebung, welche Programmierern bereitsteht, um Anwendungsprogramme für… …   Deutsch Wikipedia

  • Win32s — Das Windows Application Programming Interface (kurz: WinAPI; zu dt. etwa: Windows Anwendungs Programmierungs Schnittstelle) ist eine Programmierschnittstelle und Laufzeitumgebung, welche Programmierern bereitsteht, um Anwendungsprogramme für… …   Deutsch Wikipedia

  • Win32s — Windows API (application programming interfaces) общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом… …   Википедия

  • Win32s — ● np. f. ►MS►HISTO Bibliothèque qui permettait de faire tourner des applis 32 bits sous Windows 3.1 et Windows for Workgroups 3.1 …   Dictionnaire d'informatique francophone

  • Windows 3.1x — For the version of Microsoft Windows built on the Windows NT kernel, see Windows NT 3.1. Windows 3.1x Part of the Microsoft Windows family …   Wikipedia

  • Microsoft Windows 3.x — Windows 3.x La version 3 de Windows est un système d exploitation apparu en 1990. La version 3 a été la première à connaître un large succès, permettant à son concepteur Microsoft de rivaliser avec l Apple Macintosh ou l Amiga de Commodore sur le …   Wikipédia en Français

  • Windows 3.0 — Windows 3.x La version 3 de Windows est un système d exploitation apparu en 1990. La version 3 a été la première à connaître un large succès, permettant à son concepteur Microsoft de rivaliser avec l Apple Macintosh ou l Amiga de Commodore sur le …   Wikipédia en Français

  • Windows 3.1 — Windows 3.x La version 3 de Windows est un système d exploitation apparu en 1990. La version 3 a été la première à connaître un large succès, permettant à son concepteur Microsoft de rivaliser avec l Apple Macintosh ou l Amiga de Commodore sur le …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”