В чем разница между папками «Program Files (x86)» и «Program Files» в Windows?
Скорее всего, на вашем ПК с Windows есть папки «C: \ Program Files» и «C: \ Program Files (x86)». Если вы возитесь, вы увидите, что некоторые из ваших программ установлены в одной папке, а некоторые - в другой..
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.
Что хранится в каждой папке
Таким образом, в 32-разрядной версии Windows у вас просто есть папка «C: \ Program Files». Это содержит все ваши установленные программы, все из которых являются 32-разрядными.
В 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-разрядное приложение может найти файл Microsoft Office DLL, найденный в 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)?
Вы не всегда будете видеть «32-битный» и «64-битный». Вместо этого вы иногда будете видеть «x86» и «x64» для обозначения этих двух разных архитектур. Это потому, что первые компьютеры использовали чип Intel 8086. Оригинальные чипы были 16-битными, но более новые версии стали 32-битными. «X86» теперь относится к пред-64-битной архитектуре, будь то 16-битная или 32-битная. Более новая 64-битная архитектура упоминается как «x64» вместо.
Вот что означает «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-разрядной или нет, и вы ищете ее установочную папку, вам может понадобиться найти обе папки Program Files, чтобы найти ее..
Вы также можете посмотреть в диспетчере задач Windows 10.
В 64-разрядных версиях Windows 32-разрядные программы помечаются дополнительным текстом «(32-разрядный)», что указывает на то, что вы найдете их в C: \ Program Files (x86).