Jump to content

ВоВ64

(Перенаправлено с WOW64 )
ВоВ64
Другие имена 32-битная версия Windows в 64-битной версии Windows
Разработчик(и) Майкрософт
Первоначальный выпуск 25 октября 2001 г .; 22 года назад ( 25 октября 2001 )
Операционная система Microsoft Windows
Платформа ИА-64 , x86-64 , ARM64
Тип Уровень совместимости
Лицензия Собственное коммерческое программное обеспечение
Веб-сайт документы .microsoft /en-нас /окна /рабочий стол /WinProg64 /работающие 32-битные приложения

В вычислениях на Microsoft платформах WoW64 ( Windows 32-битная версия на ) -битной версии Windows представляет собой 64 подсистему Windows, операционной системы способную запускать 32-битные приложения в 64-битной Windows. [ 1 ] Он включен во все 64-разрядные версии Windows, за исключением Windows Server Server Core , где он является дополнительным компонентом, и Windows Nano Server , где он не включен. [ а ] WoW64 стремится устранить многие различия между 32-битной и 64-битной Windows, в частности, связанные со структурными изменениями в самой Windows.

Библиотеки перевода

[ редактировать ]

WoW64 Подсистема включает облегченный уровень совместимости , который имеет одинаковые интерфейсы во всех 64-разрядных версиях Windows. Его цель — создать 32-битную среду, предоставляющую интерфейсы, необходимые для запуска немодифицированных 32-битных приложений Windows в 64-битной системе. WOW64 реализован с использованием нескольких DLL, некоторые из которых включают: [ 3 ]

  1. Wow64.dll, основной интерфейс ядра Windows NT , который преобразует (преобразует) между 32-битными и 64-битными вызовами, включая с указателями и стеком вызовов. манипуляции
  2. Wow64win.dll, который предоставляет соответствующие точки входа для 32-битных приложений (thunks win32k)
  3. DLL, позволяющая выполнять 32-разрядные инструкции x86, что зависит от архитектуры набора команд .
    • На x86-64 , Wow64cpu.dll заботится о переключении процессора из 32-битного в 64-битный режим. Это вычислительно дешево, поскольку машины x86-64 имеют собственный режим для запуска 32-битного кода x86. [ 4 ]
    • На IA-64 ( Itanium 2 ) для более медленной работы нужны три файла. [ 5 ] программная эмуляция: Wow64cpu.dll, «уровень абстракции ЦП»; IA32Exec.bin, программный эмулятор x86; и Wowia32x.dll, мост между эмулятором и системой WOW64. [ 6 ]
    • На 64-разрядной версии ARMv8 xtajit.dll для эмуляции x86 и wowarmhw.dll для перехода в режим ARM32. [ 3 ]

Реестр и файловая система

[ редактировать ]

Подсистема WoW64 также обрабатывает другие ключевые аспекты запуска 32-битных приложений. Он участвует в управлении взаимодействием 32-битных приложений с компонентами Windows, такими как реестр , который имеет отдельные ключи для 64-битных и 32-битных приложений. Например, HKEY_LOCAL_MACHINE\Software\Wow6432Node — это 32-битный эквивалент HKEY_LOCAL_MACHINE\Software (хотя 32-битные приложения не знают об этом перенаправлении). Некоторые ключи реестра сопоставляются с 64-битными их 32-битными эквивалентами, в то время как содержимое других зеркально отображается, в зависимости от версии Windows.

В операционной системе используется %SystemRoot%\system32 каталог для его 64-битной библиотеки и исполняемых файлов. Это сделано из соображений обратной совместимости, поскольку многие устаревшие приложения жестко запрограммированы на использование этого пути. При запуске 32-битных приложений WoW64 прозрачно перенаправляет доступ к «system32» (например, загрузку DLL) на %SystemRoot%\SysWoW64, который содержит 32-битные библиотеки и исполняемые файлы. Исключениями из этих перенаправлений являются: [ 7 ]

  • %SystemRoot%\system32\catroot
  • %SystemRoot%\system32\catroot2
  • %SystemRoot%\system32\driverstore (перенаправлено на Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP)
  • %SystemRoot%\system32\drivers\etc
  • %SystemRoot%\system32\logfiles
  • %SystemRoot%\system32\spool

Перенаправление помогает поддерживать работу 32-битных приложений без необходимости знать о статусе WoW64. [ 7 ] Если 32-битное приложение хочет получить доступ к реальному %SystemRoot%\System32, это можно сделать через псевдокаталог %SystemRoot%\sysnative начиная с Windows Vista. [ 7 ] Обнаружение статуса Wow64 возможно через IsWow64Process().

Существует два каталога Program Files, каждый из которых виден как 32-битным, так и 64-битным приложениям. Каталог, в котором хранятся 32-битные файлы, называется Program Files (x86) , чтобы различать их, в то время как 64-разрядная версия сохраняет традиционную Имя программного файла без каких-либо дополнительных спецификаторов. Перенаправление файловой системы не используется для сохранения разделения; вместо этого WoW64 меняется FOLDERID_ProgramFiles и аналогичные результаты запроса, чтобы указать программам установки правильный каталог. [ 8 ]

В ARM64 также обнаружено несколько новых каталогов, где WOW64 обеспечивает запуск не только 32-битных программ x86, но и 32-битных программ ARM, использующих SysArm32 вместо. ARM64 также поддерживает так называемый CHPE «скомпилированный гибридный PE», который содержит код ARM64 в dll-контейнере x86 (для более эффективной совместимости без эмуляции); эти библиотеки DLL находятся в SyCHPE32. [ 9 ]

Совместимость приложений

[ редактировать ]

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

Поддерживаются 32-битные сервисные приложения. Папка SysWOW64, расположенная в папке Windows на диске с ОС, содержит несколько приложений для поддержки 32-битных приложений (например, cmd.exe, odbcad32.exe для регистрации соединений ODBC для 32-битных приложений). 16-битные устаревшие приложения для MS-DOS и ранних версий Windows обычно несовместимы с 64-битными версиями Windows Vista, 7, 8 и 10, но их можно запускать в 64-битной ОС Windows с помощью программного обеспечения виртуализации. С другой стороны, 32-битные версии Windows XP, Vista, 7, 8 и 10 обычно могут запускать 16-битные приложения практически без проблем. 16-разрядные приложения нельзя запускать напрямую в 64-разрядных версиях Windows, поскольку процессор не поддерживает режим VM86 при работе в 64-разрядной версии.

Internet Explorer реализован как как 32-битное, так и как 64-битное приложение из-за большого количества 32-битных компонентов ActiveX в Интернете, которые невозможно подключить к 64-битной версии.

Раньше 32-битная версия использовалась по умолчанию, и было сложно сделать 64-битную версию браузером по умолчанию. Ситуация изменилась в Internet Explorer 10, в котором 32-битные надстройки запускались внутри 64-битного сеанса, что устраняло необходимость переключения между двумя версиями. Если пользователь зайдет в 32-разрядную папку (обычно C:\Program Files (x86)\Internet Explorer) и дважды щелкнет там файл iexplore.exe, 64-разрядная версия все равно загрузится. В Internet Explorer 9 и более ранних версиях при этом загружалась только 32-разрядная версия.

По состоянию на 2010 год , ошибка в слое перевода x64-версии WoW64. [ 10 ] [ 11 ] также делает несовместимыми все 32-разрядные приложения, использующие функцию Windows API GetThreadContext. К таким приложениям относятся отладчики приложений, трассировщики стека вызовов (например, интегрированные среды разработки, отображающие стек вызовов) и приложения, использующие механизмы сборки мусора (GC). Один из наиболее широко используемых, но затронутых [ 12 ] Двигатели GC — это Boehm GC . Он также используется в качестве сборщика мусора по умолчанию в не менее популярном Mono . Хотя в октябре 2010 года Mono представила новый (но необязательный) GC под названием SGen-GC, он выполняет сканирование стека так же, как Boehm GC, что также делает его несовместимым с WoW64. По состоянию на июль 2016 года исправление не было предоставлено, хотя были предложены обходные пути. [ 13 ]

Производительность

[ редактировать ]

По данным Microsoft, 32-разрядное программное обеспечение, работающее под WOW64 (x64), имеет производительность, аналогичную работе под 32-разрядной Windows, но с меньшим количеством возможных потоков. В системе, отличной от x64, WOW64 приводит к снижению производительности из-за задействованной программной эмуляции. [ 5 ]

32-битному приложению можно предоставить полные 4 гигабайта виртуальной памяти в 64-битной системе, тогда как в 32-битной системе часть этой адресуемой памяти теряется, поскольку она используется ядром и периферийными устройствами, отображаемыми в памяти, такими как в качестве адаптера дисплея , что обычно приводит к тому, что приложения могут использовать максимум 2 ГБ или 3 ГБ ОЗУ.

См. также

[ редактировать ]
  • Шим (вычисления)
  • Контроль учетных записей также имеет механизм для работы со «старыми» программами, которые записывают файлы в определенные области в «новых» окнах. Файлы, записанные процессом без прав администратора в защищенные места, такие как Program Files и windows\system32, будут перенаправлены в каталог виртуального хранилища.
  • винда в винде

Примечания

[ редактировать ]
  1. ^ В частности: Wine , не являющийся продуктом Microsoft, также предлагает экспериментальный WoW64 в версии x64. [ 2 ] Вино также имеет wow64.dll, wow64win.dll, и wow64cpu.dll.
  1. ^ КуиннРадич; DCtheGeek; мсатранджр (19 августа 2020 г.). «Детали реализации WOW64» . Learn.microsoft.com . Архивировано из оригинала 16 апреля 2023 г. Проверено 16 апреля 2023 г.
  2. ^ Конвей, Адам (25 января 2023 г.). «Выпущена версия Wine 8.0 с улучшенной совместимостью с контроллерами, экспериментальной поддержкой WoW64 и многим другим» . Разработчики XDA . Архивировано из оригинала 16 апреля 2023 г. Проверено 16 апреля 2023 г.
  3. ^ Перейти обратно: а б «Детали реализации WOW64» . Майкрософт . Проверено 21 апреля 2018 г.
  4. ^ Экельс, Стивен (9 ноября 2020 г.). «WOW64!Hooks: Внутреннее устройство подсистемы WOW64 и методы перехвата» . Мандиант .
  5. ^ Перейти обратно: а б «Производительность и потребление памяти в WOW64» . Майкрософт . Проверено 6 мая 2013 г.
  6. ^ «Подробности реализации WOW64 (Windows)» . 26 апреля 2010 г. Архивировано из оригинала 26 апреля 2010 г. – Более ранняя версия статьи, в которой показано Wow64cpu.dll в рамках реализации IA-64.
  7. ^ Перейти обратно: а б с «Перенаправитель файловой системы (Windows)» . msdn.microsoft.com . 2 февраля 2023 г.
  8. ^ «winapi — SHGetFolderPath() 32 бит против 64 бит» . Переполнение стека .
  9. ^ Бенеш, Петр (4 ноября 2018 г.). «Внутреннее устройство WoW64: новое открытие Heaven's Gate на ARM» . безмозглая-область (wbenny.github.io) .
  10. ^ Со, Зак (13 ноября 2010 г.). «Ошибка WOW64: GetThreadContext() может возвращать устаревшее содержимое» . Блог Зака ​​Соу . Проверено 15 ноября 2010 г.
  11. ^ «Ошибка ОС WOW64: старые 32-битные приложения XP не работают под Win7 WOW64» . Сеть разработчиков Microsoft . 11 ноября 2010 года . Проверено 15 ноября 2010 г.
  12. ^ «Дискуссии о сборщике мусора Бема (Boehm GC)» . Проверено 25 ноября 2010 г.
  13. ^ «GetThreadContext возвращает устаревшие значения регистров на WOW64» . Майкрософт = 23 июля 2016 г. Проверено 23 июля 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 60c6dcb8a095d0ae96977b2800efd57c__1708940640
URL1:https://arc.ask3.ru/arc/aa/60/7c/60c6dcb8a095d0ae96977b2800efd57c.html
Заголовок, (Title) документа по адресу, URL1:
WoW64 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)