Win32

Win32s to 32-bitowe środowisko wykonawcze aplikacji dla systemów operacyjnych Microsoft Windows 3.1 i 3.11 . Pozwoliło to niektórym 32-bitowym aplikacjom działać w 16-bitowym systemie operacyjnym przy użyciu wywołań thunks . Wersja beta Win32s była dostępna w październiku 1992. Wersja 1.10 została wydana w lipcu 1993 równocześnie z Windows NT 3.1 .

Pojęcie i charakterystyka

Win32s miał być częściową implementacją Win32 Windows API , tak jak istniał we wczesnych wersjach Windows NT .

„S” w Win32s oznacza podzbiór , ponieważ Win32s brakowało wielu funkcji Windows NT, w tym wielowątkowości , asynchronicznego wejścia/wyjścia , nowszych funkcji portu szeregowego i wielu rozszerzeń GDI . To generalnie ograniczało to do „aplikacji Win32s”, które zostały specjalnie zaprojektowane dla platformy Win32s, chociaż niektóre standardowe programy Win32 działały poprawnie, w tym Microsoft 3D Pinball Space Cadet oraz niektóre aplety dołączone do systemu Windows 95. Wczesne wersje Internet Explorera (do wersji 5) były również kompatybilne z Win32, chociaż istniały one również w formacie 16-bitowym. Ogólnie rzecz biorąc, aby aplikacja 32-bitowa była kompatybilna z Win32, nie musiała zużywać więcej niż 16 MB pamięci ani żadnych rozszerzonych funkcji, takich jak DirectX .

Win32s dziedziczy wiele ograniczeń środowiska Win16. Prawdziwe aplikacje Win32 działają w prywatnej wirtualnej przestrzeni adresowej, podczas gdy Windows 3.x korzystał z przestrzeni adresowej współdzielonej przez wszystkie uruchomione aplikacje. Aplikacja działająca na Win32s ma współdzieloną przestrzeń adresową i cechy kooperacyjnej wielozadaniowości Windows 3.1. W związku z tym, aby aplikacja Win32 działała na Win32, musi zawierać informacje o relokacji .

Technika zwana thunking ma fundamentalne znaczenie dla implementacji Win32, a także systemów operacyjnych z jądrem Chicago, którymi są Windows 95 , Windows 98 i Windows ME . Jednak umożliwienie thunkingu na poziomie użytkownika znacznie komplikuje próby zapewnienia stabilnego zarządzania pamięcią lub ochrony pamięci w całym systemie, a także bezpieczeństwa rdzenia lub jądra - pozwala to źle napisanym aplikacjom podważyć stabilność systemu w systemach Win32, a także Chicago -systemy jądra. 32-bitowe wersje systemu Windows NT w przejrzysty sposób udostępniają maszynę wirtualną do uruchamiania aplikacji Win16, chociaż ta funkcja została usunięta z 64-bitowych wersji systemu Windows.

Zgodność

Aplikacje kompatybilne z Win32s można budować przy użyciu narzędzi programistycznych Microsoftu, a także przynajmniej Borland C++ 4.x i Symantec C++ (obecnie Digital Mars C++). Jednak kilka opcji kompilacji programu (takich jak informacje o relokacji EXE) i bibliotek DLL, które były ukryte w systemie Windows NT 3.1, muszą być dołączone do aplikacji w Win32. Microsoft zaprzestał obsługi Win32 w Visual C++ w wersji 4.2 wydanej pod koniec 1996 roku.

Win32s zawierał implementację gry karcianej FreeCell jako przykładową aplikację, kilka lat przed tym, jak gra stała się sławna dzięki włączeniu jej do systemu Windows 95 .

Warcraft II: Tides of Darkness , gra DOS, zawierała edytor poziomów, który wymagał Win32 do działania. Edytor użył graficznego interfejsu użytkownika systemu Windows do wyświetlania dużych map, ponieważ tryby graficzne o wysokiej rozdzielczości były już obsługiwane przez system Windows. Przeglądarka internetowa NCSA Mosaic w wersji 2 również wymagała Win32.

C# mogą być kompilowane przez kompilator CoreRT do kodu Win32, który jest akceptowany przez konsolidator Visual C++ z 1994 roku. Ta kombinacja tworzy pliki wykonywalne Win32, które mogą działać w systemie Windows 3.1 z Win32.

Źródła i instalacja

Win32 nadal można znaleźć za pomocą wyszukiwarek internetowych; Zwykle używanym plikiem instalacyjnym jest PW1118.EXE.

 $  sha256sum pw1118.exe  5e7162ba950856104b4c6cb39d2fa5c55e73f86b1d65c31341913dba8b6ba455 pw1118.exe 

Programiści powinni upewnić się, że instalują OLE , jeśli wymagają spójnej obsługi schowka. Wiele aplikacji, które wymagają uświadomienia OLE (np. skonfigurowania ich serwera OLE), musi zostać ponownie zainstalowanych. Win32s był również dołączany do niektórych wczesnych programów Win32.

Linki zewnętrzne