Почему 64-разрядная версия Windows 7 не может запускать 32-разрядные программы?

9

Насколько я понимаю, архитектура изменилась не так сильно, как с 16-разрядных на 32-разрядные, так зачем нам нужен режим XP и тому подобное для запуска 32-разрядных приложений в 64-разрядной версии Windows 7?

Или я неправильно понял?

Оскар
источник
У нас была программа, которая не очень понравилась. Фактическая проблема в итоге сводилась к 64-битному Office (у нас был плагин Office).
Иисус Навин

Ответы:

16

он может нормально запускать 32-битные программы. Он не может запускать 16-битные программы.

Режим XP является небольшой гарантией - если конкретное программное обеспечение не будет работать на 7 (32 ИЛИ 64-разрядный - режим XP доступен для профессиональной версии и выше на обоих), то вы можете запустить его в режиме XP. Это еще не произошло со мной, но, вероятно, для толпы «Вы можете взять ХР из моих умирающих рук».

В большинстве случаев режим совместимости

Подмастерье Компьютерщик
источник
Dang! У меня были проблемы с запуском некоторых приложений, таких как visual studio 6, гитара и т. Д., И все поиски привели меня к победе в режиме xp, не зная, почему. Благодаря тонну!
Оскар
2
Некоторые приложения будут жаловаться, но в теории нет причин, по которым вы не можете запускать 32-битные приложения.
Shinrai
@ Оскар VS6 требует MS Java.
kinokijuf
5

Я надеюсь, что это проливает некоторый свет на несовместимость:

Microsoft решила подтянуть ядро ​​с 64-битными версиями. Драйверы устройств имеют тот же уровень доступа к оборудованию, что и ядро, поэтому некоторые конкретные вещи, которые были изменены в 64-битных версиях в целях безопасности:

  • Драйверы должны быть подписаны Microsoft для загрузки.
  • Я не знаю, могут ли технически 32-разрядные драйверы работать с 64-разрядным ядром (маловероятно), но Microsoft не подписывает новые 32-разрядные драйверы ключом, который хочет 64-разрядное ядро. Таким образом, все существующие 32-разрядные драйверы XP не будут работать в 64-разрядной версии Vista / 7.
  • Драйверы не могут перезаписывать или исправлять ядро.

Microsoft также переключилась на новую модель драйвера видео дисплея (LDDM), но сохранила старую (XDDM). XDDM, старая модель, не поддерживает Aero.

Некоторые программы загружают настроенные драйверы устройств на лету для выполнения своих задач. Они определенно не будут работать на Vista / 7.

Microsoft обновила довольно много компонентов в Vista / 7. Это может означать изменение недокументированного поведения этих компонентов. Программы, которые полагаются на ошибки в этих компонентах или недокументированные функции DLL, также могут иметь проблемы.

LawrenceC
источник
+1 за понимание о 32-битных и 64-битных драйверах Windows. У меня есть старое аудиооборудование (SW1000XG, UR-80), которое будет работать только на моей 32-битной установке Windows 7, но не на моей 64-битной установке. Это настоящий позор, потому что это хороший, классический комплект.
therobyouknow
«Я не знаю, могут ли технически 32-разрядные драйверы работать с 64-разрядным ядром (маловероятно)» . В целом, это не невозможно в ОС, но для этого в Windows потребуется, чтобы все драйверы соответствовали моделям драйверов с гораздо более строгой изоляцией от различных внутренних деталей ОС. Я не понимаю, как это можно сделать, например, с помощью модели драйверов Windows или драйверов до WDM. WDF будет проще, но все же не хлам.
Джейми Ханрахан
2

32-битные программы должны нормально работать под Windows.

Режим XP предназначен для программ, несовместимых с Windows Vista и Windows 7 любого типа.

Смотрите эту статью Ars Technica для получения дополнительной информации.

Проблема действительно достигла апогея с выпуском Windows Vista. Совместимость Vista с XP была очень хорошей, но не идеальной. Microsoft проделала большую работу над Vista, чтобы обезопасить ее от атак (конечно, UAC, но и других вещей, таких как запрет служб на взаимодействие с пользователем), а также вместе с этими изменениями и улучшениями, а также с более обыденными вещами, такими как обновление номера версии. что Windows, сговорились сломать некоторые старые программы.

ChrisF
источник