If you been using Windows OS for some time, I am sure you must have seen this System32 folder. However, If you are on a 64-bit PC, you must have noticed that there are two folders in your C:\Windows directory. The first is System32 and the second is SysWOW64. In this post, we are going to learn about them, and the difference between System32 and SysWOW64 folders in Windows 10.
What is System32 folder
The System32 folder all the system files. These are usually DLL or library files. They are the most common programs used by applications to access Windows features. Apart from this, programs which install on your computer can also store files inside it.
When you install a program, two things happen on a broader level. The main program (EXE) is installed on Programs folder while its DLL (which packs in its functions etc.) are stored in System32 folders. This is the common practice.
What is SysWOW64 folder
Have you noticed a C:\Program Files (x86) folder on your 64-bit PC? Here x86 means 32-bit. So to install 32-bit programs on a 64-bit machine, C:\Program Files (x86) is used. While C:\Program Files folder contains 64-bit programs and their files.
Now you may be drawing an analogy that the SysWOW64 folder must be containing only 64-bit DLLs. That was the actual intention, but it did not work out. If you manually check, there are a lot of 64-bit DLL in System 32 folder and 32-bit DLL in SysWOW64 folder.
So why is a 32-bit marked folder having a 64-bit folder, and why is a 64-bit marked folder housing all the 32-bit DLLs?
Read: What is splwow64.exe process?
Difference between System32 and SysWOW64 folders
Both are system folders, and they contain system-wide DLL or files. However, they just don’t adhere to their name, thanks to hard-coded programming.
On a 64-bit computer, 64-bit programs store-
- Primary files like EXE in C:\Program Files.
- System-wide files like DLL etc. in C:\Windows\System32 folder contains 64-bit libraries.
However, the 32-bit programs store-
- Primary files in C:\Program Files (x86)
- System-wide folder is C:\Windows\SysWOW64.
When a 32-bit program wants to install their 32-bit DLL files into C:\Windows\System32, it will be redirected to C:\Windows\SysWOW64. This essentially makes the System32 hold only 64-bit libraries. Microsoft could not remove it because it would have broken a lot of programs.
What happened is that most of the developers who rolled out their 32-bit applications on a 64-bit system where still using C:\Windows\System32. This was hard-coded into their program. Since Microsoft did not want to break programs, they devised this redirection.
This makes sure that everything is happening in the background without developers needing to do much work. Whenever something is requested by a 32-bit program from System32 folder, it is silently redirected to SysWOW64 folder which holds all the 32-bit DLL. There is no redirection needed for the 64-bit program as they have the default folders in place.
In short: Windows x64 has a System32 folder that contains 64-bit DLLs. A second SysWOW64 folder contains the 32-bit DLLs. Native 64-bit processes find their DLLs where they expect them to viz in the System32 folder. For 32-bit processes, the OS redirects requests and shows them the SysWOW64 folder.
The same was done for Windows Registry as well – 32-bit and 64-bit programs are separated.
The WOW in SysWOW64
Instead of naming it as System64, Microsoft named this folder as SysWOW64. WOW stands for Windows (32-bit) on Windows (64-bit). 32-bit applications were able to run on 64-bit applications, and that’s how it got its name.
Microsoft did not see it coming for sure else System32 folder would not have never got its name. It could have been rather simpler. However, it was an excellent decision not to rename the folder and instead use a redirection. It made sure both consumers and developers did not lose their app when they moved to 64-bit.
While 32-bit systems are slowly phasing out, and replaced with 64-bit computers, it’s going to take some time. Probably in future Microsoft might do something about it. Hopefully, there is no hard coding in 64-bit coding.
Read next: Sysnative folder in Windows 64-bit explained.