Домашня » як » Яка різниця між папками «Програмні файли (x86)» і «Програмні файли» у Windows?

    Яка різниця між папками «Програмні файли (x86)» і «Програмні файли» у Windows?

    Є хороші шанси, що у вас є як папки "C: Program Files", так і "C: Program Files (x86)" на комп'ютері з ОС 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, що означає "Windows 32-bit на Windows 64-bit".

    Коли ви запускаєте 32-розрядну програму на 64-розрядному випуску Windows, шар емуляції WOW64 плавно перенаправляє доступ до файлу з “C: Program Files” на “C: Program Files (x86)”. програма намагається отримати доступ до каталогу програмних файлів і вказати на папку 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: Програмні файли Microsoft Office і 32-бітне додаток шукали б у C Програмні файли (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".

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

    Це звичайно не має значення

    Як правило, неважливо, чи зберігаються файли програми в програмних файлах або програмах (x86). Windows автоматично інсталює програми у потрібну папку, тому вам не потрібно думати про це. Програми з'являються в меню Пуск і функціонують нормально, незалежно від того, де вони встановлені. 32-розрядні та 64-розрядні програми повинні зберігати ваші дані в папках, таких як AppData і ProgramData, а не в папці Program Files. Просто дозвольте вашим програмам автоматично вирішити, яку папку папок програми використовувати.

    Якщо ви використовуєте портативну програму, вона може запускатися з будь-якої папки у вашій системі, тому вам не доведеться турбуватися про те, де їх можна розмістити. Нам подобається розміщувати портативні програми в Dropbox або іншому типі папки для хмарних сховищ, щоб вони були доступні на всіх наших ПК.

    Іноді потрібно знати, де зберігається програма. Наприклад, скажімо, ви хочете перейти до каталогу Steam, щоб створити резервні копії деяких файлів. Ви знайдете його в C: Program Files (x86), оскільки Steam є 32-розрядною програмою.

    Якщо ви не впевнені, чи інстальована програма 64-розрядна чи ні, і ви шукаєте його інсталяційну папку, вам може знадобитися шукати в обох папках Program Files, щоб знайти її.

    Ви також можете подивитися в Диспетчері завдань Windows 10.

    У 64-розрядних версіях Windows 32-розрядні програми позначаються додатковим текстом (32-bit), що дає змогу вказати, що ви знайдете їх у папці C: Program Files (x86).