Recently my job required that I fix a compatibility issue with an application we needed to work on 64-bit versions of Windows. The app runs a connection with a SQL database and requires that the ODBC settings be correctly configured.
Unfortunately a 32-bit application that uses SQL via ODBC connections must be configured using the 32-bit version of the ODBC utility. Should a person make the mistake of using the defaulted 64-bit version, it would look correct, but never work.
What amazes me the most is that the locations of the 32 and 64-bit files are in very oddly named folders.
64-bit versions of Microsoft Windows house 32-bit system applications in the %windir%\syswow64 directory while the 64-bit system programs are located in the %windir%\system32 folder.
Why? Why! WHY!?!?!?
I think this is a case of legacy catching up to reality and then a case of backwards compatibility moving forwards.
When Windows transitions to the 32-bit platform the system files went from System to System32. When that change happened, there was no backwards compatibility offered to 16-bit. Now however, as we go from 32-bit to 64-bit the versions of Windows are virtually identical other than the applications being compiled differently. To release both a 32 and 64 bit version of Windows easily, they needed to use the same locations for the files so that the registry, ini files, and other settings wouldn't get too fucked up. If they had done a clean break to 64 bit then they probably would have gotten rid of System32 and called it System64. This explains at least why they would put 64 bit files into the System32 directory.
What I don't understand is why they put 32 bit files into a folder called syswow64. I don't even have a clue on that one.
|