Прежде всего — это нормально, в 2021 так и нужно. Если только одна — или компьютер древний, или версия системы выбрана неправильно. Тема напрямую связана с вопросом об использовании старых ОС и процессоров.
Два поколения софта и железа — два каталога
Обратите внимание на скрин. Не только интерфейс выглядел намного скромнее, но и производительность процессоров была существенно ниже. Одним из факторов мощности ЦП является архитектура. Не удивляйтесь, если новый софт тормозит на компе, не предназначенном для работы с современными графическими интерфейсами.
Не вдаюсь в тонкости и не углубляюсь в давнюю историю. Но родоначальником современных чипов можно считать Intel 8086. Был 16-разрядным. Затем появились 32-битные, но термин x86, который говорит о преемственности, остался.
Таким образом, в каталог с соответствующей пометкой операционная система устанавливает 32-битный софт. Или старые, но любимые игры или нужные для работы программы, которым не нашлось замены. Поддерживаются версиями Windows для компьютеров с 64-битными центральными процессорами через подсистему WOW64.
Как сравнить файлы и папки
Те, кто помнит Windows 95, знает — программы изначально устанавливались в директорию Program Files. Отсюда и недоумение: «Зачем вторая?». Все очень просто. Microsoft верна своей традиции и актуальные приложения ставятся именно в данную папку. Актуальными в 2021 являются только 64-битные. Даже слабейшие из ЦП давно выпускают только 64-разрядными.
Соответственно, в 32-битной одна, поскольку альтернативы нет.
Результатом обращения программы к DLL-библиотеке не своего поколения может стать сбой. То есть, 32-битное приложение, когда попытается загрузить 64-битную версию, с большой вероятностью выдаст ошибку. Обратное верно.
Поэтому разработчики разделили программы разных эпох, чтобы подобных накладок не происходило.
Что делать пользователю
Ничего, более того — категорически не рекомендую что-либо «исправлять». ОС автоматически выбирает подходящую для программы папку. Благодаря этой ее способности задумываться о разрядности приложения не приходится.
Что порекомендуете пользователям ПК с 32-битными ЦП? Пишите в комментариях.
Приветствую, и рад видеть Вас на канале Installer !
Задумывались вы когда-нибудь, почему на «диске C:» в современных компьютерах — две папки «Program Files» по умолчанию?
Причём те, кто работает с компьютером уже довольно давно, наверняка помнят, вернее привыкли видеть только одну папку.
Не стоит пугаться появлению её «клона» с подписью «(x86)» — так и должно быть. Более того, обе папки системные, и лишний раз пользователю туда залезать не надо.
А дело тут всего-навсего в разрядности ОС Windows. Раньше была только 32-разрядная система, и по умолчанию инсталлятор помещал все программы в папку с названием Program Files.
Но время не стоит на месте, и на смену 32-х разрядным Windows пришли 64-х разрядные системы.
Можно ли Хранить файлы в папке Program Files
Чтобы узнать разрядность своей системы — нажмите одновременно клавиши Win + Pause/Break — откроется такое окно:
Тип системы — говорит нам о том, какой разрядности система .
Для чего две папки?
Задумка Microsoft здесь заключалась в том, чтобы разложить софт «по полкам» — так, чтобы в одном месте не оказалось программ для 64-х и 32-разрядной систем. Новое поколение, кстати, умеет открывать и «старые версии».
Допустим, файлы всех приложений находятся в одной папке. Тогда, 32-х разрядное приложение будет искать файлы в папке C:Program Files
Но если при этом, там будут находится одноимённые файлы из 64-х разрядной версии (например текстовый документ, созданный на MS Office 64-x) — произойдёт аварийное закрытие приложения, или оно сообщит об ошибке.
Для исключения таких ситуаций и было придумано разделить программы на две папки — в Program Files загружаются актуальные — 64x, в папку же Program Files(x86) — 32x разрядные версии.
Почему (x86) ?
Дело в том, что на старых компьютерах, использовался чип Intel 8086 — сначала 16-и разрядный, затем он эволюционировал в 32-разрядный. Обозначение осталось прежним, как для 32х так и для 16-и разрядных систем.
Как узнать, какую программу куда сохранять?
В общем, это не требуется — Windows определяет автоматически разрядность, и соответствующую папку, куда стоит сохранить приложение и его файлы. Поэтому, во избежание ошибок не стоит ей в этом мешать.
Надеюсь, что статья была Вам интересна, если так — ставьте отметку «Нравится» и поделитесь с друзьями. А чтобы не пропускать новые статьи на канале Installer — жмите «Подписаться» . До новых встреч!
Что за папка Program Files (x86) на диске С?— этот вопрос возникает достаточно часто. По сути на системном диске одновременно находятся две папки — Program Files и Program Files (x86), что и вызывает вопросы.
Сама по себе папка Program Files по умолчанию предназначена в операционной системе Windows для помещения в нее файлов устанавливаемых программ. Это означает, что когда вы устанавливаете какую-либо программу на компьютер, то почти всегда программа будет помещена именно в Program Files. Но откуда взялась еще одна такая папка? Чтобы ответить на этот вопрос начну немного издалека:)
Без погружения в причину такого деления скажу, что в настоящее время Windows бывает двух версий: 32-х разрядная и 64-х разрядная (или «битная»).
Основное существенное для нас отличие этих версий Windows заключается в том, что 64-х битная версия может работать с оперативной памятью более 4Гб, а 32-х разрядная поддерживает лишь до 4 Гб оперативной памяти.
Но не только операционная система, но и программы имеют разрядность. То есть многие программы имеют две версии — 32-х и 64-х разрядную.
Соответственно, ограничение на работу с памятью так или иначе относится и к программам и если все же немного углубиться в тему, то ситуация выглядит следующим образом…
Если на компьютер установлена 32-х разрядная Windows и, соответственно, 32-х разрядные программы, то для работы программ будет доступно не более 3Гб оперативной памяти и даже если в компьютере установлено 8Гб, то остальные 5Гб будут простаивать.
Если установлена 64-х разрядная Windows, то она будет поддерживать как 32-х битные, так и 64-х битные программы и приложения. Причем для приложений доступна вся оперативная память, установленная на компьютере.
То есть в 32-х разрядной Windows можно работать только с 32-х разрядными программами, а в 64-х разрядной — как с теми, так и с другими.
Ну и теперь вернемся к нашим папкам…
Две папки Program Files и Program Files (x86) есть только в 64-битных Windows. Думаю, вы уже догадались почему.
В папку Program Files по умолчанию устанавливаются 64-х битные программы, а в Program Files (x86), соответственно, 32-х битные.
Поэтому ничего с этой папкой делать не нужно и она вполне закономерно появилась на вашем компьютере после установки 64-х битной операционной системы.
Программные файлы
Именно так дословно переводиться название каталога. Он является стандартным в ОС, начиная с первых версий Виндовс. Изначально в нём содержится лишь несколько вложенных директорий, связанных с предустановленным функционалом «операционки» — антивирусом, почтовым клиентом, медиа проигрывателем, консолью PowerShell и т.д.:
Но со временем количество содержимого увеличивается. Это связано с установкой различных пользовательских приложений, игр. Скорее всего, Вы обращали внимание, что в процессе инсталляции софта нужно указать — куда копировать контент. Выглядит это примерно следующим образом:
В итоге, папка Program Files увеличивается в размере, в ней появляются дополнительные элементы, некоторые из которых занимают десятки гигабайт (если Вы устанавливаете современные игры). То есть, во вложенных папках хранятся практически все данные программ.
Я недавно переустановил Windows 10, поэтому в свойствах каталога можно увидеть довольно скромные цифры:
Переходим к следующему вопросу.
Program Files и Program Files (x86) что это?
У некоторых пользователей есть только одна из указанных папок, а другие находят у себя вторую, с окончанием «x86». Где логика? От чего зависит ситуация?
Не нужно пугаться, искать проблему там, где её нет. Многие сразу же думают, что в Виндовс проник вирус, который создал дубликат с похожим названием и содержимым, чтобы незаметно «поедать» личную информацию и нагружать процессор.
На самом деле, всё зависит от разрядности 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.
- Шины видеокарт какие бывают
- Устанавливаю игру на диск d тратиться память на диске с
- Asrock n68 ge3 ucc разгон процессора
- Полумостовая схема импульсного блока питания как работает
- Как обновить браузер чтобы пользоваться google диском
Источник: kompyutery-programmy.ru
Зачем в Windows две папки Program Files?
В Windows существуют две папки Program Files для разделения установленных программ на 32-битные и 64-битные версии.
Папка «Program Files (x86)» содержит 32-битные приложения, а папка «Program Files» содержит 64-битные приложения. Это сделано для того, чтобы обеспечить совместимость и исправную работу приложений на 64-битной версии Windows, которая может иметь проблемы с запуском 32-битных приложений.
Если у вас установлена 32-битная версия Windows, то у вас будет только одна папка «Program Files», где будут храниться все установленные приложения. Если же у вас установлена 64-битная версия Windows, то вам будет доступна и папка «Program Files (x86)», в которой будут храниться 32-битные приложения.
Кроме того, разделение на две папки помогает обеспечить более чистую и организованную структуру файлов на компьютере, что делает управление приложениями более простым и удобным.
Источник: dzen.ru
Зачем 64-битной Windows нужна отдельная папка «Program Files (x86)»?
Я знаю, что в 64-разрядной версии Windows папка «Program Files» предназначена для 64-разрядных программ, а папка «Program Files (x86)» — для 32-разрядных программ, но зачем это вообще нужно? Под «необходимым» я не имею в виду «почему Microsoft не смогла принять никаких других дизайнерских решений?«потому что, конечно, они могли бы иметь.
Скорее я имею в виду, «почему, учитывая текущий дизайн 64-битной Windows, 32-битные программы должны иметь отдельную папку верхнего уровня из 64-битных программ?»Другими словами», что могло бы пойти не так, если бы я как-то избежал механизма перенаправления и заставил все установить на настоящий C:Program Files ?» Есть много вопросов о Super User и других местах, которые утверждают, что «один для 32-битных программ, другой для 64-битных программ», но ни один, который я могу найти, не дает оснований. Исходя из моего опыта, это , кажется, не имеет значения, установлена ли 32-разрядная программа в правильном месте или нет. Windows как-то отличается от программы, в которой заканчивается «Program Files (x86)»? Есть ли описание, которое показывает, что именно отличается от программы, установленной в «Program Files (x86)» вместо «Program Files»? Я думаю, что вряд ли Microsoft представит новую папку без уважительной технической причины.
изменён Der Hochstapler 68k
задан Stephen Jennings 20k
11 ответов 11
Краткий ответ: чтобы гарантировать, что унаследованные 32-разрядные приложения продолжают работать так же, как раньше, без навязывания некрасивых правил для 64-разрядных приложений, которые создают постоянный беспорядок. Это не обязательно.
Это просто удобнее, чем другие возможные решения, такие как требование, чтобы каждое приложение создавало свой собственный способ отделения 32-разрядных библиотек DLL и исполняемых файлов от 64-разрядных библиотек DLL и исполняемых файлов. Основная причина заключается в том, что 32-разрядные приложения, которые даже не знают о существовании 64-разрядных систем, «просто работают», даже если 64-разрядные библиотеки DLL установлены в местах, где приложения могут выглядеть.
32-битное приложение не сможет загрузить 64-битную DLL, поэтому был необходим метод, чтобы гарантировать, что 32-битное приложение (которое может предшествовать 64-битным системам и, следовательно, не имеет представления о 64-битных файлах) даже не существует) не найдет 64-битную DLL, попробуйте загрузить ее, не удалось, а затем сгенерировать сообщение об ошибке. Самое простое решение для этого — последовательно отдельные каталоги. На самом деле единственная альтернатива — требовать от каждого 64-разрядного приложения «прятать» свои исполняемые файлы там, где 32-разрядное приложение не будет выглядеть, например, в каталоге bin64 внутри этого приложения. Но это наложило бы постоянное уродство на 64-битные системы только для поддержки устаревших приложений.
ответ дан David Schwartz 57k
- Папки потрясающие! Давайте договоримся о чем-то. Папки отличные! Они нам не нужны, у нас достаточно возможных имен файлов, чтобы поместить каждый отдельный файл в корень жесткого диска, так зачем вообще иметь папки? Ну, они помогают нам заказать наши вещи. И заказывать вещи отлично. Это помогает нам легче обрабатывать вещи. Это особенно полезно при работе с машиной, которая требует структуры.
- Разделение данных и логики — это здорово! Парадигма, часто встречающаяся в программировании, заключается в отделении данных от логики. Вы хотите , чтобы одна часть , которая знает , как сделать что — то и вы хотите другую часть , которую вы можете сделать что — то с. Это также находится в файловой системе. У нас есть папки для приложения (логика) и папки для наших ценностей (данных):
логика
- %WINDIR%
- %PROGRAMFILES%
- %PROGRAMFILES(x86)%
Данные
- %PROGRAMDATA%
- %HOMEDRIVE%%HOMEPATH%
Таким образом, кажется, что папки потрясающие, и имеет смысл помещать программы в их собственную маленькую папку. Но почему 2? Почему бы не позволить установщику справиться с этим и поместить все в одну папку « Programs »?
1 папка программных файлов
Разработчик поддерживает 2 установщика. Один для 32-битной и один для 64-битной версии его приложения. 32-битный установщик запишет в C:Program FilesApp а 64-битный установщик запишет в C:Program FilesAppsixtyfour .
2 папки с программными файлами
Я до сих пор не понимаю. Это кажется бесполезным
Вы никогда не должны забывать одну вещь. Люди невероятно глупы. Это включает в себя пользователей, супер пользователей и особенно программистов.
Вот почему нам нужны такие вещи, как перенаправление файловой системы, чтобы сделать наши системы работоспособными.
Программисты просто зайдут туда и попытаются загрузить C:Windowssystem32awesome.dll и не заботятся о том, работают ли они в 32- или 64-битной системе. Они будут пытаться загрузить 64-битную DLL и просто потерпеть крах. Некоторые программисты хотят использовать некоторую Office DLL, нет проблем, они знают, где ее найти! C:Program FilesMicrosoftOffice14.0wizards.dll . и еще один сбой!
Все эти запросы 32-битным приложением перенаправляются в 32-битные аналоги, чтобы избежать сбоев приложения.
Нам нужны фиксированные имена папок для построения такой системы. Если нет структуры папок, поддерживающей это перенаправление, то как вы собираетесь заставить ее работать?
Хорошо, теперь я понял. Но почему бы тогда не использовать C:Program Filesx86 ?
Теперь мы становимся философскими .
Что бы пошло не так, если бы я как-то избежал механизма перенаправления и заставил все установить на настоящий C:Program Files ?
Скорее всего, ничего (если другие приложения не зависят от фиксированного местоположения этого приложения).
Механизм WOW64 подключается к CreateProcess и будет выполнять более сложные (более сложные, чем проверка имени папки исполняемого файла) проверки исполняемого образа, чтобы определить, является ли он 32- или 64-разрядным.
Да, но я имею ввиду ВСЕ приложения!
- Что произойдет , если я ставлю как дизельное топливо и газ в мою машину?
- Что произойдет, если я попытаюсь использовать как переменный, так и постоянный ток на одной линии?
- Что произойдет , если я продолжу и мою кошку и мою рыбу в том же аквариуме?
Некоторые вопросы не требуют ответов. Это не должно быть сделано, не делайте этого. Здесь нечего получить. Количество проблем, которое может вызвать такое изменение, всегда перевешивает любые возможные выгоды, которые кто-либо может увидеть в этом.
изменён Der Hochstapler 68k
ответ дан Der Hochstapler 68k
Подводя итог, нет, это не обязательно ; они могли бы использовать одну папку, и нет, Windows не выглядит иначе, чем программа, запускаемая из того или иного места.
Ну, все, кажется, высказывают свое мнение по этому поводу, поэтому я брошу свои 2 ¢. Другие уже предположили причины, по которым Microsoft решила создать отдельные папки верхнего уровня для 32-разрядных и 64-разрядных версий программ, поэтому я оставлю эту часть (лучшей причиной было объяснение Дэвида, что это как удобство для программистов). Конечно, даже тогда, это не совсем решает прямой вопрос, почему это вообще необходимо?, на который, по-видимому, ответ: это не так.
Вместо этого я рассмотрю основную часть вопроса
Windows как-то отличается от программы, в которой заканчивается «Program Files (x86)»?
Не совсем, но расположение программы может повлиять на поведение, но не так, как вы думаете.
Когда вы запускаете программу, Windows устанавливает среду, в которой она запускается (я имею в виду память, адресацию и т.д., А не только переменные среды). Эта среда зависит от содержимого исполняемого файла (32-битные и 64-битные программы внутренне различаются). Когда вы запускаете 32-битную программу в 64-битной системе, она запускается в 32-битной подсистеме, которая эмулирует 32-битную среду. Он называется WoW64 (WoW64 означает Windows на 64-битной Windows) и похож на то, как 16-битные приложения будут запускаться в XP с использованием NTVDM.
Когда вы запускаете программу с правами администратора или без них, это влияет на то, как она работает, но местоположение не должно влиять на нее (хотя есть некоторые примеры зависимости от местоположения, например, некоторые драйверы).
(Я использую другой компьютер, поэтому я не могу полагаться на историю своего браузера, чтобы отследить свои шаги, но на днях, отвечая на этот вопрос SU, я оказался на этом вопросе SO, который привел меня к Google PROCESSOR_ARCHITEW6432, который привел к этому вопросу SO и это публикация в блоге Microsoft.)
Где-то по пути я читал пост StackOverflow о том, как переменная окружения %processor_architecutre% дает разные результаты в зависимости от того, откуда вы запускаете командную строку (я постараюсь найти точную цитату).
Ответ оказался обусловлен тем, была ли запущена 32-разрядная или 64-разрядная версия командной строки (т. Е. Из System32 или SysWoW64 ). Другими словами, хотя местоположение, кажется, влияет на поведение программы, это происходит только потому, что существуют разные версии программы, а не потому, что Windows обрабатывает папку особым образом.
Это имеет смысл, поскольку содержимое исполняемого файла определяет, является ли оно 32-разрядным или 64-разрядным, поэтому вы можете поместить как 32-разрядную, так и 64-разрядную копию одной и той же программы (например, foobar32.exe и foobar64.exe ) в в ту же папку, и когда вы выполните их, они будут загружены правильно (64-битная версия будет работать изначально, а 32-битная — на уровне эмуляции WoW64).
FreePascal позволяет устанавливать версии как для DOS, так и для Windows, и они находятся в одной папке: %programfiles%FreePascal . Он управляет различными архитектурами, храня исполняемые файлы ( .exe , .sys , .dll , .ovr и т.д.) В отдельных папках и обмениваясь файлами ресурсов, такими как картинки, исходные файлы и т.д.) Нет технической причины, по которой это нельзя было бы сделать для 32- и 64-разрядных версий программы. Как сказал Дэвид, программисту будет проще, если они будут храниться отдельно (т. Е. Использовать переменные, чтобы они выглядели так, будто существует только один набор файлов и т.д.)
Источник: poweruser.guru