32-битная и 64-разрядная Windows
Первоначально Windows была доступна только в 32-разрядной операционной системе. В 32-разрядных версиях Windows-даже 32-разрядных версий Windows 10, которые по-прежнему доступны сегодня, вы увидите только папку «C: Program Files».
Эта папка Program Files является рекомендуемым местом, где установленные программы должны хранить исполняемые файлы, данные и другие файлы. Другими словами, программы устанавливаются в папку Program Files.
В 64-разрядных версиях Windows 64-разрядные приложения устанавливаются в папку Program Files. Однако 64-разрядные версии Windows также поддерживают 32-разрядные программы, и Microsoft не хочет, чтобы 32-битное и 64-битное программное обеспечение смешивались в одном месте. Таким образом, 32-разрядные программы устанавливаются в папку «C: Program Files (x86)».
Windows запускает 32-разрядные приложения в 64-разрядных версиях Windows с использованием WOW64, что означает «32-разрядная версия Windows на 64-разрядной Windows».
Когда вы запускаете 32-разрядную программу в 64-разрядной версии Windows, уровень эмуляции WOW64 плавно перенаправляет доступ к файлу с «C: Program Files» на «C: Program Files (x86)». 32-разрядный программа пытается получить доступ к папке Program Files и указана на папку Program Files (x86). 64-разрядные программы по-прежнему используют обычную папку Program Files.
Что хранится в каждой папке
В 64-разрядной версии Windows 64-разрядные программы хранятся в папке «C: Program Files», а 32-разрядные программы хранятся в папке «C: Program Files (x86)».
Вот почему разные программы распространяются через две папки Program Files, кажущиеся случайными. В папке «C: Program Files» находятся 64-разрядные, а в папке «C: Program Files (x86)» 32-разрядные.
Почему они разделяются?
Это функция совместимости, предназначенная для старых 32-разрядных программ. Эти 32-разрядные программы могут не знать, что 64-разрядная версия Windows даже существует, поэтому Windows отводит их от этого 64-битного кода.
32-разрядные программы не могут загружать 64-разрядные библиотеки (DLL-файлы) и могут вылетать, если они попытались загрузить определенный DLL-файл и обнаружили 64-битную версию вместо 32-разрядной. То же самое касается 64-разрядных программ. Сохранение различных программных файлов для разных архитектур процессоров предотвращает подобные ошибки.
Например, предположим, что Windows просто использовала одну папку Program Files. 32-разрядное приложение может искать файл DLL Microsoft Office, найденный в C: Program Files Microsoft Office, и попытаться загрузить его. Однако, если у вас установлена 64-разрядная версия Microsoft Office, приложение будет аварийно завершено и не будет работать должным образом. С отдельными папками это приложение не сможет найти DLL вообще, потому что 64-разрядная версия Microsoft Office будет в C: Program Files Microsoft Office, и 32-разрядное приложение будет искать в C: Program Files (x86) Microsoft Office.
Это также помогает, когда разработчик создает как 32-битную, так и 64-разрядную версии приложения, особенно если они должны быть установлены сразу в некоторых ситуациях. 32-разрядная версия автоматически устанавливается в C: Program Files (x86), а 64-разрядная версия автоматически устанавливается в C: Program Files. Если Windows использовала одну папку, разработчику приложения пришлось бы установить 64-разрядную папку в другую папку, чтобы разделить их. И, вероятно, не было бы реального стандарта, где разработчики устанавливали разные версии.
Почему 32-битная папка называется (x86)?
Это то, что означает «Program Files (x86)». Это папка Program Files для программ с использованием старой архитектуры процессора x86. Заметим, однако, что 64-разрядные версии Windows не могут запускать 16-разрядный код.
Это обычно не имеет значения
Обычно не имеет значения, хранятся ли файлы программы в Program Files или Program Files (x86). Windows автоматически устанавливает программы в правильную папку, поэтому вам не нужно об этом думать. Программы отображаются в меню «Пуск» и функционируют нормально, независимо от того, где они установлены.Обе 32-разрядные и 64-разрядные программы должны хранить ваши данные в папках, таких как AppData и ProgramData, а не в любой папке Program Files. Просто позвольте вашим программам автоматически решать, какую папку Program Files использовать.
Если вы используете переносное приложение, оно может запускаться из любой папки в вашей системе, поэтому вам не нужно беспокоиться о том, где их разместить. Нам нравится переносить переносные приложения в Dropbox или другой тип облачной папки хранения, чтобы они были доступны на всех наших компьютерах.
Иногда вам нужно знать, где хранится программа. Например, допустим, вы хотите войти в свой каталог Steam для резервного копирования некоторых файлов. Вы найдете его в C: Program Files (x86), так как Steam - это 32-разрядная программа.
Если вы не знаете, установлена ли установленная вами программа 64-разрядной или нет, и вы ищете папку для ее установки, вам может потребоваться найти ее в папках программных файлов, чтобы найти ее.
Вы также можете посмотреть в диспетчере задач Windows 10.