- Back to Home »
- MCITP , MCSE »
- Why Does 64-Bit Windows Need Two Program Files Folders — Program Files & Program Files (x86)
Posted by : Sivapriya
Saturday, 21 January 2017
Ever wondered why 64-bit Windows needs to have two Program Files folders? This is done to separate the 32-bit DLL executables from 64-bit DLLs. It also eliminates the chances of a 32-bit application trying to load a 64-bit DLL, fail, and give an error message.
Back in 2005, Microsoft launched both 32-bit and 64-bit versions of Windows operating system. This was done to support new 64-bit CPUs. The 64-bit CPUs have the ability to work with large numbers and access more memory.
If you’re running 64-bit Windows operating system, you might have noticed that your PC has two Program Files folders. One is the regular Program Files and the other one is Program Files (x86). But, why is it necessary? What’s the difference between these two folders?
Well, to answer these questions, one should understand that 64-bit applications are compiled differently. While a program with 64-bit instructions can’t be read by PCs with 32-bit CPUs, a 32-bit program can be read by 64-bit CPU.
Windows has a separate Program Files (x86) folder, Why?
Whenever you install any program on a computer with 64-bit CPU, its folders are, more or less, intended for 64-bit content. When a 32-bit program tries to use a 64-bit component, it faces some problems.
So, Windows separates the directories of 64-bit and 32-bit programs. The Program Files (x86) is the one for storing 32-bit program. x86 stands for the type of processors — 286, 386, 486, 586(Pentium).
Another reason is that 64-bit software doesn’t act nicely with 32-bit extensions, and vice versa. It increases the chances of a conflict if you happen to install both 64-bit and 32-bit versions of a program on the same system.
Last but not the least, having two separate Program Files folders ensures that 32-bit applications, unaware about a 64-bit system, work. Separating both kinds of applications will eliminate the chances of a 32-bit application trying to load a 64-bit DLL, fail, and give an error message.
Apart from the Program Files, there are some other Windows components that have both 32-bit and 64-bit copies. Some of these are stored in winsxs (stands for windows side by side) and syswow64 (Windows 32 on Windows 64).
Also Browse :