В чем разница между папками «System32» и «SysWOW64» в Windows?

Оглавление:

В чем разница между папками «System32» и «SysWOW64» в Windows?
В чем разница между папками «System32» и «SysWOW64» в Windows?

Видео: В чем разница между папками «System32» и «SysWOW64» в Windows?

Видео: В чем разница между папками «System32» и «SysWOW64» в Windows?
Видео: Как Использовать Телефон Как Веб Камеру / Для Стрима, Учебы, Работы - YouTube 2024, Апрель
Anonim
В 64-разрядных версиях Windows у вас есть две отдельные папки Program Files. Но это не заканчивается. У вас также есть два отдельных системных каталога, в которых хранятся библиотеки DLL и исполняемые файлы: System32 и SysWOW64. Несмотря на имена, System32 полон 64-битных файлов, а SysWOW64 полон 32-битных файлов. Так что же дает?
В 64-разрядных версиях Windows у вас есть две отдельные папки Program Files. Но это не заканчивается. У вас также есть два отдельных системных каталога, в которых хранятся библиотеки DLL и исполняемые файлы: System32 и SysWOW64. Несмотря на имена, System32 полон 64-битных файлов, а SysWOW64 полон 32-битных файлов. Так что же дает?

Что такое System32?

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

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

Разделение 32-битных и 64-битных библиотек

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

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

Однако не все файлы DLL хранятся в Program Files. Многие системные библиотеки, включенные в Windows, хранятся в C: System32, а некоторые программы также выгружают свои собственные файлы библиотек. Таким образом, так же, как Windows имеет отдельные 32-битные и 64-разрядные папки Program Files, у нее также есть отдельные 32-битные и 64-разрядные версии папки System32.

System32 и SysWOW64

На 32-битном компьютере все 32-разрядные программы хранят свои файлы в C: Program Files, а общесистемная библиотека - C: System32.

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

Это определенно нелогично. Несмотря на «32» в названии, папка System32 содержит 64-битные библиотеки. И, несмотря на 64 в названии, папка SysWOW64 содержит 32-битные библиотеки - по крайней мере, в 64-разрядных версиях Windows.

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

WOW64, Разъяснение

Например, если вы устанавливаете 32-разрядную программу в 64-разрядной версии Windows и пытаетесь записать ее в папку C: Program Files, WoW64 указывает ее на C: Program Files (x86). И, если он хочет получить доступ к папке C: Windows System32, WoW64 указывает на C: Windows SysWOW64. Windows делает это, используя перенаправитель файловой системы.

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

Итак, почему 64-разрядная система System32 и 32-разрядная SysWOW64?

Все это возвращает нас к миллионному вопросу: почему папка «System32» 64-разрядная и 32-разрядная SysWOW64?

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

Вместо того, чтобы переименовывать каталог и заставлять разработчиков переходить на новый, ломая много приложений в этом процессе, Microsoft оставила «System32» в качестве стандартного каталога системной библиотеки. Они создали новый каталог библиотек для приложений, работающих под слоем WoW64, которые они назвали «SysWOW64». Когда вы думаете об этом таким образом, имя имеет больше смысла.

Да, немного глупо, что каталог с «32» в имени теперь 64-битный. Возможно, Microsoft должна была увидеть это, когда они назвали его C: Windows System32 в 90-х. Но, хотя более простая схема именования будет приятной, не стоит ломать кучу программ и создавать больше работы для разработчиков, чтобы добраться туда. Это означает, что мы будем придерживаться System32 и SysWOW64 в обозримом будущем.

Рекомендуемые: