Why do I have two 'Program Files' folders?
Since 2005, Microsoft has offered both 32-bit and 64-bit versions of its Windows operating system. If you're running a 64-bit version of Microsoft Windows, you will notice that there are two separate folders where your Program Files are kept:
- Program Files, which contains 64-bit programs and applications, and
- Program Files (x86), which contains 32-bit programs and applications.
So what's the difference?
64-bit applications have been compiled specifically for use on a 64-bit computer. They make use of system features specific to a 64-bit architecture, and they access 64-bit versions of the Windows software libraries.
32-bit applications are legacy applications or modern programs that have been compiled for 32-bit processing. 64-bit versions of Windows can still run these programs, though, using a compatibility layer called WoW64 (which stands for Windows32 on Windows64).
Is it bad to run a 32-bit program on 64-bit Windows?
Not at all. The WoW64 layer does a good job of emulating a 32-bit environment, and any performance loss is generally not noticeable. In some cases, performance may even improve, because WoW64 can allocate a full 4 GB of RAM to the application (the maximum amount accessible to any 32-bit application), whereas on a real 32-bit system, some of that RAM would be used by the operating system kernel and other running programs.
So, why are 64-bit and 32-bit programs kept in separate folders?
- Convenience: it's an easy way to tell them apart.
- It reduces the chances of a conflict if, for example, you install both a 32-bit and 64-bit version of the same program on one system.
- It increases the chance that older programs will work properly, reducing the chance that they will interact with 64-bit software accidentally.
Why is it the 32-bit folder called "(x86)"?
x86 is another way to refer to 32-bit processors. Originally, 16-bit processors — specifically, the 8086 and 8088 processor architectures — were referred to as "x86". This name was later extended to include the 32-bit 80386 and 80486 processor family. When 64-bit processors were introduced, they were referred to as x64 to distinguish them from the older processor lines.
If I manually move programs from one folder to the other, will they still work?
In theory, there's no reason why a 32-bit program won't work if you manually install it to your Program Files folder, and vice versa — 64-bit programs should work fine if you install them to the Program Files (x86) folder. It's a better idea to leave them right where Windows wants them, however.
Tip: If you're having trouble locating a program in the Programs Files folder, try looking in the Programs Files (x86) folder as well.