Cytherian
Vista Guru
Back in the early days of Windows 3.11, it was a 16 bit operating system. As part of it's structure, system files were located in an aptly named "System" folder off the "Windows" root. Later on as processors became more advanced and capable of addressing 32 bits, Windows NT was developed. Implicitly, its system folder was named "System32". In order to extend compatibility with Windows 3.11, a System32 folder was added so that "System" and "System32" co-existed together.
When 64-bit processing became possible, Microsoft was faced with a dilemma. Should they now start naming the new system folder "System64" and leave "System32" around for backward compatibility? The trouble was legacy. By this time, Windows development policies and guidelines did not prohibit programs from directly referencing System32. Also, if a software engineer developed a program for 32-bit and then provided a 64-bit version, they'd have to be careful about changing the System32 reference. In the end, Microsoft just didn't want to take chances.
To make matters more complicated, Microsoft also introduced another folder called "Winsxs" (Windows Side-by(x)-Side assemblies) which allows multiple versions of a system file to co-exist, under 32 bit and 64 bit. That's because some programs may be written to work with an older version of a system file and be incompatible with a later one. In the past, installing the program would replace the system file. Now Windows makes sure that multiple versions can co-exist, depending upon what program needs them. How does Windows know which version is needed for a given program? There is a manifest file that provides a guide to the library of files available for the redirector.
Two different naming conventions are used under Winsxs: "amd64_microsoft-windows" and "x86_microsoft-windows". "amd64" was chosen because AMD was the first CPU company to create a 64 bit processor. And because 32 bit was started on the old Intel 8086 architecture, x86 was chosen. Thus, dynamic file redirection is used to access one system file or the other, depending upon which type of program is running (32 bit or 64 bit).
I'm not totally sure how System32 and Winsxs work together. I believe System32 is the "default" system files, with Winsxs as the alternate when required. If I'm wrong, someone please correct me.
Next, there's also the folder SysWow64. This is essential the System for Windows on Windows, providing the ability for 32 bit programs to make function calls to the native 64 bit system. This is the 2nd time Microsoft has done this. In Windows 95/98, there was a SysWow32, so that 16 bit programs could make function calls to the native 32 bit system.
Ultimately, it would have probably been better for Microsoft to never change the name of "System", leaving it as the default for whatever version of the operating system is installed. Then, for legacy system versions there would be a number system (e.g. Sys16 for 16 bit, Sys32 for 32 bit). Thus, the developer would never have to worry about hard coded references to System, and then Windows would handle redirection accordingly. But, we aren't privy to Microsoft's internal decisions. There was probably a good reason why the naming convention was chosen as-is, which is just unfortunately a bit mystifying to the uninitiated.
For more information about the Windows x64 system, I suggest reading the Sepago blog on Windows x64.
When 64-bit processing became possible, Microsoft was faced with a dilemma. Should they now start naming the new system folder "System64" and leave "System32" around for backward compatibility? The trouble was legacy. By this time, Windows development policies and guidelines did not prohibit programs from directly referencing System32. Also, if a software engineer developed a program for 32-bit and then provided a 64-bit version, they'd have to be careful about changing the System32 reference. In the end, Microsoft just didn't want to take chances.
To make matters more complicated, Microsoft also introduced another folder called "Winsxs" (Windows Side-by(x)-Side assemblies) which allows multiple versions of a system file to co-exist, under 32 bit and 64 bit. That's because some programs may be written to work with an older version of a system file and be incompatible with a later one. In the past, installing the program would replace the system file. Now Windows makes sure that multiple versions can co-exist, depending upon what program needs them. How does Windows know which version is needed for a given program? There is a manifest file that provides a guide to the library of files available for the redirector.
Two different naming conventions are used under Winsxs: "amd64_microsoft-windows" and "x86_microsoft-windows". "amd64" was chosen because AMD was the first CPU company to create a 64 bit processor. And because 32 bit was started on the old Intel 8086 architecture, x86 was chosen. Thus, dynamic file redirection is used to access one system file or the other, depending upon which type of program is running (32 bit or 64 bit).
I'm not totally sure how System32 and Winsxs work together. I believe System32 is the "default" system files, with Winsxs as the alternate when required. If I'm wrong, someone please correct me.
Next, there's also the folder SysWow64. This is essential the System for Windows on Windows, providing the ability for 32 bit programs to make function calls to the native 64 bit system. This is the 2nd time Microsoft has done this. In Windows 95/98, there was a SysWow32, so that 16 bit programs could make function calls to the native 32 bit system.
Ultimately, it would have probably been better for Microsoft to never change the name of "System", leaving it as the default for whatever version of the operating system is installed. Then, for legacy system versions there would be a number system (e.g. Sys16 for 16 bit, Sys32 for 32 bit). Thus, the developer would never have to worry about hard coded references to System, and then Windows would handle redirection accordingly. But, we aren't privy to Microsoft's internal decisions. There was probably a good reason why the naming convention was chosen as-is, which is just unfortunately a bit mystifying to the uninitiated.
For more information about the Windows x64 system, I suggest reading the Sepago blog on Windows x64.
My Computer
System One
-
- Manufacturer/Model
- HP Pavillion dv5t
- CPU
- Intel Core Duo 2.53GHz
- Memory
- 4Gb
- Graphics card(s)
- NVidia GeForce 9600M GT 512Mb
- Screen Resolution
- 1280x800 32bit
- Hard Drives
- Seagate Momentus XT 500Gb Hitachi Travelstar HTS543225L9A300 250Gb
- Mouse
- Microsoft 4000