Windows folder program files x86

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

Весьма вероятно, на вашем компьютере Windows Вы обнаружите две папки «Program Files» и «Program Files (x86)». Если вы соскучитесь, вы увидите, что некоторые из ваших программ установлены в одну папку, а некоторые – в другую.

32-битная и 64-разрядная Windows

Первоначально Windows была доступна только в 32-разрядной версии. В 32-битных версиях Windows – даже 32-разрядных версиях Windows 10, которые по-прежнему доступны сегодня, – вы увидите только папку «Program Files».

Эта папка Program Files является рекомендуемым местом, где установленные программы должны хранить исполняемые файлы, данные и другие файлы. Другими словами, программы устанавливаются в папку Program Files.

В 64-разрядных версиях Windows 64-разрядные приложения устанавливаются в папку Program Files. Однако, 64-разрядные версии Windows также поддерживают 32-разрядные программы, и Microsoft не хочет, чтобы 32-битное и 64-битное программное обеспечение смешивались в одном месте. Таким образом, 32-разрядные программы устанавливаются в папку «Program Files (x86)».

Windows запускает 32-разрядные приложения в 64-разрядных версиях Windows с использованием WOW64.

Когда вы запускаете 32-разрядную программу в 64-разрядной версии Windows, уровень эмуляции WOW64 плавно перенаправляет доступ к файлу с «C:\Program Files» на «C:\Program Files (x86)». 64-разрядные программы по-прежнему используют обычную папку Program Files.

Что хранится в каждой папке

Таким образом, в 32-разрядной версии Windows у вас есть только папка «Program Files». Она содержит все установленные вами программы, все из которых являются 32-разрядными.

В 64-разрядной версии Windows 64-разрядные программы хранятся в папке «Program Files», а 32-разрядные программы хранятся в папке «Program Files (x86)».

Вот почему разные программы распределяются между двумя папками Program Files, кажущимися случайными. В папке «Program Files» находятся 64-разрядные, а в папке «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» теперь относится к до 32-битной архитектуре – будь то 16-разрядная или 32-разрядная. Новую 64-битную архитектуру называют «x64».

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

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

Обычно не имеет значения, хранятся ли файлы программ в Program Files или Program Files (x86). Windows автоматически устанавливает программы в правильную папку, поэтому вам не нужно об этом думать. Программы отображаются в меню «Пуск» и функционируют нормально, независимо от того, где они установлены. Просто позвольте вашим программам автоматически решать, какую папку Program Files использовать.

Если вы используете переносное приложение, оно может запускаться из любой папки в вашей системе, поэтому вам не нужно беспокоиться о том, где его разместить.

Вместе с тем, иногда нам нужно знать, где хранится программа. Например, вы хотите войти в свой каталог Steam для резервного копирования некоторых файлов. Вы найдете его в C:\Program Files (x86), так как Steam – это 32-разрядная программа.

Program Files (x86) и Program Files – что это за папки на компьютере

Если Вы являетесь пользователем операционной системы от компании Microsoft, то в корне системного диска могли заметить следующий элемент — Program Files x86 что это за папка на компьютере Windows? Предлагаю разобраться в теме и получить максимум ответов!

Программные файлы

Именно так дословно переводиться название каталога. Он является стандартным в ОС, начиная с первых версий Виндовс. Изначально в нём содержится лишь несколько вложенных директорий, связанных с предустановленным функционалом «операционки» — антивирусом, почтовым клиентом, медиа проигрывателем, консолью PowerShell и т.д.:

Но со временем количество содержимого увеличивается. Это связано с установкой различных пользовательских приложений, игр. Скорее всего, Вы обращали внимание, что в процессе инсталляции софта нужно указать — куда копировать контент. Выглядит это примерно следующим образом:

В итоге, папка Program Files увеличивается в размере, в ней появляются дополнительные элементы, некоторые из которых занимают десятки гигабайт (если Вы устанавливаете современные игры). То есть, во вложенных папках хранятся практически все данные программ.

Переходим к следующему вопросу.

Program Files и Program Files (x86) что это?

У некоторых пользователей есть только одна из указанных папок, а другие находят у себя вторую, с окончанием «x86». Где логика? От чего зависит ситуация?

Не нужно пугаться, искать проблему там, где её нет. Многие сразу же думают, что в Виндовс проник вирус, который создал дубликат с похожим названием и содержимым, чтобы незаметно «поедать» личную информацию и нагружать процессор.

Читайте также:  Raspberry kali linux ���������

На самом деле, всё зависит от разрядности Windows (переходите по ссылке и читайте детальный обзор, чтобы мне не пришлось повторяться).

  • Если у Вас система 32-х битная, то в корне диска С обнаружите только один каталог «Program Files». И все новые программы по умолчанию будут копироваться туда;
  • В 64-х битной ОС создается две директории — та, которая заканчивается на «x86» предназначена для расположения софта, разработанного исключительно для систем x64.

В качестве эксперимента, можете перейти на страницу скачивания архиватора 7-Zip , там есть две ссылки Download» для получения установочного файла версии 32-bit или 64-bit. В зависимости от того, какой выберете и запустите, копирование будет осуществляться в разные каталоги на компьютере. Но это только при условии, что у Вас Windows 64 бит и есть обе папки «Програм_Файлс».

Можно ли удалить Program Files?

Если внимательно читали всё вышеизложенное, то вывод напрашивается сам по себе — ничего трогать не нужно. Иначе установленные утилиты перестанут корректно работать.

Даже если не хватает места на системном накопителе, то следует прибегнуть к более эффективным способам освобождения пространства:

Удалить Program Files (x86) целиком нельзя, а вот вложенные объекты — можно. Но поступать так стоит лишь в том случае, если Вы избавились от ненужного приложения, а папка от него осталась. Такое часто случается, я сам периодически захожу в «Програм-файлс», просматриваю содержимое, подчищаю следы уже неактуальных утилит.

Видео

  • Надеюсь, что эта инструкция немножко прояснила ситуацию и помогла понять — Program Files x86 что это за папка на компьютере Windows.

    Для чего нужна папка Program Files и почему их две?

    На диске C в современной 64-х битной операционной системе присутствует две папки Program Files и Program Files (x86).

    Для начала, мы рассмотрим вначале для чего нужна вообще директория Program Files.

    Исторически сложилось, что в эту папку записываются установленные программы. По факту, это служебная папка и внутрь можно даже и не заходить. Я знаю только две реальные причины туда лезть:

    • Если некорректно удалилась программа (осталась папка и какие-то файлы), то я удаляю её вручную.
    • Некоторые программы хранят информацию и настройки прямо в рабочей папке. Что неправильно. Иногда приходится эти настройки ковырять или вытаскивать нужную информацию, например в случае сбоев программы.

    Но почему их бывает две ? Тут дело в разрядности системы. Раньше операционная система была 32 разрядная, потом появился вариант с 64 разрядностью. Не будем углубляться в дебри — 64 разрядная система работает быстрее и «видит» больше оперативной памяти.

    Тажке и программы — они бывают 32 битные и 64 битные. В директорию Program Files устанавливаются 64 разрядные программы, а в директорию Program Files (x86) — 32 разрядные, то есть устаревшие.

    Это нужно для разделения как и для системы, так и для пользователя, чтобы он знал какие программы 32 разрядные и 64.

    P.S. Не стоит удалять оттуда файлы, лучше воспользоваться разделом «Программы и компонентны» в панели управления:

    Поставьте 👍🏻 моему скромному каналу. Это поможет ему развиваться! Подписывайтесь. Задавайте любые вопросы!

    how to get program files x86 env variable?

    I would like to know how I can display the location of Program Files (x86) in command prompt. I’m using Windows 7 64bit.

    echo %programfiles(x86)% and echo %programfiles% ,
    both of which displays only C:\Program Files

    Читайте также:  Где линукс хранит сертификаты

    When I manually checked the registry,
    HKLM/Software/microsoft/windows/currentversion,
    the programfilesdir points to C:\Program Files and

    HKLM/Software/WOW64/Microsoft/winodws/currentversion,
    the programfilesdir points to C:\Program Files (x86) .

    But, why am I always being displayed with C:\Program Files??

    5 Answers 5

    On a 64-bit machine running in 64-bit mode:

    • echo %programfiles% ==> C:\Program Files
    • echo %programfiles(x86)% ==> C:\Program Files (x86)

    On a 64-bit machine running in 32-bit (WOW64) mode:

    • echo %programfiles% ==> C:\Program Files (x86)
    • echo %programfiles(x86)% ==> C:\Program Files (x86)

    On a 32-bit machine running in 32-bit mode:

    • echo %programfiles% ==> C:\Program Files
    • echo %programfiles(x86)% ==> %programfiles(x86)%

    Another relevant environment variable is:

    %ProgramW6432%

    So, on a 64-bit machine running in 32-bit (WOW64) mode:

    • echo %programfiles% ==> C:\Program Files (x86)
    • echo %programfiles(x86)% ==> C:\Program Files (x86)
    • echo %ProgramW6432% ==> C:\Program Files

    The %ProgramFiles% variable points to the Program Files directory, which stores all the installed programs of Windows and others. The default on English-language systems is «C:\Program Files». In 64-bit editions of Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)%, which defaults to «C:\Program Files (x86)», and %ProgramW6432%, which defaults to «C:\Program Files». The %ProgramFiles% itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).

    On a Windows 64 bit machine, echo %programfiles(x86)% does print C:\Program Files (x86)

    IMHO, one point that is missing in this discussion is that whatever variable you use, it is guaranteed to always point at the appropriate folder. This becomes critical in the rare cases where Windows is installed on a drive other than C:\

    On a 64-bit Windows system, the reading of the various environment variables and some Windows Registry keys is redirected to different sources, depending whether the process doing the reading is 32-bit or 64-bit.

    The table below lists these data sources:

    So for example, for a 32-bit process, the source of the data for the %ProgramFiles% and %ProgramFiles(x86)% environment variables is the Registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86) .

    However, for a 64-bit process, the source of the data for the %ProgramFiles% environment variable is the Registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir . and the source of the data for the %ProgramFiles(x86)% environment variable is the Registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)

    Most default Windows installation put a string like C:\Program Files (x86) into the Registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86) but this (and others) can be changed.

    Whatever is entered into these Windows Registry values will be read by Windows Explorer into respective Environment Variables upon login and then copied to any child process that it subsequently spawns.

    The registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesPath is especially noteworthy because most Windows installations put the string %ProgramFiles% into it, to be read by 64-bit processes. This string refers to the environment variable %ProgramFiles% which in turn, takes its data from the Registry value HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir . unless some program changes the value of this environment variable apriori.

    I have written a small utility, which displays these environment variables for 64-bit and 32-bit processes. You can download it here.
    The source code for VisualStudio 2017 is included and the compiled 64-bit and 32-bit binary executables are in the directories ..\x64\Release and ..\x86\Release , respectively.

  • Оцените статью