The difference between the "Program Files (x86)" and "Program Files" folders in Windows

There is a good chance that you have two similar folders in Windows, "C: \ Program Files" and "C: \ Program Files (x86)". Knowing that your installed programs are in the Program Files folder, you will see that some of them are in one folder, and some others are in the folder.

And if we ask you what is the difference between these folders, you will probably tell us that Microsoft after the appearance of 64-bit Windows operating systems decided to separate the installed programs that run on 64-Bit from those that run on 32-bit. And so, the 64-bit machines have both folders (versus 32-bit machines having only one Program Files) with the 32-bit programs installed in the "C: \ Program Files (x86)».

Windows 64-bit vs. Windows 32-bit
64-bit Windows can also run 32-bit applications using something called WOW64, which means "Windows 32-bit on Windows 64-bit".

When you run one 32-bit on a 64-bit version of Windows, the WOW64 emulator redirects all files from "C:\Program Files" to "C:\Program Files (x86)". And so while the 32-bit program tries to access the program's main file directory it is actually redirected to Program Files (x86). 64-bit programs still use the regular Program Files folder.

Of course 64-bit applications cannot run on 32-bit Windows, even if the machine is 64-bit (yes, 32-bit Windows can be installed on a 64-bit CPU and motherboard)

What's stored in each folder
In short, a 32-bit version of Windows just has just one "C: \ Program Files" folder. This includes all your installed programs, which are 32-bit.

In a 64-bit version of Windows, 64-bit programs are stored in "C: \ Program Files". 32-bit programs are stored in the "C: \ Program Files (x86)" folder.

Why did they divide them?
Due to compatibility. Because 32-bit programs may not be aware that they are running on a 64-bit version of Windows, they split them so that Windows can keep them away from 64-bit code.

32-bit programs can not load 64-bit libraries (DLLs), and they will crash if they try to load a specific DLL file and find a 64-bit machine instead of the 32-bit counterpart. The same applies to 64-bit programs. Keeping the separation between different program files designed for different CPU architectures prevents mistakes.

For example, suppose Windows uses only one Program Files folder. An 32-bit application that needs part of Office will start searching for a Microsoft Office DLL file located in C: \ Program Files \ Microsoft Office and will try to load it. However, if you had an 64-bit version of Microsoft Office installed, the application would not work properly and would most likely crash. With the separate folders, it ensures that the application will not be confused with finding the correct DLL, because the 64-bit version of Microsoft Office will be in C: \ program files \ Microsoft Office and the 32-bit application will be in C: \ Program Files (x86) \ Microsoft Office.

This also helps developers who create both the 32-bit and 64-bit architectures, especially if they both need to be installed at the same time. The 32-bit version is automatically installed in C: \ Program Files (x86), and the 64-bit version is automatically installed in the C: \ Program Files folder.

Why was the 32-bit folder named (x86)?
You will not always find the two different architectures as "32-bit" and "64-bit". Instead, you will sometimes see them as "x86" and "x64" respectively. This has been around since computers used the Intel 8086 chip. THE term x86 came from the fact that the first descendants of 8086 also had names ending in "86". The original chip was 16-bit and the next version became 32-bit. So the term "x86" refers to 16-bit or 32-bit architecture. Newer 64-bit architecture is referred to as "x64" instead.

This means that in "Program Files (x86)" there are programs that use the older x86 CPU architecture. Note also that the 64-bit version of Windows can not run 16-bit code.

Do they all matter?
Usually all this does not matter and logically you do not care if the files of a program are stored in the Program Files folder or in the Program Files folder (x86). Windows automatically installs the programs in the correct folder so that you do not have to decide for yourself. Your programs are displayed in and operate normally, regardless of where they are installed. Both 32-bit and 64-bit programs should store your data in folder names, such as AppData and ProgramData, and not in any Program Files folder. Just let your programs automatically decide which Program Files to use.

If you use a portable program, it can run from any folder on your system, so you do not have to worry about where to place it. You can also put your portable applications in the Dropbox or another type of cloud storage folder so that they are available from all your computers.

Sometimes you need to know where a program is stored. For example, you may want to go to a program's installation folder to back up some files. You need to know where to look.

If you are not sure if a program you have installed is 64-bit or not and you are looking for its installation folder, you may need to examine both program file folders to find it.

You can also take a look at Task Manager. 32-bit programs are listed by adding "(32-bit)" immediately after their name, which gives you an indication that you will find them in C: \ Program Files (x86).

iGuRu.gr The Best Technology Site in Greecefgns

every publication, directly to your inbox

Join the 2.100 registrants.

Written by Dimitris

Dimitris hates on Mondays .....

Leave a reply

Your email address is not published. Required fields are mentioned with *

Your message will not be published if:
1. Contains insulting, defamatory, racist, offensive or inappropriate comments.
2. Causes harm to minors.
3. It interferes with the privacy and individual and social rights of other users.
4. Advertises products or services or websites.
5. Contains personal information (address, phone, etc.).