Win32s - Win32s

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

Понятие и характеристики

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

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

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

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

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

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

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

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

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

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

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

$ sha256sum pw1118.exe5e7162ba950856104b4c6cb39d2fa5c55e73f86b1d65c31341913dba8b6ba455 pw1118.exe

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

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

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

внешняя ссылка