Why Does Windows 7 64-bit Need Two Program Files Folders?

Although Windows XP did have a 64-bit version, it wasn’t until Microsoft released Windows Vista that consumers really had to make a decision of whether to buy the 32 or 64-bit version.

Windows 7 also comes in 32 and 64-bit versions and if you opted for the 64-bit, you may have noticed that there are two Program Files folders on your hard drive. Read on to explore the difference between 32 and 64-bit Windows 7 and why the operating system needs two separate folders in which to store program data.

Windows 7 32 and 64-bit

The real difference between Windows 32 and 64-bit has to do with how much memory the operating system can address. To “address” simply means to “keep track of.”

Windows 7 32-bit (like previous 32-bit versions of Windows) can address up to 4,294,967,296 bytes of information. That’s 4GB of memory. Theoretically, a 64-bit operating system can address up to 1,8446,744,073,709,551,616 bytes of information.

That’s 16.3 billion gigabytes. However, the memory limit on the consumer versions of Windows 7 is 128GB which is still beyond the physical limits of 8GB to 16GB for most motherboards.

Windows 7 64-bit and Addressable Memory

Moving from a 32-bit to a 64-bit operating system is more than just a jump in addressable memory. It is a change to a completely different method of keeping track of data. This is why hardware (such as a sound card) needs a completely different driver to work in Windows 7 64-bit.

Two Program Files Folders in Windows 7

If you have the 64-bit version of Windows 7 Home Premium, Professional, or Ultimate edition, you may have noticed that there are two Program Files folders on your hard drive.

Windows 7 64-bit Two Program Files Folders

One is simply labeled Program Files and the other is labeled Program Files (x86). The first folder is the default location for all of your 64-bit programs. It does not have an extra label at the end because as a 64-bit operating system, it is assumed that you will have only 64-bit applications installed on your computer.

The second folder labeled Program Files (x86) is the default location for all of your 32-bit applications. In a sense, it is a folder designed for legacy software that is left over from the days of 32-bit operating systems. The x86 portion of the folder name refers to the x86 32-bit architecture upon which the first 32-bit processors were developed such as the 386, 486, and Pentium CPUs.

Unfortunately, switching from 32-bit to 64-bit applications and operating systems is not as simple as Microsoft would like. To make the switch, every software vendor, hardware manufacturer, and user would suddenly have to stop making and using anything built on a 32-bit architecture and begin using 64-bit. This is entirely impractical because most people are not willing to just junk their investment in hardware and software and buy everything new again.

windows 7

Microsoft’s solution to this transition from 32-bit to 64-bit has been to add legacy support for most 32-bit applications. In other words, most 32-bit applications will function in the 64-bit operating environment. Keep in mind that other operating systems operating on a 64-bit architecture cannot load or run 32-bit applications at all.

To help make the transition easier, Microsoft has designated that all 32-bit application should, by default, be loaded into the Program Files (x86) folder rather than getting mixed in with true 64-bit applications in the regular Program Files folder.

Soon, however, most applications will be 64-bit making the need for multiple Program Files folders unnecessary. Still, even Microsoft when it released Windows Vista 64-bit, failed to develop and release a 64-bit version of Office 2007 that was released at the same time.

Keep in mind that by the time we all make the switch to 64-bit applications, it is likely that talk of 128-bit architectures will force us to go through the whole process again.

Comments [16]

  1. Aaron says:

    "Keep in mind that other operating systems operating on a 64-bit architecture cannot load or run 32-bit applications at all."

    That's incorrect, Linux (for sure) and OSX (I assume) both can.

  2. oneshot719 says:

    @Aaron

    you sir are absolutely correct. same goes for past versions of 64bit windows including xp and vista

  3. bb says:

    Your point is that windows puts all the 32bit applications in the 32bit programs folder. In spite of the articles title did not say why windows needs to do that.

  4. Jerry says:

    It doesn't seem like you've answered the question in the title of the article. I understand that 32-bit and 64-bit applications are different, but why does windows need to keep them in separate directories?

    What happens if you manually install something in the wrong place? I use several programs that are distributed without any kind of installer (just a zip file with the app and it's supporting data). I'd like to move those into one of the Program Files directories. What are the consequences of choosing the wrong one?

  5. SkyLeach says:

    I kindof think that they made the Program Files (x86) so that we could see which programs were 32bit and which where 64bit. Honestly, it is helpful in some ways. Now, at least, I know which programs have partial 64bit support and which are truly 64bit.

    When windows provides the default installation folder for an application that is about to be installed, it selects which Program Files folder should be used based on the binary header information in the executable. The binary header of a windows executable tells windows right off the bat if the program is 32bit or 64bit. I'm going to guess that if it didn't there would be a great deal of detection overhead required in Windows.

    The problem is this: How on earth does Windows know which executable contained within an installer applications compressed contents is really the application that is going to be installed? The vast majority of applications are going to have at least one 32bit executable contained in their installer's compressed contents. The vast majority of installers are 32bit (this is so that they can say "Yo dipsh*t, this program is 64bit and you have a 32bit system." when someone on a 32bit system attempts to install the app)

    Conclusion: they had a good idea in premise but didn't explore it sufficiently before implementing the solution.

    Effective Result: There are a LOT of 64 bit apps installed in the Program Files (x86) folder.

  6. Anthony V. Gibby says:

    Thanks for this information. I was wondering why Windows 7 (Vista) has an x86 folder.

  7. Tom says:

    Yet another Microsoft stuff up in my opinion. There is absolutely no good reasoning behind separating applications into different directories depending on their architecture. This only creates confusion, and a headache for any system administrator that needs to manage both x64 and x86 operating systems.

    The only logic I can see behind this decision, is that it allows both x64 and x86 applications to co-exist. Microsoft has used this to provide two versions of Media Player, Internet Explorer and a couple of other apps in both x64 and x86 architectures. On that note, however, it wouldn't exactly have required a brain surgeon to figure out that you could create x64 and x86 sub-directories under the application folder, for example: "C:Program FilesWindows Media Playerx86" would have been a much better solution in my opinion. Where this distinction isn't required (which in 99% of cases, you only have one version of application installed), you could simply put the application files in: "C:Program Files".

    Thank you Microsoft for proving that you still lack competence in designing powerful yet simple software systems.

    Simplicity seems to be Microsoft's arch enemy.

  8. cyrill says:

    I'm still a bit confused about in what folder I should put some .exe files. Will it do harm when I place them into the Program Files folder? How do I know if a program is 64-bit?

  9. colin tandy says:

    Two program folders not very helpful when reference files expect them to be in c:program files and not x86. The visual basic installer defaults to x86 so has to be changed during the installation process.

    Visual Basic 6 has not worked on any version since Windows XP. Replacements for Visual Basic 6 are far too complex – annoying when you have 20 year of experience with Visual Basic 6.

    It looks as if Windows 7 Ultimate is the only way of fixing this.

    V

  10. Straydog says:

    As we know, many people set up their programs in other folders located on other places. With systems with a single Program File folder we know the answer, but here it is ambiguous and the article does not tell what happens to programs placed outside that two original folders. This is much more important than the obvious described here in detail.

  11. FoxMagix says:

    This thread was pointlessly over explained and under resolved. The Win7 64bit platform by default installs to (86) for some reason, pressume as most sw built on 32arch. I am deleting the (86) extension every time I install something with zero consiquence at all so what is the point of the folder in the first place. Win7 knows whether it'll run 32or64 and act accordingly BUT!!! Heres a question…. If win7 64 is pulling the exe from the (86) program folder is it still booting the 64bit version or the 32bit. Is windows still looking for 64bit load extensions in a 32bit program directory??? ANYONE CARE TO ANSWER ACTUAL QUESTIONS AS OPOSED TO GO ROUND IN CIRCLES AS TO WHY ITS DONE & HOW MS COCKED UP ???

    Do we continue deleting the x86 from the install location as its completely unnessesary in my opinion, if its 32 running from 64program folder it WILL only run in 32

    WHAT IS THE POINT IN THIS FOLDER & WHY CANT I DELETE IT!!!!!

  12. some one says:

    Agreed! I don't feel smarter after reading

  13. JS says:

    Nicely written article. I think I’ll stick with my Mac.

  14. Hatshepsut says:

    Thanks for the explanation.

    On a somewhat related theme, I just removed my Bing Bar that came factory installed in IE with my Windows 7 64-bit.

    I noticed when making sure that the Bing Firefox extension folder also got removed, that the following folder was totally empty: C:/Program Files (x86)/Microsoft. Was it supposed to have contained additional folders besides the Search Enhancement Pack?

    (And in the 64-bit C:/Program Files/ there was NO Microsoft Folder! I mean the plain Microsoft folder; there are other ones: Microsoft Office, Microsoft games, etc. Is that normal?)

    The machine is working fine, though I have not rebooted since I uninstalled Bing Bar.

  15. Anthony says:

    Why are you attributing this to Microsoft, as if it is some genius on their part that allows access to 32-bit programs? The x86-64 bit architecture is fully backwards compatible with x86 – software written in x86 assembly will run perfectly fine, x86-64 is basically just an extension. That’s what allows 32-bit compatibility. I would be surprised if there was an operating system that DIDN’T take advantage of this backwards compatibility. The reason most operating systems written for 64-bit architectures don’t allow you to run 32-bit programs is that MOST 64-bit architectures are not simple extensions of 32-bit architectures, they’re designed with 64-bits in mind and it’s impossible to run it as anything else.

  16. Anthony says:

    And the actual reason is so that people can install BOTH 32-bit and 64-bit versions of an application, not because people are expected to install only 64-bit software. That’s ridiculous, something you just made up.

Leave a Reply