В чем разница между папками «Program Files (x86)» и «Program Files» в Windows?

Есть большая вероятность, что на вашем ПК с Windows есть папки «C: \ Program Files» и «C: \ Program Files (x86)». Если вы покопаетесь, то увидите, что некоторые из ваших программ установлены в одной папке, а некоторые - в другой.

32-битная или 64-битная Windows

СВЯЗАННЫЕ: В чем разница между 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-разрядное приложение может искать 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)?

Вы не всегда увидите «32-битный» и «64-битный». Вместо этого вы иногда будете видеть «x86» и «x64» для обозначения этих двух разных архитектур. Это потому, что первые компьютеры использовали чип Intel 8086. Первоначальные чипы были 16-битными, но более новые версии стали 32-битными. «X86» теперь относится к до-64-битной архитектуре - будь то 16-битная или 32-битная. Вместо этого новая 64-разрядная архитектура называется «x64».

Вот что означает «Program Files (x86)». Это папка Program Files для программ, использующих старую архитектуру процессора x86. Однако обратите внимание, что 64-разрядные версии Windows не могут запускать 16-разрядный код.

Обычно это не имеет значения

СВЯЗАННЫЕ: Что такое папка AppData в Windows?

Обычно не имеет значения, хранятся ли файлы программы в 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).