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

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

    В 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..

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

    Однако не все файлы DLL хранятся в программных файлах. Многие общесистемные библиотеки, включенные в 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, объяснил

    Часть названия «WOW64» здесь относится к программному обеспечению Microsoft «Windows 32-bit on Windows 64-bit», которое является частью операционной системы. Это позволяет Windows запускать 32-разрядные программы в 64-разрядной версии Windows. 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-разрядных программ..

    Так почему же System32 64-битный, а SysWOW64 32-битный?

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

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

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

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