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 obviously tell us that the after the advent of 64-bit Windows operating systems it decided to separate installed programs running on 64-Bit from those running on 32-bit. And so, 64-bit machines have both folders (versus 32-bit machines having only one Program Files) with 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 a 32-bit program on a 64-bit version of Windows, the WOW64 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 can not run on a functional 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 won't always find the two different architectures as '32-bit' and '64-bit'. Instead, you'll sometimes see them as "x86" and "x64" respectively. This has been connected since computers used the 8086 by Intel. 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 none of this matters, and you probably don't care whether a program's files are stored in the Program Files folder or the Program Files (x86) folder. Windows automatically installs programs in the correct folder, so you don't have to decide for yourself. Your programs appear in the menu 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.082 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.).