Каква е разликата между папките „Program Files (x86)“ и „Program Files“ в 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, което означава "32-битова Windows на 64-битова версия на Windows."
Когато стартирате 32-битова програма на 64-битово издание на Windows, слоят за емулация на WOW64 безпроблемно пренасочва достъпа до файла от “C: Program Files” на “C: Program Files (x86)”. Програмата се опитва да влезе в директорията 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 Програмни файлове (x86) Microsoft Office.
Това също помага, когато разработчик създава и 32-битова, и 64-битова версия на приложението, особено ако и двете трябва да бъдат инсталирани едновременно в някои ситуации. 32-битовата версия автоматично се инсталира в C: Program Files (x86), а 64-битовата версия автоматично се инсталира в C: Program Files. Ако Windows използва една папка, разработчикът на приложението ще трябва да инсталира 64-битова папка в друга папка, за да ги държи отделни. Вероятно няма да има истински стандарт, когато разработчиците инсталират различни версии.
Защо е наречена 32-битовата папка (x86)?
Вие не винаги ще видите “32-bit” и “64-bit”. Вместо това понякога ще видите “x86” и “x64”, за да се отнасят до тези две различни архитектури. Това е така, защото ранните компютри използват чипа Intel 8086. Оригиналните чипове бяха 16-битови, но по-новите версии станаха 32-битови. "X86" сега се отнася до пред-64-битовата архитектура - независимо дали е 16-битова или 32-битова. Вместо това по-новата 64-битова архитектура се нарича "x64".
Това означава, че “Program Files (x86)” означава. Това е папката Program Files за програми, използващи по-старата архитектура на процесора x86. Имайте предвид обаче, че 64-битовите версии на Windows не могат да изпълняват 16-битов код.
Това обикновено не е от значение
Обикновено не е от значение дали файловете на програмата се съхраняват в програмните файлове или програмните файлове (x86). Windows автоматично инсталира програми в правилната папка, така че не е нужно да мислите за това. Програмите се появяват в менюто Старт и функционират нормално, без значение къде са инсталирани. И 32-битовите и 64-битовите програми трябва да съхраняват вашите данни в папки като AppData и ProgramData, а не във всяка папка Program Files. Просто оставете вашите програми автоматично да решат коя папка на Program Files да използвате.
Ако използвате преносимо приложение, то може да се изпълнява от всяка папка на вашата система, така че не е нужно да се притеснявате къде да ги поставите. Ние обичаме да поставяме преносими приложения в Dropbox или друг вид папка за съхранение в облак, така че те да са достъпни на всички наши компютри.
Понякога трябва да знаете къде се съхранява дадена програма. Например, да кажем, че искате да отидете в папката си Steam, за да направите резервно копие на някои файлове. Ще го намерите в C: Program Files (x86), тъй като Steam е 32-битова програма.
Ако не сте сигурни дали инсталираната програма е 64-битова или не и търсите нейната инсталационна папка, може да се наложи да търсите в двете папки на Program Files, за да го намерите.
Можете също така да погледнете в Windows 10 Task Manager.
В 64-битовите версии на Windows 32-битовите програми са маркирани с допълнителния „(32-битова) текст, което ви дава индикация, че ще ги намерите в C: Program Files (x86).