Кіріспе

Win32s — Microsoft Windows 3.1 және 3.11 операциялық жүйелері үшін 32 биттік қолданбаларды іске қосу ортасы. Ол 16 биттік операциялық жүйеде call thunks арқылы кейбір 32 биттік қолданбаларды іске қосуға мүмкіндік берді. Win32s бета нұсқасы 1992 жылдың қазан айында қолжетімді болды. 1.10 нұсқасы 1993 жылдың шілдесінде Windows NT 3.1 нұсқасымен бірге шығарылды.

Тұжырымдама және сипаттамалары

Win32s – Windows NT-нің алғашқы нұсқаларындағы Win32 Windows API-нің толық емес іске асырылуы ретінде жоспарланған. Win32s-тегі "s" әрпі "кіші жиынтық" дегенді білдіреді, себебі Win32s-де көптеген Windows NT функциялары болмады, оның ішінде көп жіптілік, асинхронды I/O, жаңа серийлік порт функциялары және көптеген GDI кеңейтімдері. Бұл оны Win32s платформасы үшін арнайы жасалған "Win32s қолданбаларымен" шектеді, бірақ кейбір стандартты Win32 бағдарламалары да дұрыс жұмыс істеді, мысалы, Microsoft-тың 3D Pinball Space Cadet және Windows 95-тің кейбір құралдары. Жалпы, 32 биттік қолданба Win32s-ке үйлесімді болу үшін 16 МБ-тан артық жадты немесе DirectX сияқты қосымша мүмкіндіктерді пайдаланбауы керек еді. Win32s Win16 ортасының көптеген шектеулерін мұралады. Нағыз Win32 қолданбалары жеке виртуалды адрестік кеңістікте орындалады, ал Windows 3.x барлық іске қосылған қолданбалар арасында ортақ адрестік кеңістікті пайдаланды. Win32s-те іске қосылған қолданба ортақ адрестік кеңістікке және Windows 3.1-дің кооперативтік көп тапсырмалылық ерекшеліктеріне ие. Сондықтан, Win32 қолданбасын Win32s-те орындау үшін, оның орналасу туралы ақпаратты қамтуы керек. "Тункинг" деп аталатын техника Win32s-ті, сондай-ақ Windows 95, Windows 98 және Windows ME операциялық жүйелерін іске асыру үшін өте маңызды. Алайда, пайдаланушы деңгейіндегі тункингке рұқсат беру, жүйелік деңгейде тұрақты жадты басқаруды немесе жадты қорғауды қамтамасыз етуге, сондай-ақ ядролық қауіпсіздікті қамтамасыз етуге тырысуды қиындатады. Бұл нашар жазылған қолданбалардың Win32s-те және Чикаго ядролық жүйелерінде жүйе тұрақтылығын бұзуына мүмкіндік береді. Windows NT-нің 32 биттік нұсқалары Win16 бағдарламаларын орындау үшін виртуалды машинаны ашық түрде ұсынады, бірақ бұл мүмкіндік Windows-тің 64 биттік нұсқаларынан алынып тасталды.

Бір-біріне үйлесімділік

Win32s үйлесімді қосымшалар Microsoft-тың әзірлеу құралдарын, сондай-ақ кем дегенде Borland C++ 4.x және Symantec C++ (қазір Digital Mars C++) қолдана отырып жасалуы мүмкін. Дегенмен, Windows NT 3.1 бағдарламасында түсініксіз болған бірнеше бағдарлама құрастыру опциялары (мысалы, EXE орналасу ақпараты) және DLL-дер Win32s-те қосымшамен бірге қосылуы тиіс. Microsoft 1996 жылдың соңында шыққан Visual C++ 4.2 нұсқасында Win32s қолдауын тоқтатты. Win32s-ке FreeCell карта ойынының мысал ретіндегі қосымшасы кірді, бұл ойын Windows 95-ке енгізілгенге дейін бірнеше жыл бұрын танымал болды. DOS ойыны Warcraft II: Tides of Darkness деңгей редакторын қамтыды, оның жұмыс істеуі үшін Win32s қажет болды. Редактор үлкен карталарды көрсету үшін Windows GUI-ді пайдаланды, себебі жоғары ажыратымды графикалық режимдер Windows жүйесімен өңделді. NCSA Mosaic веб-браузерінің 2-ші нұсқасы да Win32s-ті қажет етті. C# қосымшаларын CoreRT компиляторы Win32 кодына компиляциялай алады, ол 1994 жылғы Visual C++ линкерімен қабылданады. Бұл комбинация Win32s-пен Windows 3.1 жүйесінде іске қосылатын Win32 атқарылатын файлдарын жасайды.