WikiDer > WoW64
Эта статья нужны дополнительные цитаты для проверка. (Май 2013) (Узнайте, как и когда удалить этот шаблон сообщения) |
Другие имена | 32-разрядная версия Windows на 64-разрядной версии Windows |
---|---|
Разработчики) | Microsoft |
Операционная система | Майкрософт Виндоус |
Тип | Уровень совместимости |
Лицензия | Проприетарный коммерческое программное обеспечение |
Интернет сайт | документы |
В вычисление на Microsoft платформы, WoW64 (Windows 32-битный оп WIndows 64-бит) является подсистемой Windows Операционная система способный работать 32-битный приложения на 64-битной Windows. Включено во все 64-битный версии Windows, включая Windows XP Professional x64 Edition, IA-64 и x64 версии Windows Server 2003, а также 64-битные версии Виндоус виста, Windows Server 2008, Windows 7, Windows 8, Windows Server 2012, Windows 8.1 и Windows 10. В Windows Server 2008 R2 Ядро сервера, это необязательный компонент, но не в Нано сервер[требуется разъяснение]. WoW64 призван устранить многие различия между 32-битной Windows и 64-битной Windows, особенно в том, что касается структурных изменений самой Windows.
Библиотеки переводов
WoW64 подсистема состоит из легкого уровень совместимости который имеет аналогичные интерфейсы во всех 64-битных версиях Windows. Он нацелен на создание 32-разрядной среды, которая предоставляет интерфейсы, необходимые для запуска неизмененных 32-разрядных приложений Windows в 64-разрядной системе. WOW64 реализован с использованием нескольких DLL, некоторые из которых включают: [1]
Wow64.dll
, основной интерфейс к Ядро Windows NT который переводит (thunks) между 32-битными и 64-битными вызовами, включая указатель и стек вызовов манипуляцииWow64win.dll
, который обеспечивает соответствующие точки входа для 32-битных приложений (преобразователи win32k)Wow64cpu.dll
, который обеспечивает переключение процессора из 32-битного в 64-битный режим. Это используется в x86-64 только реализации Windows.
Другие библиотеки DLL и двоичные файлы включены для Itanium и ARMv8 64-разрядная архитектуры для эмуляции x86 или для 32-битных точек входа, если архитектура имеет собственный 32-битный режим работы.
Архитектура
Несмотря на внешне похожий внешний вид во всех версиях 64-битной Windows, реализация WoW64 варьируется в зависимости от цели. архитектура набора команд. Например, версия 64-битной Windows, разработанная для Intel Itanium 2 процессор (известный как IA-64 архитектура) использует Wow64win.dll
настроить эмуляцию x86 инструкции в уникальном Набор инструкций. Эта эмуляция - гораздо более дорогостоящая задача, чем Wow64win.dll
функции на x86-64 архитектура, которая переключает аппаратное обеспечение процессора из 64-битного режима в режим совместимости, когда становится необходимо выполнить 32-битный нить, а затем выполняет переключение обратно в 64-разрядный режим.
Реестр и файловая система
Подсистема 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 прозрачно перенаправляет 32-битные библиотеки DLL на % SystemRoot% SysWoW64
, который содержит 32-битные библиотеки и исполняемые файлы. Исключения из этих редиректов:[2]
% SystemRoot% system32 catroot% SystemRoot% system32 catroot2% SystemRoot% system32 driverstore% SystemRoot% system32 drivers etc% SystemRoot% system32 logfiles% SystemRoot% system32 spool% SystemRoot% system32 driverstore (только для Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP)
32-битные приложения обычно не знают, что они работают в 64-битной операционной системе. 32-битные приложения могут получить доступ % SystemRoot% System32
через псевдокаталог % SystemRoot% sysnative
.
Есть два Файлы программ каталоги, видимые как для 32-разрядных, так и для 64-разрядных приложений. Каталог, в котором хранятся 32-битные файлы, называется Program Files (x86), чтобы различать их, в то время как 64-битный сохраняет традиционное имя Program Files без каких-либо дополнительных квалификаторов.
Совместимость приложений
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 через Виртуальный ПК Microsoft или же DOSBox. С другой стороны, 32-разрядные версии Windows XP, Vista, 7, 8 и 10 обычно могут запускать 16-разрядные приложения практически без проблем. 16-битные приложения не могут быть запущены напрямую в x64 выпусках Windows, потому что ЦП не поддерживает Режим VM86 при работе в x64.
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[3][4] также обрабатывает все 32-битные приложения, использующие Windows API функция GetThreadContext несовместима. К таким приложениям относятся отладчики приложений, трассировщики стека вызовов (например, IDE, отображающие стек вызовов) и приложения, использующие вывоз мусора (GC) двигатели. Один из наиболее широко используемых, но затронутых[5] Двигатели GC - это Boehm GC. Он также используется как сборщик мусора по умолчанию не менее популярного Мононуклеоз. Хотя Mono представила новый (но необязательный) GC с октября 2010 года под названием SGen-GC, он выполняет сканирование стека так же, как и сборщик мусора Boehm, что также делает его несовместимым с WoW64. Исправления предоставлено не было, хотя были предложены обходные пути.[6]
Спектакль
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (август 2013) |
Согласно Microsoft, 32-битное программное обеспечение, работающее под WOW64, имеет производительность, аналогичную работе под 32-битной Windows, но с меньшим количеством возможных потоков и другими накладными расходами.[7]
32-битному приложению могут быть предоставлены полные 4 гигабайта виртуальная память в 64-битной системе, тогда как в 32-битной системе часть этой адресуемой памяти теряется, потому что она используется ядро и периферийные устройства с отображением памяти, такие как адаптер дисплея, что обычно приводит к тому, что приложения могут использовать максимум 2 или 3 ГБ ОЗУ.
Смотрите также
- Прокладка (вычисление)
- Контроль учетных записей пользователей также имеет механизм работы со «старыми» программами, которые записывают файлы в определенные области в «новых» окнах. Файлы, записанные из процесса без прав администратора в защищенные места, такие как Program Files и windows system32, будут перенаправлены в каталог виртуального хранилища.
- Windows в Windows
Рекомендации
- ^ «Подробности реализации WOW64». Microsoft. Получено 2018-04-21.
- ^ «Перенаправитель файловой системы (Windows)». msdn.microsoft.com.
- ^ Пила, Зак (13 ноября 2010 г.). «Ошибка WOW64: GetThreadContext () может возвращать устаревшее содержимое». Блог Зака Пила. Получено 2010-11-15.
- ^ "Ошибка ОС WOW64: старые 32-разрядные приложения XP не работают под Win7 WOW64". Сеть разработчиков Microsoft. 11 ноября 2010 г.. Получено 2010-11-15.
- ^ «Обсуждения по поводу сборщика мусора Бем (Boehm GC)». Получено 2010-11-25.
- ^ "GetThreadContext возвращает устаревшие значения регистров на WOW64". Microsoft = 23.07.2016. Получено 2016-07-23.
- ^ «Производительность и потребление памяти под WOW64». Microsoft. Получено 2013-05-06.