Как установить 32 битную программу на 64 битную систему windows 10

Как запустить 32-битную программу на 64-разрядной ОС Windows 10. В чем заключается сложность и как можно решить проблему запуска встроенными средствами системы.

Как запустить 32-битную программу на 64-разрядной ОС Windows 10 – 6 способов

Компьютер позволяет решать множество задач при помощи дополнительного ПО. После установки приложения от стороннего разработчика перед пользователем открывается широкий круг возможностей – от редактирования фото и видео до создания собственной 3D-графики. Но порой софт не открывается, и все упирается в разрядность операционной системы. Чтобы решить проблему, нужно понять, как запустить 32-битную программу на 64-разрядной ОС Windows 10.

Почему 32-битное приложение не запускается на Windows 10, 64 bit

Операционные системы Windows, вышедшие из-под крыла Microsoft, отличаются не только версией (XP, Vista, 8 и так далее), но и разрядностью. Долгое время стандартными считались 32-битные ОС, но относительно недавно состоялся переход на 64 bit. Новый стандарт отличается поддержкой свыше 4 Гб оперативной памяти, что положительным образом сказывается на производительности компьютера.

screenshot_1

В то же время некоторые программы до сих пор продолжают выпускаться под 32-битные системы, из-за чего после запуска приложения 10 64 bit на Windows может выскочить ошибка совместимости. Самое простое решение проблемы – поменять операционку на Windows 10 32 bit, но переустановка требует большого количества времени и сил, непропорционального пользе от 32-разрядного ПО. Поэтому рекомендуется рассмотреть более рациональные способы устранения ошибки совместимости.

На заметку. 64-битные ОС поддерживаются процессорами с соответствующей архитектурой и располагают обратной совместимостью с 32 bit. При этом 32-битные системы ни при каких обстоятельствах не работают с программами 64 bit.

screenshot_2

Запуск от имени Администратора

Как мы выяснили, Windows 10 64 bit обладает совместимостью с 32-битным софтом. А ошибка, которая появляется при запуске, свидетельствует о недостаточном количестве прав пользователя. Проблема решается следующим образом:

  • Найдите исполняемый файл 32-разрядной программы.
  • Щелкните по нему ПКМ.
  • Выберите пункт «Запуск от имени Администратора».

С высокой долей вероятности приложение, запуск которого ранее вызывал трудности, откроется без-каких-либо проблем. Вместе с тем, для повышения уровня стабильности все-таки рекомендуется найти ту же программу в 64-разрядной сборке. Подавляющее большинство современных приложений выпускаются в двух вариантах.

screenshot_3

Через настройки параметров совместимости

Если же вы решили установить старую программу или игру, которая никогда не предназначалась для 64-битных систем, а получение прав Администратора не помогло, можно вручную исправить ошибку совместимости:

  • Щелкните ПКМ по ярлыку приложения.
  • Перейдите в «Свойства».

screenshot_4

  • Откройте вкладку «Совместимость».
  • Нажмите на кнопку «Запустить средство устранения проблем с совместимостью».

screenshot_5

В данном случае операционная система будет сама искать причину сбоя и предложит устранить ее, выставив, например, режим совместимости с Windows XP. Если автоматическое средство устранения неполадок не поможет, то есть смысл вручную перебрать предложенные варианты «Свойств».

Важно. Порой проблема заключается не в разрядности ОС, а в настройках программ. В частности, старые игры рекомендуется запускать с отключением масштабирования. Для этого нужно выбрать соответствующую опцию в свойствах исполняемого файла.

Установка неподписанных или 32-битных драйверов

В целях безопасности разработчики Windows 10 активировали принудительную проверку подписных драйверов, которыми не располагают многие 32-битные программы. Из-за этого возникают сложности с запуском старых игр и приложений. Устраняется проблема путем отключения проверки подписей через среду восстановления Windows.

Для попадания в упомянутый выше раздел требуется создать загрузочную флешку с образом ОС. Затем накопитель подключается к ПК с заданным уровнем приоритета, а когда при запуске вместо стартового меню появится среда восстановления, останется отключить функцию проверки.

screenshot_6

Запуск игр с DRM-защитой

Старые игры используют устаревшие схемы управления цифровыми правами SafeDisc или SecuROM DRM. Поэтому, когда вы пытаетесь установить игрушку с диска, проблемы начинают возникать еще на этапе инсталляции. Ошибка возникает по причине того, что самой операционной системой Windows 10 подобный вид защиты считается небезопасным.

Выходом из ситуации является поиск пиратских репаков и других сборок старых игр. Они не требуют внешнего носителя в виде диска, из-за чего установка проходит без сбоев. Но только при условии, что пользователь отключит антивирус. Действовать в таком случае приходится на свой страх и риск, поскольку сборки даже проверенных релизеров нередко заражены вирусами.

screenshot_7

Использование виртуальной машины

Запустить старую игру или приложение позволяет 32-битный эмулятор. Это специальное программное обеспечение, позволяющее избежать опасности из-за отключения проверки подписей, а также снимающее необходимость переустановки ОС на Windows 10 32 bit.

В качестве виртуальной машины можно использовать VirtualBox. После установки дополнительного софта попробуйте запустить программу не стандартными средствами системы, а при помощи эмулятора. Скорее всего, приложение заработает без каких-либо нареканий.

Виртуальная машина не может гарантировать такой же уровень производительности, как 64-разрядная Windows 10. Однако тот факт, что старые игры и приложения не являются требовательными в современных реалиях, лаги и подтормаживания при запуске через эмулятор встречаются крайне редко.

screenshot_8

16-битные приложения

Сложнее всего обстоят дела с программами, которые разрабатывались под 16-битные системы. В отличие от 32-разрядных аналогов, они не имеют даже теоретической совместимости с Windows 10 64 bit. Единственным решением проблемы является установка 32-битной ОС, которая как раз-таки поддерживает одни из самых старых приложений. Альтернативный вариант – установка DOSBox (виртуальная машина, написанная под старые операционки).



Современные компьютеры в большинстве случаев поставляются с установленной операционной системой Windows 10 64 bit. Даже бюджетные модели уже имеют 3 и более Гбайт оперативной памяти, что позволяет задействовать системе всю мощь 64-битной разрядности обработки данных.

Подробнее о преимуществах 64 bit над 32 bit Windows вы можете прочитать в нашей статье «Преимущества перехода на 64 бита».

Но, как бы не была привлекательна 64-разрядная система, зачастую пользователь просто не имеет в своем распоряжении 64-битной программы, с которой он давно работает и которая его полностью устраивает, т.к. производитель ее просто не выпустил. Как правило, такие программы устанавливаются в Windows в отдельную папку Program Files (x86) и их запуск осуществляется в 32-разрядном режиме.

Как на 64-битной Windows запустить программы в режиме совместимостиЕсли в процессе запуска программа выдает ошибку или вообще не запускается, а в Windows 32 bit она работала без проблем, есть шанс запустить ее в специальном режиме, который разработчики назвали «Режим совместимости».

Как на 64-битной Windows запустить программы в режиме совместимостиДля этого в Windows 7 щелкните правой кнопкой мыши на ярлыке нужной программы, а затем выберите в контекстном меню «Свойства». В открывшемся окне перейдите на вкладку «Совместимость» и установите флажок «Запустить программу в режиме совместимости с …» и в выпадающем списке укажите вариант системы для запуска.
Нажмите кнопку «OK». После этого попробуйте запустить вашу программу.

Кроме того, в контекстном меню Проводника также имеет смысл попытаться автоматически решить задачу, кликнув по строке «Исправление неполадок совместимости» — в Windows 7.

Как на 64-битной Windows запустить программы в режиме совместимостиВ Windows 10 при настройке запуска в совместимом режиме на вкладке «Совместимость» имеется отдельная кнопка «Запустить средство устранения проблем с совместимостью». После чего вам предложат либо использовать рекомендованные параметры, либо провести диагностику программы.

Как на 64-битной Windows запустить программы в режиме совместимостиЕсли и после этого программа не запустилась, то стоит подойти к проблеме более основательно и попробовать варианты, указанные на официальном сайте Microsoft.

Более радикальным методом запуска программы является ее установка и использование в виртуальной машине с установленной Windows 7 32 bit. Подробнее, как установить и настроить виртуальную машину вы можете почитать в нашей статье «Как создать и настроить на ПК виртуальную ОС?».

Читайте также:

  • Как переключиться с Windows 32 на 64 бита: все плюсы и минусы перехода
  • Как запускать системные утилиты в Windows 7 без раздражающих запросов UAC, не отключая его

Фото: компании-производители, pexels.com

Компьютер решает множество задач с помощью дополнительного программного обеспечения. После установки приложения от стороннего разработчика оно открывает перед пользователем широкий спектр возможностей – от редактирования фотографий и видео до создания собственной трехмерной графики. Но иногда программа не открывается и все зависит от разрядности ОС. Чтобы это исправить, нужно понимать, как запустить 32-битную программу в 64-битной Windows 10.

Операционные системы Windows, вышедшие под крыло Microsoft, различаются не только версией (XP, Vista, 8 и т.д.), Но и разрядностью. Долгое время стандартными считались 32-битные операционные системы, но относительно недавно произошел переход на 64-битные. Новый стандарт отличается поддержкой более 4 ГБ оперативной памяти, что положительно сказывается на производительности компьютера.

скриншот_1

При этом некоторые программы продолжают выпускаться для 32-битных систем, из-за чего может появиться ошибка совместимости после запуска 64-битного приложения 10 в Windows. Самое простое решение проблемы – сменить ОС на 32-битную Windows 10, но переустановка требует много времени и усилий, несоразмерных преимуществам 32-битного программного обеспечения. Поэтому рекомендуется рассмотреть более рациональные способы исправления ошибки совместимости.

В примечании. 64-битные операционные системы поддерживаются процессорами с соответствующей архитектурой и обратно совместимы с 32-битными. При этом 32-битные системы ни в коем случае не работают с 64-битными программами.

скриншот_2

Запуск от имени Администратора

Как мы выяснили, 64-битная Windows 10 совместима с 32-битным ПО. А ошибка, которая появляется при запуске, говорит о недостаточном количестве прав пользователя. Проблема решается следующим образом:

  • Найдите исполняемый файл 32-битной программы.
  • Щелкните по нему правой кнопкой мыши.
  • Выберите «Запуск от имени администратора».

очень вероятно, что приложение, которое раньше было сложно запустить, откроется без проблем. Однако для повышения уровня стабильности все же желательно найти ту же программу в 64-битной сборке. Подавляющее большинство современных приложений представлены в двух версиях.

screenshot_3

Через настройки параметров совместимости

Если вы решили установить старую программу или игру, которая никогда не предназначалась для 64-битных систем, и получение прав администратора не помогло, вы можете вручную исправить ошибку совместимости:

  • Щелкните правой кнопкой мыши ярлык приложения.
  • Зайдите в Свойства».

screenshot_4

  • Щелкните вкладку «Совместимость».
  • Нажмите кнопку «Запустить средство устранения неполадок совместимости».

screenshot_5

В этом случае операционная система сама будет искать причину ошибки и предлагать устранить ее, установив, например, режим совместимости с Windows XP. Если автоматическое средство устранения неполадок не помогает, имеет смысл вручную пролистать предлагаемые параметры «Свойства».

Важный. Иногда проблема не в бите операционной системы, а в настройках программы. В частности, рекомендуется запускать старые игры с отключенным масштабированием. Для этого выберите соответствующий вариант в свойствах исполняемого файла.

Установка неподписанных или 32-битных драйверов

В целях безопасности разработчики Windows 10 включили принудительную проверку подписанных драйверов, чего нет во многих 32-разрядных программах. Из-за этого становится сложно запускать старые игры и приложения. Эта проблема решается путем отключения проверки подписи в среде восстановления Windows.

Чтобы получить доступ к предыдущему разделу, вам необходимо создать загрузочную флешку с образом операционной системы. Затем накопитель подключается к ПК с заданным уровнем приоритета и при отображении среды восстановления вместо меню загрузки при запуске остается отключить функцию управления.

screenshot_6

Запуск игр с DRM-защитой

В старых играх используются устаревшие схемы управления цифровыми правами SafeDisc или SecuROM DRM. Поэтому при попытке установить игрушку с диска проблемы начинают возникать еще на этапе установки. Ошибка возникает из-за того, что из самой операционной системы Windows 10 этот вид защиты считается небезопасным.

Выход из ситуации – поиск пиратских репаков и прочих сборок старых игр. Они не требуют внешнего носителя в виде диска, что означает, что установка проходит гладко. Но только при условии, что пользователь отключит антивирус. В этом случае вы должны действовать на свой страх и риск, так как сборки даже проверенных релизеров часто заражены вирусами.

screenshot_7

Использование виртуальной машины

32-битный эмулятор позволяет запускать старую игру или приложение. Это специальное программное обеспечение, которое позволяет избежать опасности отключения проверки подписи, а также избавляет от необходимости переустанавливать операционную систему в 32-разрядной версии Windows 10.

VirtualBox можно использовать как виртуальную машину. После установки дополнительного ПО попробуйте запустить программу не стандартными средствами системы, а с помощью эмулятора. Скорее всего, приложение будет работать без нареканий.

Виртуальная машина не может гарантировать такой же уровень производительности, как 64-разрядная версия Windows 10. Однако из-за того, что старые игры и приложения не требовательны в современных реалиях, задержки и подтормаживания при работе через эмулятор встречаются крайне редко.

screenshot_8

16-битные приложения

Наиболее сложная ситуация с программами, разработанными для 16-битных систем. В отличие от своих 32-битных аналогов, они даже не имеют теоретической совместимости с 64-битной Windows 10. Единственное решение проблемы – установить 32-битную операционную систему, которая фактически поддерживает некоторые из старых приложений. Альтернативный вариант – установить DOSBox (виртуальная машина, написанная для старых операционных систем).

Источник изображения: it-tehnik.ru

Содержание

  1. Как запускать старые программы в Windows 10
  2. Как на 64-битной Windows запустить программы в режиме совместимости
  3. Урок 2. Поддержка 32-битных приложений в 64-битной среде Windows
  4. Накладные расходы
  5. Преимущество 64-битной среды для 32-битных программ
  6. Перенаправления
  7. Почему невозможно использовать в 64-битной программе 32-битные DLL? Можно ли это обойти?
  8. Постепенный отказ от поддержки 32-битных программ
  9. Дополнительная информация
  10. Как заставить старые программы работать в Windows 10
  11. Запуск от имени администратора
  12. Настройка параметров совместимости
  13. Установка неподписанных или 32-битных драйверов
  14. Использование виртуальной машины
  15. 16-битные приложения
  16. Обзор соображений совместимости для 32-битных программ для 64-битных версий Windows
  17. Сводка
  18. Введение
  19. Запуск 32-битных программ
  20. Соображения производительности программы
  21. Ограничения подсистемы WOW64
  22. 16-битные программы
  23. 32-битные драйверы
  24. Дополнительные рекомендации
  25. Перенаправление реестра и файлов
  26. Проверка версии
  27. OpenGL
  28. Консоль управления Майкрософт (MMC)
  29. x64 Considerations
  30. Ссылки

Как запускать старые программы в Windows 10

Большинство приложений для Windows должно без проблем работать и в Windows 10. Во всяком случае, если они запускались в Windows 7, сложностей возникнуть не должно. Некоторые особо старые программы могут не запуститься с первого раза, однако решить эту проблему можно несколькими способами.

Приведенные ниже советы применимы к самым разным приложениям – от программ для Windows XP и старых компьютерных игр с DRM защитой до приложений под DOS и Windows 3.1.

1443547953 08101501

Запуск от имени администратора

Многие приложения, написанные для Windows XP, без проблем работают и в современных версиях Windows, однако есть один нюанс. Во времена Windows XP среднестатистический пользователь обычно имел права администратора, и приложения создавались с расчетом на это. При отсутствии прав администратора они могут не запускаться. Конец постоянному использованию программ с правами администратора положило появление контроля учетных записей пользователя, и поначалу это приводило к возникновению определенных проблем.

1443548006 08101501 02

Например, если приложение не работает в Windows 10, но прекрасно работало в Windows XP, поставьте флажок «Запустить программу в режиме совместимости с» (Run this program in compatibility mode) и выберите вариант «Windows XP (пакет обновления 3)» (Windows XP (Service Pack 3)).

Можно попробовать и другие настройки. Например, очень старые игры могут заработать, если включить «Режим пониженной цветности» (Reduced color mode). А на мониторах высокого разрешения можно выбрать опцию «Отключить масштабирование изображения при высоком разрешении экрана» (Disable display scaling on high DPI settings), чтобы программа выглядела нормально.

1443548042 08101501 03

32-битные драйверы и драйверы без подписи

В 64-битной версии Windows 10 используется принудительная проверка подписей драйверов, так что установить неподписанный драйвер просто нельзя. В 32-битной версии Windows 10 с этим проще, но на новых компьютерах с UEFI тоже требуются драйверы с подписями. Это повышает безопасность и стабильность системы, защищая ее от ненадежных и вредоносных драйверов. Неподписанные драйверы можно устанавливать только в том случае, если это действительно необходимо, а их безопасность гарантирована.

Если старое программное обеспечение нуждается в неподписанных драйверах, придется воспользоваться специальной опцией загрузки системы, чтобы их установить. Если нужные драйверы 32-битные, придется поставить 32-битную версию Windows 10, поскольку в 64-битной будут работать только 64-битные же драйверы.

1443548031 08101501 04

Игры с DRM-защитой SafeDisc и SecuROM

В Windows 10 не работают игры с DRM-защитой SafeDisc и SecuROM. От этих технологий управления цифровыми правами больше проблем, чем пользы, поэтому даже хорошо, что Windows 10 больше не позволяет замусоривать ими систему. Однако по этой причине некоторые старые игры на CD и DVD-дисках с такой защитой запускаться и работать нормально, увы, не будут.

Выходов может быть несколько: найти патч «no CD» для конкретной игры (что, впрочем, потенциально очень небезопасно, поскольку такие патчи обретаются на сомнительных пиратских сайтах); купить игру в цифровом магазине GOG или Steam; либо поискать официальный патч, снимающий DRM-защиту, на сайте издателя или разработчика.

Более продвинутый вариант – установить на компьютер вторую, более старую версию Windows параллельно с Windows 10 или попробовать запустить игру в виртуальной машине под управлением более старой версии Windows. Вполне возможно, что мощности виртуальной машины будет достаточно – игры с такой DRM-защитой, как правило, очень старые и нетребовательные к современным ресурсам.

Виртуальные машины для старого ПО

В Windows 7 был специальный «режим Windows XP» – по сути, встроенная виртуальная машина с бесплатной лицензией Windows XP. Из Windows 10 этот режим убрали, но его можно реализовать самостоятельно.

Решение довольно ресурсоемкое и сложное, но в большинстве случаев действенное – если только программное обеспечение, которое предполагается таким способом использовать, не нуждается в доступе непосредственно к оборудованию и устройствам. Виртуальные машины поддерживают лишь ограниченный круг периферийных устройств.

1443548039 08101501 05

Приложения для DOS и Windows 3.1

DOSBox позволяет запускать старые DOS-приложения (в основном игры) в окнах на рабочем столе. Это гораздо удобнее, чем командная строка. DOSBox справляется с DOS-программами намного лучше.

Windows 3.1 – по сути, тоже DOS-приложение, а значит, можно установить ее в DOSBox и запускать написанные под нее 16-битные приложения через DOSBox.

1443548030 08101501 06

16-битные программы не поддерживаются в 64-битных версиях Windows, поскольку там отсутствует уровень совместимости WOW16, позволяющий запускать такие приложения. При попытке запустить 16-битную программу в 64-битной версии Windows появляется сообщение о том, что это приложение нельзя запустить на данном компьютере.

Если без 16-битных приложений никак не обойтись, придется установить 32-битную версию Windows 10 вместо 64-битной. Впрочем, вовсе не обязательно переустанавливать систему – можно поставить в виртуальную машину 32-битную версию Windows и использовать ее для запуска 16-битных приложений. Или установить Windows 3.1 в DOSBox.

1443548030 08101501 07

Сайты, требующие Java, Silverlight, ActiveX или Internet Explorer

В Windows 10 по умолчанию используется новый браузер Microsoft Edge, который не поддерживает Java, ActiveX, Silverlight и другие подобные технологии. В браузере Google Chrome тоже больше нет поддержки NPAPI-плагинов типа Java и Silverlight.

Для запуска старых веб-приложений, нуждающихся в этих технологиях, используйте браузер Internet Explorer. Он включен в состав Windows 10 как раз из соображений обратной совместимости и по-прежнему поддерживает ActiveX. Кроме того, Java и Silverlight поддерживаются в Mozilla Firefox.

Запустить Internet Explorer можно через меню «Пуск» либо через меню Microsoft Edge – там есть опция «Открыть в Internet Explorer» (Open with Internet Explorer), позволяющая открыть текущую страницу в IE.

1443547968 08101501 08

Но в большинстве случаев, если старое приложение не работает в Windows 10, лучше поискать нормальный современный аналог. Однако старые игры и бизнес-приложения порой незаменимы, и тогда на помощь придут описанные выше решения.

Автор: Chris Hoffman
Перевод SVET

Оцените статью: Голосов

Источник

Как на 64-битной Windows запустить программы в режиме совместимости

fit 960 530 false crop 1200 738 0 0 q90 53732 20b353cc10

Если в новой 64-битной Windows старая 32-битная программа не запускается или работает неправильно, вы можете запустить ее в режиме совместимости. CHIP расскажет, как это сделать.

fit 300 200 false crop 1200 738 0 0 q90 53732 20b353cc10

Современные компьютеры в большинстве случаев поставляются с установленной операционной системой Windows 10 64 bit. Даже бюджетные модели уже имеют 3 и более Гбайт оперативной памяти, что позволяет задействовать системе всю мощь 64-битной разрядности обработки данных.

Подробнее о преимуществах 64 bit над 32 bit Windows вы можете прочитать в нашей статье «Преимущества перехода на 64 бита».

Но, как бы не была привлекательна 64-разрядная система, зачастую пользователь просто не имеет в своем распоряжении 64-битной программы, с которой он давно работает и которая его полностью устраивает, т.к. производитель ее просто не выпустил. Как правило, такие программы устанавливаются в Windows в отдельную папку Program Files (x86) и их запуск осуществляется в 32-разрядном режиме.

Sov1Если в процессе запуска программа выдает ошибку или вообще не запускается, а в Windows 32 bit она работала без проблем, есть шанс запустить ее в специальном режиме, который разработчики назвали «Режим совместимости».

Sov2Для этого в Windows 7 щелкните правой кнопкой мыши на ярлыке нужной программы, а затем выберите в контекстном меню «Свойства». В открывшемся окне перейдите на вкладку «Совместимость» и установите флажок «Запустить программу в режиме совместимости с …» и в выпадающем списке укажите вариант системы для запуска.
Нажмите кнопку «OK». После этого попробуйте запустить вашу программу.

Кроме того, в контекстном меню Проводника также имеет смысл попытаться автоматически решить задачу, кликнув по строке «Исправление неполадок совместимости» — в Windows 7.

img 2018 02 12 13 41 48В Windows 10 при настройке запуска в совместимом режиме на вкладке «Совместимость» имеется отдельная кнопка «Запустить средство устранения проблем с совместимостью». После чего вам предложат либо использовать рекомендованные параметры, либо провести диагностику программы.

img 2018 02 12 13 42 22 1Если и после этого программа не запустилась, то стоит подойти к проблеме более основательно и попробовать варианты, указанные на официальном сайте Microsoft.

Более радикальным методом запуска программы является ее установка и использование в виртуальной машине с установленной Windows 7 32 bit. Подробнее, как установить и настроить виртуальную машину вы можете почитать в нашей статье «Как создать и настроить на ПК виртуальную ОС?».

Источник

Урок 2. Поддержка 32-битных приложений в 64-битной среде Windows

Прежде чем приступить к тематике разработки кода 64-битных программ, остановимся на вопросе обратной совместимости 64-битных версий Windows с 32-битными приложениями. Обратная совместимость осуществляется за счет механизмов, реализованных в WoW64.

Подсистема WoW64 не поддерживает следующие программы:

Накладные расходы

Существуют различия WoW64 в зависимости от архитектуры процессора. Например, 64-битная версия Windows разработанная для процессора Intel Itanium 2 использует WoW64 для эмуляции x86 инструкций. Такая эмуляция весьма ресурсоемка по сравнению с WoW64 для архитектуры Intel 64, так как происходит переключение с 64-битного режима в режим совместимости при выполнении 32-битных программ.

Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими, как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.

Преимущество 64-битной среды для 32-битных программ

Из-за наличия прослойки WoW64 32-битные программы работают менее эффективно в 64-битной среде, чем в 32-битной. Но все-таки простые 32-битные приложения могут получить одно преимущество от их запуска в 64-битной среде. Вы, наверное, знаете, что программа, собранная с ключом /LARGEADDRESSAWARE:YES, может выделять до 3-х гигабайт памяти, если 32-битная операционная система Windows запущена с ключом /3gb. Так вот, эта же 32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB).

Перенаправления

Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%System32 в папку %systemroot%SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.

Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN «Running 32-bit Applications».

Почему невозможно использовать в 64-битной программе 32-битные DLL? Можно ли это обойти?

А вот загрузить ресурсы из 32-битной DLL в 64-битный процесс совсем несложно. Это можно сделать, если при вызове LoadLibraryEx указать флаг LOAD_LIBRARY_AS_DATAFILE.

Постепенный отказ от поддержки 32-битных программ

Вполне естественно, если компания Microsoft будет стимулировать переход на 64-битные системы, постепенно отказываясь от поддержки 32-битных программ в ряде версий операционной системы Windows. Конечно, это будет очень медленный процесс. Но все-таки первые шаги в этом направлении уже сделаны.

Многие администраторы знают про относительно новый режим установки и работы серверной версии операционной системы под названием Server Core. Это тот режим, о котором участники войн «Windows vs Linux» говорили очень давно. Одним из аргументов сторонников использования Linux на сервере была возможность установить серверную ОС без графического интерфейса (GUI). Но вот и в Windows Server появилась такая возможность. Установка в этом режиме позволяет получить только командную строку без пользовательского интерфейса.

Эта возможность (установка Server Core) появилась в Windows Server 2008. Но в Windows Server 2008 R2 появилось нововведение, приближающее 64-битное будущее. При установке Windows Server 2008 R2 (Server Core) поддержка запуска 32-битных приложений стала опциональной. Причем по умолчанию эта поддержка выключена. И при попытке запуска 32-битного приложения в режиме Server Core пользователь получит сообщение о невозможности запуска. Конечно, можно добавить поддержку 32-битных программ:

start /w ocsetup ServerCore-WOW64

В обычном (Full Installation) режиме 32-битные приложения по умолчанию запускаются, а вот в Server Core уже нет.

Тенденция очевидна. Со временем все более рациональным будет создание 64-битных версий приложений, так как они смогут функционировать на большем числе версий операционных систем.

Дополнительная информация

Интересным источником информации по системе WoW64 является блог Алексея Пахунова: http://blog.not-a-kernel-guy.com/. Алексей является сотрудником компании Microsoft и принимает непосредственное участие в разработке подсистемы WoW64.

Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com).

Источник

Как заставить старые программы работать в Windows 10

Большая часть старых приложений, работающих на предыдущих версиях операционной системы Microsoft, также запускаются и на ПК с Windows 10 на борту. Правда, некоторые программы, которыми вы благополучно пользовались ранее, выдают различные ошибки в момент запуска и отказываются работать. Однако существует несколько способов решения данной проблемы.

Запуск от имени администратора

Многие устаревшие программы смогут корректно запуститься в Windows 10, но при одном условии. Во времена расцвета Windows XP среднестатистический юзер обычно использовал свой ПК с учетной записью администратора. Программы писались таким образом, чтобы самостоятельно получать административный доступ, а в случае неудачи просто отказывались запускаться. Новая функция контроля учетных записей (UAC) позволяет предоставить необходимый доступ, но поначалу возникали некоторые проблемы.

Если программа работает неправильно или не запускается вовсе, потребуется вручную предоставить административный доступ, кликнув правой кнопкой мыши по ярлыку или исполняемому файлу и во всплывающем меню на строку «Запуск от имени администратора». Если данное действие помогло, то рекомендуется включить его для запуска по умолчанию в параметрах совместимости приложения.

01 1

Настройка параметров совместимости

Параметры совместимости приложений в последней версии операционной системы Microsoft предоставляют возможности эмуляции среды запуска предыдущих версий Windows. Для их настройки необходимо перейти к свойствам исполняемого файла проблемного приложения. На вкладке «Совместимость» присутствует возможность автоматического поиска и решения проблем с помощью кнопки вызова соответствующего мастера и ручной настройки параметров.

02 1

К примеру, если вы уверены, что программа запускалась на Windows XP, то выберите нужный параметр в разделе «Режим совместимости». Проверьте необходимость задействования остальных настроек. Старым играм может потребоваться «Режим пониженной цветности». Если вы используете экран с высокой плотностью пикселей, полезным окажется отключение масштабирования. Так интерфейс запущенной программы не будет выглядеть растянутым по вертикали или горизонтали.

Установка неподписанных или 32-битных драйверов

С целью обеспечения безопасности и безотказности работы Windows 10 требует подписывания всех установленных в систему драйверов. Особенно это касается новых устройств с интерфейсом UEFI. Представленная функция блокирует проникновение в ОС нестабильных или даже опасных драйверов. Однако есть возможность обойти защиту, убедившись перед этим в безопасности и необходимости конкретного драйвера.

При установке неподписанных драйверов с использованием специальной опции следует обратить внимание на поддержку разрядности, поскольку 32-битные драйверы в 64-битную систему установить невозможно.

Использование виртуальной машины

По мере полного завершения поддержки одной из старых версий операционной системы, она исчезает из списка возможных вариантов эмуляции совместимости. Именно это произошло с Windows XP в «десятке». В качестве альтернативы существует возможность запуска старой ОС на виртуальной машине с помощью специального приложения, такого как VirtualBox. Понадобится лишь образ Windows XP, который после установки и запуска на виртуальной машине позволит пользоваться старыми программами в одном из окон Windows 10.

03 1

Представленный способ, несмотря на достаточную сложность, повысит вероятность запуска и комфортной работы со старой программой. Однако следует учитывать довольно слабую поддержку периферии виртуальными машинами.

16-битные приложения

16-битные приложения не запустятся на 64-разрядной Windows 10 по причине отсутствия необходимых для их функционирования библиотек. Выходом может стать установка 32-битной версии операционной системы. Однако и здесь на помощь может прийти виртуальная машина, ведь не каждый пользователь захочет заново устанавливать и настраивать новую ОС.
Но лучшим выходом, если такая возможность существует, станет поиск замены старому, проблемному приложению.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Обзор соображений совместимости для 32-битных программ для 64-битных версий Windows

В этой статье рассматриваются соображения совместимости и ограничения для 32-битных программ, работающих на 64-битных версиях Windows.

Применяется к: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 896456

Сводка

В 64-битных версиях Windows подсистема Microsoft Windows-32-on-Windows-64 (WOW64) для запуска 32-битных программ без изменений. 64-битные версии Windows не поддерживают 16-битные и 32-битные драйверы. Программы, зависят от 16-битных сеяных или 32-битных драйверов, не могут работать на 64-битных версиях Windows, если производитель программы не предоставляет обновление для программы.

Могут возникнуть соображения, влияющие на совместимость или производительность программы. Вы можете определить, будет ли программа иметь проблемы с совместимостью или производительностью, опробовав программу на одной из 64-битных версий Windows.

В этой статье описываются некоторые соображения совместимости для запуска 32-битных программ в 64-битных версиях Windows. В этой статье не сравнивают 32-битные и 64-битные версии Windows 64-битных операционных систем. В этой статье предполагается, что вы понимаете разницу между 32-битными и 64-битными бинарами.

Введение

X64-версии Microsoft Windows оптимизированы для запуска 64-битных программ. Кроме того, x64-версии Windows подсистемы WOW64 для запуска 32-битных программ.

Запуск 32-битных программ

Подсистема WOW64 позволяет 32-битным программам работать без изменений в x64-версиях Windows. Подсистема WOW64 создает 32-битную среду в версиях x64 Windows. Дополнительные сведения о подсистеме WOW64 см. в разделе «Запуск 32-битных приложений» в разделе 64-bit Windows документации microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Microsoft: Запуск 32-битных приложений

Соображения производительности программы

Подсистема WOW64 создает 32-битную среду на основе x64 версий Windows. Некоторые 32-битные программы могут работать в этих операционных системах медленнее, чем в 32-битных версиях Windows. Кроме того, некоторые 32-битные программы, которые требуют много воспоминаний, могут демонстрировать повышенную производительность в x64-версиях Windows. Это увеличение производительности происходит потому, что x64-версии Windows поддерживают больше физической памяти, чем 32-битные версии Windows.

Дополнительные сведения о различиях в управлении памятью между 64-битными и 32-битными версиями Windows см. в разделе «Виртуальное адресное пространство» в разделе «Управление памятью» документации microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Microsoft: виртуальное пространство адресов

Ограничения подсистемы WOW64

Подсистема WOW64 не поддерживает следующие программы:

16-битные программы

X64-версии Windows не поддерживают 16-битные или 16-битные компоненты программы. Эмуляция программного обеспечения, необходимая для запуска 16-битных программ в версии Windows x64, значительно снизит производительность этих программ.

16-битный установщик часто используется для установки и настройки 32-битной программы. Кроме того, некоторые 32-битные программы требуют правильного запуска 16-битных компонентов. Хотя 32-битные программы с 16-битным компонентом могут работать правильно после установки, 16-битный установщик не может установить 32-битную программу. Программы, для работы с 16-битным компонентом не могут работать на x64-версии Windows.

Если 32-битная программа с 16-битным компонентом попытается запустить 16-битный файл или компонент, 32-битная программа будет входить в журнал system сообщение об ошибке. После этого операционная система позволит 32-битной программе справиться с ошибкой.

Чтобы определить, требуется ли для программы 16-битный компонент, установите и запустите программу. Если программа создает сообщение об ошибке, обратитесь к производителю программы для обновления, совместимого с x64-версиями Windows.

32-битные драйверы

X64-версии Windows не поддерживают 32-битные драйверы. Все драйверы аппаратных устройств и драйверы программ должны быть компилируются специально для x64-версии Windows.

Если 32-битная программа пытается установить 32-битный драйвер на компьютере с версией Windows x64, установка драйвера не удается. Когда такое поведение происходит, x64-основанная версия Windows сообщает об ошибке в 32-битную программу.

Если 32-битная программа пытается зарегистрировать 32-битный драйвер для автоматического запуска на компьютере с версией Windows на основе x64, загрузчик загрузки на компьютере распознает, что 32-битный драйвер не поддерживается. X64-версия Windows не запустит 32-битный драйвер, но запустит другие зарегистрированные драйверы.

Чтобы определить, требуется ли программе 32-битный драйвер, установите и запустите программу. Если программа создает сообщение об ошибке, обратитесь к производителю программы для обновления, совместимого с x64-версиями Windows.

Дополнительные рекомендации

Перенаправление реестра и файлов

Дополнительные сведения о перенаправлении файловой системы и реестра см. в разделе «Запуск 32-битных приложений» в разделе 64-bit Windows документации microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Microsoft: Запуск 32-битных приложений
Подсистема WOW64 перенаправляет 32-битные двоичные вызовы, не требуя изменений в 32-битных двоичных файлах. Однако при выполнении некоторых задач вы можете увидеть доказательства этого перенаправления. Например, если ввести сценарий командной строки в 64-битной командной строке, команда может не получить доступ к 32-битным программам в папке «Файлы программ». Подсистема WOW64 перенаправляет и устанавливает 32-битные программы в папке Program Files (x86). Чтобы получить доступ к правильной папке, необходимо изменить сценарий командной строки. Кроме того, необходимо ввести скрипт командной строки в 32-битной командной строке. 32-битная командная подсказка автоматически перенаправляет вызовы файловой системы в правильный 32-битный каталог.

Чтобы запустить 32-битную командную подсказку, выполните следующие действия:

Проверка версии

Некоторые 32-битные программы изучают сведения о версии операционной системы. Многие 32-битные программы, которые выполняют эту проверку, не распознают x64-версии Windows как совместимые операционные системы. При таком поведении 32-битная программа создает ошибку проверки версии, а затем закрывается. Если такое поведение происходит, обратитесь к производителю 32-битной программы для обновления, совместимого с x64-версиями Windows.

OpenGL

X64-версии Windows не включают драйвер графики OpenGL. Обратитесь к производителю устройства для драйвера, который совместим с x64-версиями Windows.

Консоль управления Майкрософт (MMC)

В x64-версиях Windows 64-битная версия консоли управления Microsoft (MMC) для запуска различных оснастки. Однако иногда может потребоваться, чтобы 32-битная версия MMC запускала оснастку в подсистеме WOW64. Дополнительные сведения о поведении MMC в x64-версиях Windows см. в статье «Запуск 32-битных и 64-битных 64-битных 64-битных 64-битных 64-битных Windows» в разделе Использование MMC 2.0 документации microsoft Platform SDK. Чтобы просмотреть этот документ, посетите следующий веб-сайт Microsoft: запуск 32-битных и 64-битных 64-битных 64-битных 64-битных Windows

x64 Considerations

X64-версии Windows поддерживают 32-битные инструкции и 64-битные инструкции. Подсистема WOW64 может запускать 32-битные программы в родном 64-битном режиме, переключая родной режим процессора. Отдельные уровни оборудования или программного обеспечения не требуются. При запуске 32-битной программы на основе x64 версий Windows вы можете не испытывать снижения производительности.

Дополнительные сведения о производительности процессора на основе x64 обратитесь к производителю процессора или посетите веб-сайт производителя. Сведения и решение, представленные в этом документе, представляют текущее представление корпорации Майкрософт по этим вопросам на дату публикации. Это решение доступно через Корпорацию Майкрософт или сторонний поставщик. Корпорация Майкрософт специально не рекомендует сторонних поставщиков или сторонних решений, которые могут быть описаны в этой статье. В этой статье также могут быть другие сторонние поставщики или сторонние решения. Поскольку Корпорация Майкрософт должна реагировать на изменение условий на рынке, эта информация не должна быть интерпретируется как обязательство корпорации Майкрософт. Корпорация Майкрософт не может гарантировать или одобрять точность любой информации или любого решения, представленного Корпорацией Майкрософт или любым упомянутым сторонним поставщиком.

Корпорация Майкрософт не делает никаких гарантий и исключает все представления, гарантии и условия, будь то экспресс, подразумеваемые или нормативные. К ним относятся, но не ограничиваются представлениями, гарантиями или условиями названия, неущемления, удовлетворительного состояния, торговой доступности и пригодности для определенной цели, в отношении любых служб, решений, продуктов или любых других материалов или сведений. В любом случае Корпорация Майкрософт не несет ответственности за любое стороне решение, которое упоминается в этой статье.

Ссылки

Дополнительные сведения об процессоре AMD64 можно получить на следующем веб-сайте Advanced Micro Devices: ВЕБ-сайт AMD
Контактные данные сторонних организаций предоставлены в этой статье с целью помочь пользователям получить необходимую техническую поддержку. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не дает гарантий относительно правильности приведенных контактных данных сторонних производителей.

Дополнительные сведения о разработке программ для версий Windows Server 2003 и Windows XP можно найти на следующем веб-сайте Microsoft: Введение в разработку приложений для 64-битной версии Windows

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.

Источник

  • Накладные расходы
  • Преимущество 64-битной среды для 32-битных программ
  • Перенаправления
  • Почему невозможно использовать в 64-битной программе 32-битные DLL? Можно ли это обойти?
  • Постепенный отказ от поддержки 32-битных программ
  • Дополнительная информация

Прежде чем приступить к тематике разработки кода 64-битных программ, остановимся на вопросе обратной совместимости 64-битных версий Windows с 32-битными приложениями. Обратная совместимость осуществляется за счет механизмов, реализованных в WoW64.

WoW64 (Windows-on-Windows 64-bit) — подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows.

Подсистема WoW64 не поддерживает следующие программы:

  • программы, скомпилированные для 16-разрядных операционных систем;
  • программы режима ядра, скомпилированные для 32-разрядных операционных систем.

Накладные расходы

Существуют различия WoW64 в зависимости от архитектуры процессора. Например, 64-битная версия Windows разработанная для процессора Intel Itanium 2 использует WoW64 для эмуляции x86 инструкций. Такая эмуляция весьма ресурсоемка по сравнению с WoW64 для архитектуры Intel 64, так как происходит переключение с 64-битного режима в режим совместимости при выполнении 32-битных программ.

WoW64 на архитектуре Intel 64 (AMD64 / x64) не требует эмуляции инструкций. Здесь подсистема WoW64 эмулирует только 32-битное окружение за счет дополнительной прослойки между 32-битным приложением и 64-битным Windows API. Где-то эта прослойка тонкая, где-то не очень. Для средней программы потери в производительности из-за наличия такой прослойки составят около 2%. Для некоторых программ это значение может быть больше. Два процента — это немного, но следует учитывать, что 32-битные приложения работают немного медленнее под управлением 64-битной операционной системы Windows, чем в 32-битной среде.

Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими, как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.

Преимущество 64-битной среды для 32-битных программ

Из-за наличия прослойки WoW64 32-битные программы работают менее эффективно в 64-битной среде, чем в 32-битной. Но все-таки простые 32-битные приложения могут получить одно преимущество от их запуска в 64-битной среде. Вы, наверное, знаете, что программа, собранная с ключом /LARGEADDRESSAWARE:YES, может выделять до 3-х гигабайт памяти, если 32-битная операционная система Windows запущена с ключом /3gb. Так вот, эта же 32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB).

Перенаправления

Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%System32 в папку %systemroot%SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.

Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN «Running 32-bit Applications».

Почему невозможно использовать в 64-битной программе 32-битные DLL? Можно ли это обойти?

Загрузить 32-битную DLL из 64-битного процесса и выполнить код из неё невозможно. Невозможно в силу дизайна 64-битных систем. В принципе, невозможно. Не помогут ни хитрости, ни недокументированные пути. Для этого нужно загрузить и проинициализировать WoW64, не говоря уже о структурах в ядре. Фактически нужно будет на лету превратить 64-битный процесс в 32-х битный. Подробнее эта тема рассмотрена в посте «Недокументированные функции; Загрузка 32-х битных DLL в 64-х битный процесс». Единственное, что можно порекомендовать, — это создание суррогатного процесса и взаимодействия с ним посредством технологии COM. Об этом рассказывается в статье «Accessing 32-bit DLLs from 64-bit code».

А вот загрузить ресурсы из 32-битной DLL в 64-битный процесс совсем несложно. Это можно сделать, если при вызове LoadLibraryEx указать флаг LOAD_LIBRARY_AS_DATAFILE.

Постепенный отказ от поддержки 32-битных программ

Вполне естественно, если компания Microsoft будет стимулировать переход на 64-битные системы, постепенно отказываясь от поддержки 32-битных программ в ряде версий операционной системы Windows. Конечно, это будет очень медленный процесс. Но все-таки первые шаги в этом направлении уже сделаны.

Многие администраторы знают про относительно новый режим установки и работы серверной версии операционной системы под названием Server Core. Это тот режим, о котором участники войн «Windows vs Linux» говорили очень давно. Одним из аргументов сторонников использования Linux на сервере была возможность установить серверную ОС без графического интерфейса (GUI). Но вот и в Windows Server появилась такая возможность. Установка в этом режиме позволяет получить только командную строку без пользовательского интерфейса.

Эта возможность (установка Server Core) появилась в Windows Server 2008. Но в Windows Server 2008 R2 появилось нововведение, приближающее 64-битное будущее. При установке Windows Server 2008 R2 (Server Core) поддержка запуска 32-битных приложений стала опциональной. Причем по умолчанию эта поддержка выключена. И при попытке запуска 32-битного приложения в режиме Server Core пользователь получит сообщение о невозможности запуска. Конечно, можно добавить поддержку 32-битных программ:

start /w ocsetup ServerCore-WOW64

В обычном (Full Installation) режиме 32-битные приложения по умолчанию запускаются, а вот в Server Core уже нет.

Тенденция очевидна. Со временем все более рациональным будет создание 64-битных версий приложений, так как они смогут функционировать на большем числе версий операционных систем.

Дополнительная информация

Интересным источником информации по системе WoW64 является блог Алексея Пахунова: http://blog.not-a-kernel-guy.com/. Алексей является сотрудником компании Microsoft и принимает непосредственное участие в разработке подсистемы WoW64.

Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com).

Правообладателем курса «Уроки разработки 64-битных приложений на языке Си/Си++» является ООО «Системы программной верификации». Компания занимается разработкой программного обеспечения в области анализа исходного кода программ. Сайт компании: http://www.viva64.com.

Категория ~
Фундаментальные статьи
– Автор:

Игорь (Администратор)

  • Поддержка 32-битных приложений в 64-разрядной Windows
  • Устройство поддержки 32-битных приложений в 64-разрядной Windows
  • Windows 32 на Windows 64 (WOW64)
  • Дополнительные возможности для запуска 32-битных приложений в Windows 64
  • Подытоживая сказанное о поддержке 32-бит в 64-разрядной Windows

Поддержка 32-битных приложений в 64-разрядной Windows

Поддержка 32-битных приложений в 64-разрядной версии WindowsПоявление 64-разрядных Windows вызвало немало вопросов. Поддержка 32-битных приложений, драйверов и всего того, что рассчитано на архитектуру x86. Установка и особенности использования программ. Вводимые ограничения для 32-разрядных приложений. Поддержка старых режимов и многое другое. Все это никак не могло остаться в стороне. Ведь, пласт 32-разрядного наследия слишком велик, и в 64-битной среде его мало чем можно заменить, даже сейчас.

В этой статье приводится обзор подсистемы Windows на Windows 64 (WOW64) и ее методов, которые позволяют Windows поддерживать 32-битные приложения на 64-битной системе.

Примечание: Первая попытка внедрить 64-разрядные системы была достаточно провальной. Жесткие ограничения и отсутствие реальных преимуществ давало о себе знать. На тот момент, даже драйвера под 64-разрядные системы было достаточно сложно найти. Не говоря уже о программах, на которых хоть как-либо была бы заметна разница. Снятие ограничения на 3Гб оперативной памяти, безусловно, сегодня сильное преимущество, но на тот момент это больше напоминало красивый слоган.

Устройство поддержки 32-битных приложений в 64-разрядной Windows

Windows 32 на Windows 64 (WOW64)

WOW64 эмулирует 32-битную Windows

В Windows 64, 32-битные приложения выполняются в эмулированной 32-разрядной операционной системе, которая называется Windows 32 на Windows 64, или WOW64 для краткости. Основной задачей WOW64 является перехват и обработка всех системных вызовов от 32-разрядных приложений.

Для каждого перехваченного системного вызова, WOW64 создает 64-разрядный системный вызов, превращая 32-битные структуры данных в подходящие 64-битные. В последствии, 64-битный системный вызов передается ядру операционной системы для обработки. Все полученные выходные данные 64-битного вызова будут преобразованы и переданы в том формате, на которое приложение рассчитывало. Другими словами, реальные запросы к ядру системы всегда 64-битные. Подсистема WOW64 лишь выступает в качестве посредника, приобразуя данные в подходящие форматы.

Как и 32-битные приложения, WOW64 выполняется от имени пользователя, так что ошибки, которые могут происходить во время преобразования системных вызовов, будут происходить на уровне пользователя. И никак не затронут 64-битное ядро операционной системы.

Тот факт, что WOW64, как и 32-битное приложение, выполняется в режиме пользователя, объясняет причину отсутствия поддержки 32-битных драйверов. Если говорить другими словами, то, для корректного запуска, драйверам требуется режим ядра, который не может обеспечить WOW64. Поэтому, если у вас 64-разрядная Windows, то все драйвера должны быть 64-битными.

Эмулятор WOW64 состоит из следующих 64-разрядных библиотек:

Примечание: Это единственные 64-разрядные библиотеки, которые загружаются в 32-разрядный процесс.

  • Wow64.dll — ядро инфраструктуры системы эмуляции. Линкует вызовы в точки входа Ntoskrnl.exe
  • Wow64Win.dll — линкует вызовы в точки входа Win32k.sys
  • Wow64Cpu.dll — переключает процессор между 32-битным и 64-битным режимом
  • Ntdll.dll — 64-битная версия Wow64.

Wow64.dll загружает 32-битную версию (x86) Ntdll.dll и все необходимые 32-битные библиотеки, которые в основном остались без изменений. Однако, некоторые их этих 32-разрядных библиотек все же были изменены, чтобы корректно исполняться в WOW64. Как правило, такие изменения были сделаны из-за того, что они используют оперативную память вместе 64-разрядными компонентами системы

Управление файлами и настройками реестра в WOW64

В дополнение к функциям перехвата и обработки системных вызовов, интерфейс WOW64 так же должен гарантировать, что файлы и параметры реестра 32-битных приложений будут храниться отдельно от файлов и ключей реестра 64-разрядных программ. Для достижения этой цели WOW64 использует два механизма. Перенаправление файлов и реестра, а так же дублирования ключей реестра. Перенаправление поддерживает логическое представление данных и отображает их так, как если бы приложение запускалось в 32-разрядной Windows. Дублирование ключей реестра гарантирует, что изменение ряда параметров, которые не зависят от разрядности, будут доступны как 32-битным, так и 64-битным приложениям.

Перенаправление файлов

Перенаправление файлов позволяет гарантировать, что файлы и каталоги 32- и 64-битных приложений будут храниться отдельно и не мешать друг другу.

Файлы 32-разрядных приложений, по умолчанию, устанавливаются в:

  • C:Program Files(x86)

32-разрядные системные файлы устанавливаются в:

  • C:WINDOWSSysWOW64

Для 64-разрядных приложений, файлы устанавливаются в:

  • C:Program Files
  • C:WINDOWSSYSTEM32

Механизм перенаправления WOW64 гарантирует, что запросы от 32-разрядных приложений к каталогам «C:Program Files» и «C:WINDOWSSYSTEM32» будут перенаправлены на соответствующие каталоги для 32-битных версий.

Однако, существует одна проблема с перенаправлением файлов. Пользователи и разработчики должны быть в курсе этой особенности.

Многие 64-разрядные приложения все еще используют 32-битный режим и процедуры. И не учитывают это при создании инсталлятора. Для того, чтобы приложение было установлено правильно. т.е. в «C:Program Files», программа установки должна сделать системный вызов к операционной системе, чтоб система приостановила механизм перенаправления файлов Wow64. А после установки сделать другой системный вызов, чтобы снова включить перенаправление. Если производить установку без остановки перенаправления, то программа будет установлена в «C:Program Files (x86)». Классическим примером данной ошибки является 64-разрядная версия FireFox 3.5 под кодовым названием «Shiretoko», которая устанавливается в «C:Program Files(x86)Shiretoko». Конечно, Firefox по-прежнему будет нормально функционировать. Единственное, что вы не сможете сделать, так это изменить иконку приложения.

Примечание: Возможно, сейчас эту ошибку в Shiretoko уже исправили. Тем не менее, в ранних версиях было именно так.

Перенаправление реестра

Ключи реестра, специфические для 32-разрядных приложений, будут перенаправлены из ветки:

  • HKEY_LOCAL_MACHINESoftware

в ветку:

  • HKEY_LOCAL_MACHINESoftwareWOW6432Node

Так же, иногда, можно встретить записи реестра в другой ветке (хотя это необычно):

  • HKEY_CURRENT_USERSoftwareWOW6432Node

Такой подход позволяет 32- и 64-битным приложениям нормально сосуществовать, без проблем с перезаписью настроек друг друга.

Дублирование реестра

Некоторые перенаправленные ключи и значения реестра необходимо дублировать. Это означает, что если 32-разрядное приложение вносит изменения в перенаправленном разделе реестра, то эти изменения необходимо так же применять и для веток 64-разрядных приложений. В данном случае действует принцип «кто последний, тот и прав». Например, если вы установите три приложения, привязывающие себя к одному и тому же расширению файла, то ассоциация с расширением файла должны быть с последним приложением. 

  1. Установите 32-битное приложение, которое ассоциирует себя с расширением XYZ
  2. Установите 64-разрядную версию приложения, которая связывает себя с расширением файла XYZ
  3. Установите другое 32-битное приложение, которое ассоциирует расширение XYZ с собой

В результате этих действий, по двойному щелчку на файле с расширение XYZ в проводнике Windows должно открыться приложение, которое было установлено на 3-ем шаге. Ведь, именно оно последним ассоциировало себя с расширением.

Все это происходит прозрачно для 32-битных приложений в Wow64, которая самостоятельно перехватывает обращения и дублирует необходимые параметры и ключи реестра. Другими словами, 32-разрядные приложения могут выполнятся стандартным образом, необходимые изменения за них внесет Wow64.

Существует ряд ограничений подсистемы WOW64

Некоторые, но не все, 64-битные функции доступны 32-разрядным приложениям 

Wow64 позволяет 32-разрядным приложениям использовать некоторые функции и возможности 64-битных систем. Например, при правильной настройке, такие приложения смогут использовать до 4Гб оперативной памяти. Доступ к другим функциям ограничен из-за особенности устройства 64-битных систем. Например, 64-битная ОС Windows поддерживает 64-битные логические операции. Тем не менее, 32-битные приложения не будут иметь доступ к ним, они смогут использовать только 32-битные логические операции. 

Примечание: Основной причиной ограничений служит разница в представлении данных 32- и 64-битных приложений. 32-разрядное приложение попросту не рассчитано на 64-разрядные типы данных.

Нельзя смешивать между собой код (Code Injection) 32-битных и 64-битных приложений

В 64-битной ОС Windows нельзя запускать 32-битный код в 64-разрядном процессе, как и нельзя запускать 64-битный код в 32-разрядном процессе. Приложения, использующие инъекции кода (Code Injection) для добавления функциональности в существующие приложения, как правило, будут выдавать ошибки.

Этот факт объясняет, почему большинство 32-битных расширений оболочки Windows не запускаются под 64-разрядной Windows. Большинство таких расширений используют инъекцию кода (Code Injection) для встраивания в проводник Windows

WOW64 не поддерживает 16-разрядные инсталляторы

WOW64 обеспечивает поддержку 16-битных инсталляторов Microsoft, путем замены инсталлятора на совместимую 32-битную версию. Тем не менее, эта поддержка не распространяется на сторонние продукты. Так что, если вам нужно использовать старую программу, то, скорее всего, придется искать эмулятор или портативную версию.

Дополнительные возможности для запуска 32-битных приложений в Windows 64

Windows Virtual PC

Windows Virtual PC это бесплатное программное обеспечение, которое позволяет запускать несколько операционных систем на одном компьютере. Virtual PC обеспечивает специальную среду исполнения, которая поддерживает устаревшее оборудование и программное обеспечение, которое не будет определяться и запускаться в Windows 7. Все запущенные операционные системы под Virtual PC будут выполняться в виртуальной машине. Это означает, что запущенные операционные системы не будут знать о том, что они запущены в другой системе. 

Системные требования и набор функциональности существенно различается между версиями Virtual PC и версиями Windows. Так что, прежде чем пытаться использовать Virtual PC, необходимо проверить, что программа поддерживает как вашу операционную систему, так и те ОС, которые будут на ней запущены. Например, одна из последних версий уже не поддерживает версии Windows ниже Windows XP SP3.

Режим Windows XP (XPM)

Режим Windows XP это конкретная и урезанная реализация Windows Virtual PC, которая поставляется с предустановленной копией Windows XP Professional SP3. Этот режим доступен только в версиях Enterprise, Ultimate и Professional Windows 7 64-бит.

Несмотря на то, какие возможности был бы должен представлять этот режим, многие, кто использовал XPM, настоятельно советуют использовать этот режим только в качестве последнего средства. По сравнению с другими продуктами виртуализации, производительность разочаровывает, а конфигурация по умолчанию вызывает ряд вопросов безопасности.

Примечание: К некоторым более дательным настройкам режима совместимости все же можно обратиться. Более подробную информацию вы можете найти в обзоре Как запустить старые программы на Windows 7 / Vista? (см. Microsoft Application Compatibility Toolkit).

Мультизагрузка ОС Windows

Вы можете установить более одной версии Windows на одном компьютере, с помощью мультизагрузчика. Например, установить 32-разрядную и 64-разрядную версии Windows рядом друг с другом. Каждая операционная система устанавливается на отдельный раздел диска, а менеджер загрузки устанавливается на разделе по умолчанию. Менеджер загрузки позволяет выбрать и запустить операционную систему, которую вы хотите сейчас использовать. 

Хоть, вы и не можете одновременно использовать больше одной операционной системы, эта функциональность является достаточно полезной. По сравнению с виртуальными машинами, такой способ не имеет никаких проблем с совместимостью и такие системы гораздо легче настраивать и обслуживать. Кроме всего прочего, установив 32-разрядную версию рядом с 64-битной, вы сохраните возможность запускать 16-битные приложения.

Подытоживая сказанное о поддержке 32-бит в 64-разрядной Windows

Большинство 32-разрядных приложений будут вполне счастливо себя чувствовать в Windows 64. Основными исключениями будут:

  1. 32-разрядные драйверы устройств
  2. Приложения, которые не могут функционировать без 32-битных драйверов устройств, которые они используют. Яркими примерами являются антивирусы и другие программы для обеспечения безопасности.
  3. Расширения, которые используют инъекцию кода (Code injection). Например, оболочки для проводника Windows

Некоторые приложения смогут запускаться с ограничениями. Это так же касается деинсталляторов, программ для очистки реестра и программ для тюнинга, так как они имеют доступ только к той части реестра, которую им показывает Wow64.

Если вы никак не можете запустить 32-битное приложение, то рассмотрите вариант с виртуализацией или мультизагрузкой нескольких операционных систем.

Какие приложения быстрее 32-битные или 64-битные?

Этот вопрос звучит достаточно часто. Но, нет никакого общего правила или коэффициента умножения, поскольку все зависит от задач и используемых функций процессора.

Если сравнивать 32- и 64-разрядные приложения в своих родных средах, то 32-битное приложение, как правило, использует меньше памяти, чем эквивалентное 64-разрядное приложение. Это происходит потому, что 64-битные версии используют 64-битные структуры данных, которые занимают вдвое больше места. Дополнительный размер напрямую влияет на время запуска и закрытия программы, а так же на другие виды операций, связанных с доступом к дисковым накопителям. Обычно, это означает, что 32-разрядные приложения будут выполняться быстрее. Тем не менее, использование 64-битными программами особенностей 64-разрядного процессора потенциально позволяет приложению выполняться на 25% быстрее, по сравнению с 32-битными программами.

Кроме того, необходимо помнить, что запуск 32-битного приложения на 64-разрядной Windows означает запуск Wow64, поэтому анализ производительности на 32-битном процессоре можно отложить в сторону. Запуск Wow64 означает не только затраты на преобразование вызовов, но и учет механизмов перенаправления и дублирования, которым требуются не только процессорное время, но и оперативная память. Поэтому, возможно, 32-разрядное приложение будет выполняться быстрее 64-битного, но оно однозначно будет выполняться медленнее, чем при эквивалентном запуске на 32-битном процессоре.

И самое главное, вы всегда должны понимать, что увеличение размера регистров процессора, а именно это и обозначают цифры 32 и 64, никак не влияет на саму задачу. Если задача не зависит от объема или диапазонов значений, то увеличение разрядности не будет играть почти никакой роли. Другими словами, от того что вы сложите продукты в большой холодильник, продуктов не станет больше и быстрее они не охладятся.

Теперь, вы знаете ряд особенностей запуска 32-битных приложений на 64-разрядных Windows. А так же что такое Wow64 и какие ограничения он накладывает на 32-разрядные программы.

☕ Понравился обзор? Поделитесь с друзьями!

  • Устройство DNS сервера

    Устройство DNS сервера
    Фундаментальные статьи

  • Как правильно задавать технические вопросы?

    Как правильно задавать технические вопросы?
    Фундаментальные статьи

  • Почему вам стоит знать о состоянии (здоровье) жестких дисков?

    Почему вам стоит знать о состоянии (здоровье) жестких дисков?
    Фундаментальные статьи

  • Понятие 32-бита и 64-бита - подробное толкование концепций

    Понятие 32-бита и 64-бита — подробное толкование концепций
    Фундаментальные статьи

  • Устройство UAC Windows 7

    Устройство UAC Windows 7
    Фундаментальные статьи

  • Понятие бесплатного программного обеспечения (Freeware)

    Понятие бесплатного программного обеспечения (Freeware)
    Фундаментальные статьи

Добавить комментарий / отзыв

I’ve got a Windows 10 Computer (home edition), which has 4GB of Ram and an i5 processor. I need to run an old 32 bit accounting programme. The vendor said it won’t release a 64 bit version (although a 64bit version exists, it’s missing key features from the older version).

The programme installs fine, but when I click on the programme icon, it says the programme won’t work on a 64 bit system.

What options do I have?


I’ve done a fair bit of research, but it seems to run up dead ends.

1) WoW64

Link

Apparently, this is supposed to let you run 32 bits on 64 bit Windows. However, I am not sure how to install it. I think it’s for web servers only. However, this Stack Overflow thread says it can work on Windows 7, but doesn’t explain how to set it up (or if it will work on Windows 10).

2) XP mode

Link

A 32bit Windows XP emulator. However, it seems to be for Windows 7 only. Also according to this Stack Overflow thread, you need Windows Professional.

3) Virtual Box Machine

Link

Let’s you emulate Windows. Seems overkill for my purposes. Plus I would need to buy a 32 bit Windows license. I think it would run slowly with 4GB of Ram.

4) Partition drive into 32bit and 64 bit versions
Apparently, you can use the free tool EaseUS to split the drive into two and then install separate 32bit and 64 bit versions.

Again, seems overkill and it looks like I would need buy a 32 bit Windows 10 license.

Are these my only options?


Images

Installation

Installation

First run (From the error message I guess it’s a 16-bit program)
First run

Clicking on programme
When clicking on Programme

I’ve got a Windows 10 Computer (home edition), which has 4GB of Ram and an i5 processor. I need to run an old 32 bit accounting programme. The vendor said it won’t release a 64 bit version (although a 64bit version exists, it’s missing key features from the older version).

The programme installs fine, but when I click on the programme icon, it says the programme won’t work on a 64 bit system.

What options do I have?


I’ve done a fair bit of research, but it seems to run up dead ends.

1) WoW64

Link

Apparently, this is supposed to let you run 32 bits on 64 bit Windows. However, I am not sure how to install it. I think it’s for web servers only. However, this Stack Overflow thread says it can work on Windows 7, but doesn’t explain how to set it up (or if it will work on Windows 10).

2) XP mode

Link

A 32bit Windows XP emulator. However, it seems to be for Windows 7 only. Also according to this Stack Overflow thread, you need Windows Professional.

3) Virtual Box Machine

Link

Let’s you emulate Windows. Seems overkill for my purposes. Plus I would need to buy a 32 bit Windows license. I think it would run slowly with 4GB of Ram.

4) Partition drive into 32bit and 64 bit versions
Apparently, you can use the free tool EaseUS to split the drive into two and then install separate 32bit and 64 bit versions.

Again, seems overkill and it looks like I would need buy a 32 bit Windows 10 license.

Are these my only options?


Images

Installation

Installation

First run (From the error message I guess it’s a 16-bit program)
First run

Clicking on programme
When clicking on Programme

если это ярлык, вы можете щелкнуть правой кнопкой мыши и выбрать «открыть расположение файла». Затем щелкните программу правой кнопкой мыши, затем щелкните «Свойства» и перейдите на вкладку «Совместимость». Затем установите флажок «Запустить эту программу в режиме совместимости для:». Затем выберите, для какой версии ОС запускать его в режиме совместимости.

Как установить 32-битное программное обеспечение на 64-битную Windows?

  1. Нажмите одновременно клавиши «Windows» + «S», чтобы открыть Поиск.
  2. Введите «Панель управления» и выберите первый вариант. …
  3. Нажмите на опцию «Программы», а затем выберите кнопку «Включить или выключить компоненты Windows». …
  4. Установите флажок «Информационные службы Интернета» и нажмите «ОК».

27 апр. 2020 г.

Как запустить 32-битную программу в 64-битной Windows 10?

если вы хотите вернуться к 32-разрядной версии Windows, вам необходимо загрузить инструмент создания мультимедиа — 64-разрядный, если вы используете 64-разрядную версию Windows 10 — и использовать его для создать 32-битный установочный носитель. Загрузитесь с этого установочного носителя и переустановите 32-разрядную версию поверх 64-разрядной версии.

Могу ли я запустить 32-битное программное обеспечение в 64-битной системе?

Вообще говоря, 32-битные программы могут работать в 64-битной системе, но 64-битные программы не будут работать в 32-битной системе. … Хотя можно установить 32-разрядную операционную систему на 64-разрядную систему, лучше всего установить 64-разрядную версию, если это возможно.

Как заставить программу работать в 32-битном режиме?

Вероятно, вы можете заставить exe всегда запускать 32-битную версию с помощью нескольких инструментов SDK, но это требует небольшой работы. Простой ответ — запустить из 32-битного процесса (например, использовать для запуска% SystemRoot% SYSWOW64cmd.exe). Сложнее проверить, что это за exe, а затем изменить его самостоятельно.

Может ли Windows 10 запускать 32-битные программы?

В общем, да, можно. тот факт, что они 32-битные, не имеет значения. И 64-битная Windows 10, и 32-битная Windows 10 могут запускать 32-битные программы.

Могу ли я запускать программы Windows 95 в Windows 10?

С Windows 2000 можно запускать устаревшее программное обеспечение в режиме совместимости с Windows, и это остается функцией, которую пользователи Windows могут использовать для запуска старых игр с Windows 95 на новых ПК с Windows 10.

Как я могу преобразовать 32-битную в 64-битную?

Определите 64-битную совместимость с помощью настроек

  1. Открыть настройки.
  2. Нажмите «Система».
  3. Щелкните О себе.
  4. Проверьте сведения об установленной оперативной памяти.
  5. Убедитесь, что информация составляет 2 ГБ или больше.
  6. В разделе «Характеристики устройства» проверьте сведения о типе системы.
  7. Подтвердите, что информация читает 32-разрядную операционную систему, процессор на базе x64.

1 центов 2020 г.

Когда мне следует использовать 32-битную или 64-битную?

Проще говоря, 64-разрядный процессор более эффективен, чем 32-разрядный процессор, потому что он может обрабатывать больше данных одновременно. 64-битный процессор может хранить больше вычислительных значений, включая адреса памяти, что означает, что он может иметь доступ в 4 миллиарда раз больше физической памяти 32-битного процессора. Это так же велико, как кажется.

Как запустить Valorant на 32-битной версии?

* Помните, что если на вашем компьютере установлена ​​32-разрядная версия Windows, вам необходимо обновить его до 64-разрядной версии, чтобы играть в VALORANT. Интересно, какая у вас версия Windows? Вы можете определить, работает ли ваш компьютер под управлением 32-битной или 64-битной Windows в зависимости от вашего программного обеспечения.

32-битные программы работают медленнее?

Также обратите внимание, что когда вы запускаете 32-битные версии программного обеспечения в 64-битных системах семейства Windows, старые 32-битные приложения выполняются немного медленнее из-за подсистемы WoW64, которая имитирует 32-битную среду.

Что произойдет, если я установлю 64-битную версию на 32-битную?

Да, отсутствие возможности загрузить или выполнить какой-либо из 64-битных файлов. Для всех намерений и целей практически невозможно выполнить 64-битную инструкцию на 32-битном оборудовании, и хотя 64-битная Windows может иметь некоторые 32-битные файлы, основные части являются 64-битными, поэтому она не будет даже загрузка. Сейчас он идет довольно гладко.

Что такое 32-битный и 64-битный компьютер?

В вычислительной технике существуют процессоры двух типов: 32-битные и 64-битные. … 32-разрядная система может получить доступ к 232 адресам памяти, то есть к 4 ГБ ОЗУ или в идеале к физической памяти, она также может получить доступ к более чем 4 ГБ ОЗУ. 64-битная система может получить доступ к 264 адресам памяти, то есть фактически к 18 квинтиллионам байт ОЗУ.

Как запустить 32-битную командную строку?

Один из способов запустить 32-разрядную CMD — сделать то же самое, но дважды щелкнуть C: WindowsSysWOW64cmd.exe. Немного странное наблюдение; похоже, что если вы запустите 64-битный CMD из 32-битного, он также запустится как 32-битный. Возможно, именно поэтому вы постоянно видите 32-разрядную версию.

Будут ли 32-битные игры работать на 64-битных?

3 ответа. 32-битные игры могут работать под 64-битной Windows, как правило, без каких-либо проблем. Старые 16-битные игры, разработанные для Windows XP или более ранней версии, не будут работать в 7-битной Windows Vista / 64.

Как запустить 32-битный командный файл на 64-битном?

2 ответа. Затем вам нужно вызвать каждое консольное приложение в каталоге System32 Windows с% SystemPath% в вашем пакетном файле, например% SystemPath% findstr.exe. Конечно, вы также можете запустить cmd с% SystemPath% cmd.exe, чтобы всегда запускать 64-битный интерпретатор командной строки из командного файла.

Понравилась статья? Поделить с друзьями:
  • Как установить 32 битную игру на 64 битную систему windows 10
  • Как установить 1с бухгалтерию на windows 7
  • Как установить 1809 версию windows 10
  • Как установить 144 hz на мониторе windows 10
  • Как установить 12 часовой формат времени на windows 10