Terms of Use For FixedByVonnie

By proceeding to access fixedByVonnie.com, you expressly acknowledge, and agree to, all of the following:

fixedByVonnie.com is a personal website and blog owned by Security Plus Pro LLC, which is being presented for informational purposes only. The views on this website are solely those of the website owner (and not those of any employer or of any professional associations affiliated with the website owner).  Any views expressed in this website and any information presented on this website, or in any of its blog entries, should not be relied on for any purpose whatsoever other than as the personal opinions of the website owner.  The website owner expressly disclaims any and all liability for any information presented on this site.  The owner of this website and its blog posts shall not be held liable, and shall be held harmless, for any errors or omissions in any information or representations contained in this website, or in any of its blog entries.  The website owner also expressly disclaims any liability for the current or future availability of any such information. The website owner makes no representations as to the accuracy or completeness of any information on this website or which may be found by following any link on this website. The website owner shall not be held liable for any losses, injuries, damages, claims, or causes of action, from the display or use of any information on this website or in any of its blog entries. If you use the information on this website, or on any of its blog entries, you do so solely at your own risk.

Why do I have both a "Program Files x86" and regular "Program Files" folder? - fixedByVonnie

Why do I have both a “Program Files x86” and regular “Program Files” folder?

Program Files (x86) vs Program Files

It’s difficult to find a cogent reason why Windows has both a Program Files x86 and traditional Program Files folder.

The two folders seem redundant just like these two sentences.
The two folders seem redundant just like these two sentences.

But seriously: what does that little x86 suffix mean and where it the real location where all your program files live?

In this guide I’m going to delineate the differences between these folders and help you understand why Windows actually needs both of them.

The short answer

Anyone running the 64 bit version of Windows will see both the normal Program Files folder and a new enigmatic folder with an “(x86)” ending.

The funny and somewhat ironic thing about this whole setup is that the term “eighty six”, when used as a verb in American English, is actually a colloquial expression for getting rid of something.  For example, someone might say they “eighty sixed” the project because the CEO yanked the budget.

So I have to ask: Is Microsoft surreptitiously telling us to “eighty six” that mysterious x86 folder?

Good guess but no.

My astute readers may have noticed that those esoteric x86 Program Files folders are only extant in 64 bit versions of Windows.  Every 64bit version of Windows from Windows XP to Windows Server 2012 has dual Program Files folders.

32 bit application are installed in Program Files (x86) but native 64-bit application run in the “normal” Program Files folder.  The x86 version is there for backwards compatibility so that you can run 32bit applications on a 64bit OS.

So you need both  folders and shouldn’t “eighty-six” any of them.

If you’re confounded by all this 86 stuff keep reading and I promise I’ll confuse you a little more.

The long answer

First of all I need to explain the rationale behind why Microsoft bifurcated windows into two bit versions:

  • 32bit
  • 64bit

It all starts with a cute, adorable embryonic – bit.

A bit is the fundamental, bare-bones, most basic unit of information in computing.  It’s either on or off.

The life of a computer is fairly mundane.  To a computer everything is either true or false; which means everything is either one or zero.

On a side note, you might be wondering how we get 1080p HD moves from just one’s and zero’s – and that’s a great wonder but I don’t want to make time to explain that; plus, it’s tangential to this article so I won’t explore it here.

So since a bit is either a 1 or 0, a single bit can be expressed as the number two raised to the 1st power.

In other words, 2 (which represents each state, on or off) and 1 which represents a single bit.


With 1 bit you get a total of 2 possibilities.

How many possibilities do you think we can derive from two bits?

Let’s do the math:


Two raised to the second power means two multiplied by two.  So we get 4 possibilities with 2 bits.

Now if we keep this trend going you’ll notice that the number of possibilities increases logarithmically with each bit. With each bit that joins the pack, the rate of increase gets steeper and the slope rises faster.

So what happens when you have 32bits?

232 = 4,294,967,296

Okay that’s a big number but who cares? Why is this significant?

Because this means that a 32bit operating system can only provide 4.3 billion unique memory addresses.

This probably sounds like a lot but it actually isn’t.

232 ends up being about 4 billion bytes which is roughly tantamount to 4 Gigabytes.

In other words, if you you’re running the 32bit version of Windows you’re fettered to a maximum of 4gigs of RAM. And even so, because of some complicated issues, Windows won’t let you use the full four gigs.

This is one of the reasons why a 64bit operating system is such a big deal because it means the OS will recognize RAM modules greater than that paltry 4gigs.


This is a really really big number: welcome to the world of 64 bit memory addresses.

Making stuff work together

So Microsoft had a little conundrum:

How can we guarantee that older 32bit applications running on 64bit operating systems keep running like normal 32bit applications?

It’s a question of backwards compatibility and the answer hinges on how Windows manages Dynamic Linked Libraries.

What’s the DLL yo?

Windows applications comprise Dynamic Linked Libraries (DLLs) which are basically nuggets of programming code that is shared between applications.

For example, multiple applications might use a common method of interacting with files so by using DLLs, the OS can obviate the need for duplicate files and apportion access to those files in an optimal fashion.

The DLLs are called dynamic because they’re loaded when the program runs (called at Runtime in programming jargon) and can be linked on demand with other applications.  In other words, instead of loading a giant executable into memory, Windows can load just the right piece it needs to accomplish a specific task.

So Microsoft wanted a way to make 64bit programs, specifically 64bit DLLs, work seamlessly with existing 32bit DLLs. But Microsoft needed to avoid the potential quandary of a 32bit DLL trying to load a 64bit DLL and then vomiting up errors.

By segregating 32bit DLLs from 64bit DLLs, Microsoft ensures 32bit applications can happily co-exist on 64bit systems.  The distinct 32bit and 64bit folders make it easy for Microsoft to redirect requests from 32bit applications to 32bit DLLs.

The Bottom Line

64bit versions of Windows use the 86 version of Program Files to maintain backwards compatibility with 32bit applications.

That’s all there is to it.


Connect with Vonnie on Twitter

Posted in Windows, Windows 7, Windows 8, Windows 8.1 Tagged with:
  • Dakhamat Mohammad

    if you want to running full performance of cpu and ram use 64bit

  • Don

    I always thought x86 referred to programs that traditionally ran on the old Intel x86 8086, 80186 & 80286 16-bit and most recently 80386 & 80486 32-bit processors. Non 64-bit programs are stored in this directory to keep them separate from 64-bit programs on a machine running a 64-bit OS. It is possible to have two different versions of the same program.

  • Jitendra Sahoo

    awesome article !!!

  • bardy

    try DuplicateFilesDeleter

  • Owen Iverson

    why do they include both x86 and x64 versions of Internet Explorer when you aren’t allowed to set x64 as the default? why would you use one over the other?

  • Ann

    I have windows 7 32 bit. I ran some software for a video movie graphics and then decided to remove it. The sound affects have attached themselves to my media player and I can’t remove them. I removed all my x86 files (all seems well) but they are still there. I need administrative permission to delete these annoying files from my media player. Any suggestions? I’m not very computer savvy but I know the basics.as it still works! Could it be malware?

  • Ann

    I have TrustedInstaller attached to my x86 and grouped in my media player playlist…odd! It seems it attached to my hard disck command files because these songs are listed as : notify, ringout, speech off, chimes etc. It says I need permission from trustedinstaller to remove them. This started after I removed software for video editing I had installed but decided I didn’t like it. At first I thought it was from the audio sound affects from the software but the file says its x86…. How do I remove this.

  • Erik Sorensen

    my system information says that I am running a 32-bit operating system and yet I have both the Program Files(x86) and regular Program Files. I thought that only 64 bit OS had both. So why do I?

    • Charles

      That simple means that your system is 64bit capable.

  • lonborey

    I use 4gb of ram and I also setup Windows 8.1 (64bit). I do the right thing or wrong thing?

    • Kyle Andrew James Bacon

      I’m a year old to the party, but you did the right thing. 32bit will only read upto 3GB.

  • Thomas Lightbody

    Very handy, perfectly explained, thanks!

  • Pingback: لماذا نتملك أحياناً مجلدين لملفات البرامج؟ وماذا يعني مجلد Program Files x86 ؟ | عالم الالكترون()

  • Alex Rodriguez

    I think you meant “the number of possibilities increases exponentially”, but other than that, thanks for the explanation.

  • 12758

    “For Every Complex Problem, There Is an Answer That Is Clear, Simple, and Wrong”.

    The real answer is probably (I can’t be certain) a marketing decision. Microsoft had to make 64 bit seem ‘special’ and move users to ‘upgrade’ from 32 to 64 bit. The addressing ‘con trick’ they pulled off was remarkably successful (as this blog demonstrates) – people still believe 32 bit systems can’t address memory over 4GB. This is not true as any hardware engineer will tell you. Ever since the Pentium pro from over 20 years ago, 32 bit PCs have been able to access memory over 4GB (In that particular case its 36 address lines could access up to 64GB – if the memory had been available). Microsoft’s 32 bit operating systems have been able to use memory above 4GB since at least Windows server 2000 (which was separately marketed as a ‘special datacenter’ version).

    It’s worth pointing out that since at least Vista all versions of 32 bit windows ship the same code with parts enabled or not depending on the licensing (same for 64 bit also). It is the width of the entries in the page table which determine whether the PC can access memory above 4GB – this is called Physical Address Extension (PAE). To make it even more absurd if you have Data Execution Prevention (DEP) turned on (and virtually everyone does) that requires that PAE be turned on, because the protection relies on bits only present in the wider page table. So to restrict users from using more than 4GB Microsoft makes use of a licensing key, Kernel-WindowsMacMemAllowedx86 which is set to 4096 (MB). If that is set higher then the 32 bit system will utilize more memory – and people have indeed done that. The decision to limit ordinary users to 4GB while the identical kernel will allow higher paying users to use more looks like a marketing decision – Microsoft needed something to push users into buying a 64 bit OS.

    The two separate program files is yet another push in the same direction.