stringtranslate.com

Win32s

Win32s — это 32-разрядная среда выполнения приложений для операционных систем Microsoft Windows 3.1 и 3.11 . Это позволило некоторым 32-битным приложениям запускаться в 16-битной операционной системе с использованием преобразователей вызовов . Бета-версия Win32s была доступна в октябре 1992 года. [1] Версия 1.10 была выпущена в июле 1993 года [2] одновременно с Windows NT 3.1 .

Концепция и характеристики

Win32s задумывался как частичная реализация Windows API Win32 , существовавшего в ранних версиях Windows NT . [3]

Буква «s» в Win32s означает подмножество , поскольку в Win32 отсутствовал ряд функций Windows NT, включая многопоточность , асинхронный ввод-вывод , новые функции последовательного порта и многие расширения GDI . Обычно это ограничивало его «приложениями Win32s», которые были специально разработаны для платформы Win32s, [4] хотя некоторые стандартные программы Win32 работали корректно, включая Microsoft 3D Pinball Space Cadet и некоторые апплеты, включенные в Windows 95. [5] Ранние версии Internet Explorer (до версии 5) также были совместимы с Win32, хотя они также существовали в 16-битном формате. [5] Как правило, чтобы 32-разрядное приложение было совместимо с Win32, оно не должно было использовать более 16 МБ памяти или какие-либо расширенные функции, такие как DirectX .

Win32s наследует многие ограничения среды Win16. Настоящие приложения Win32 выполняются в частном виртуальном адресном пространстве, тогда как Windows 3.x использовала адресное пространство, общее для всех запущенных приложений. Приложение, работающее на Win32s, имеет общее адресное пространство и характеристики совместной многозадачности Windows 3.1. Следовательно, чтобы приложение Win32 могло работать на Win32, оно должно содержать информацию о перемещении .

Техника, называемая преобразованием, является фундаментальной для реализации Win32, а также операционных систем с ядром Chicago, таких как Windows 95 , Windows 98 и Windows ME . Однако разрешение анализа на уровне пользователя значительно усложняет попытки обеспечить стабильное управление памятью или защиту памяти на общесистемной основе, а также безопасность ядра или ядра — это позволяет плохо написанным приложениям подрывать стабильность системы на Win32, а также на Chicago -системы ядра. 32-разрядные версии Windows NT прозрачно предоставляют виртуальную машину для запуска приложений Win16, хотя эта функция была удалена из 64-разрядных версий Windows.

Совместимость

Win32s-совместимые приложения можно создавать с использованием инструментов разработки Microsoft, а также, по крайней мере, Borland C++ 4.x и Symantec C++ (теперь Digital Mars C++). Однако некоторые параметры компиляции программы (например, информация о перемещении EXE) и библиотеки DLL, которые были неявно предусмотрены в Windows NT 3.1, должны быть включены в приложение в Win32s. Microsoft прекратила поддержку Win32 в Visual C++ версии 4.2, выпущенной в конце 1996 года.

Win32s включил реализацию карточной игры FreeCell в качестве примера приложения за пару лет до того, как игра стала знаменитой благодаря включению в Windows 95 .

Warcraft II: Tides of Darkness , игра для DOS, включала редактор уровней, для запуска которого требовалась Win32. Редактор использовал графический интерфейс Windows для отображения больших карт, поскольку графические режимы высокого разрешения уже поддерживались Windows. Для веб-браузера NCSA Mosaic версии 2 также требовалась Win32. [6]

Приложения C# могут быть скомпилированы компилятором CoreRT в код Win32, который принимается компоновщиком Visual C++ 1994 года. Эта комбинация создает исполняемые файлы Win32, которые могут работать в Windows 3.1 с Win32. [7]

Исходники и установка

Win32 по-прежнему можно найти с помощью поисковых систем; Обычно используется установочный файл PW1118.EXE.

$ sha512sum  pw1118.exe 31b532f324a1eebd1073e043e0c81cb131ad40681b1a7e5e73f881369eafa38ba9d91a541d99fd8b96e937f0e93bfd17cf9c26cc77daf8c77d 7c9df803b3aef9

Разработчики должны убедиться, что они устанавливают OLE , если им требуется единообразная обработка буфера обмена. Многие приложения, которым необходимо обеспечить поддержку OLE (т. е. настроить OLE-сервер), необходимо переустановить. Win32s также был включен в некоторые ранние программы Win32.

Рекомендации

  1. ^ "Бета-версия Win32s" .
  2. ^ "Win32s 1.1" .
  3. ^ «Общий обзор Win32». Корпорация Майкрософт. 12 апреля 2004 года . Проверено 5 сентября 2007 г.
  4. ^ «Общие ограничения Win32s». Корпорация Майкрософт. 22 ноября 2005 г. Проверено 5 сентября 2007 г.
  5. ^ ab «Список совместимости Win32» . Проверено 30 ноября 2008 г.
  6. ^ Декабрь, Джон; Рэндалл, Нил (1994). Всемирная паутина вышла на свободу . Издательство Самс. ISBN 0-672-30617-4.
  7. Стреховский, Михал (9 января 2020 г.). «1/7 Вам когда-нибудь приходилось запускать фрагмент кода на C# в Windows 3.11? Мне тоже, но я все равно это сделал». Твиттер .Хакерские новости.

Внешние ссылки