¿Cuál es la diferencia entre las carpetas «System32» y «SysWOW64» en Windows?

En las versiones de 64 bits de Windows , tiene dos carpetas de Archivos de programa independientes. Pero no termina ahí. También tiene dos directorios del sistema separados donde se almacenan las bibliotecas DLL y los ejecutables: System32 y SysWOW64. A pesar de los nombres, System32 está lleno de archivos de 64 bits y SysWOW64 está lleno de archivos de 32 bits. Entonces, ¿qué da?

¿Qué es System32?

El directorio System32 contiene archivos de sistema de Windows, tanto archivos de biblioteca .DLL utilizados por programas como utilidades de programas .EXE que forman parte de Windows. Si bien la mayoría de los archivos que se encuentran aquí son parte del sistema operativo Windows, los programas de software de terceros a veces también instalan sus propios archivos DLL en esta carpeta.

Las aplicaciones que se ejecutan en su sistema pueden estar instaladas en su carpeta Archivos de programa o en otro lugar, pero a menudo cargan bibliotecas de todo el sistema desde la carpeta System32.

Separación de bibliotecas de 32 y 64 bits

En una versión de Windows de 64 bits, tiene una carpeta C: \ Archivos de programa que contiene programas de 64 bits y sus archivos, y una carpeta C: \ Archivos de programa (x86) que contiene programas de 32 bits y sus archivos. Es útil separar estos archivos porque los programas de 64 bits necesitan archivos DLL de 64 bits y los programas de 32 bits necesitan archivos DLL de 32 bits.

Relacionado:  ¿Necesita “expulsar” los dispositivos MTP conectados a Windows?

Si un programa de 32 bits va a cargar un archivo DLL que necesita, encuentra una versión de 64 bits e intenta cargarlo, se bloqueará. Al separar el software de 64 y 32 bits en dos carpetas de Archivos de programa diferentes, Windows se asegura de que no se mezclen ni causen problemas.

Sin embargo, no todos los archivos DLL se almacenan en Archivos de programa. Muchas bibliotecas de todo el sistema incluidas con Windows se almacenan en C: \ System32, y algunos programas también descargan sus propios archivos de biblioteca aquí. Entonces, así como Windows tiene carpetas de Archivos de programa separadas de 32 bits y 64 bits, también tiene versiones separadas de 32 bits y 64 bits de la carpeta System32.

System32 y SysWOW64

En una computadora de 32 bits, todos los programas de 32 bits almacenan sus archivos en C: \ Archivos de programa y la ubicación de la biblioteca de todo el sistema es C: \ System32.

En una computadora de 64 bits, los programas de 64 bits almacenan sus archivos en C: \ Archivos de programa y la carpeta C: \ Windows \ System32 de todo el sistema contiene bibliotecas de 64 bits. Los programas de 32 bits almacenan sus archivos en C: \ Archivos de programa (x86) y la carpeta de todo el sistema es C: \ Windows \ SysWOW64.

Esto definitivamente es contrario a la intuición. A pesar del «32» en el nombre, la carpeta System32 contiene bibliotecas de 64 bits. Y, a pesar del 64 en el nombre, la carpeta SysWOW64 contiene bibliotecas de 32 bits, al menos en las versiones de Windows de 64 bits.

Relacionado:  ¿Qué es DirectX 12 Ultimate en PC con Windows 10 y Xbox?

En general, no necesitará saber esto. El sistema operativo Windows y los programas que usa colocan automáticamente sus archivos en la ubicación correcta y usan la carpeta correcta. Sin embargo, si alguna vez necesita instalar manualmente un archivo DLL en la ubicación correcta o buscar dónde está instalado, lo cual es muy raro, necesitará saber cuál es cuál.

WOW64, explicado

La parte «WOW64» del nombre aquí se refiere al software «Windows de 32 bits en Windows de 64 bits» de Microsoft, que es parte del sistema operativo. Esto permite que Windows ejecute programas de 32 bits en una versión de Windows de 64 bits. WoW64 redirige el acceso a archivos para garantizar que los programas funcionen correctamente.

Por ejemplo, si instala un programa de 32 bits en una versión de Windows de 64 bits e intenta escribir en la carpeta C: \ Archivos de programa, WoW64 lo apunta a C: \ Archivos de programa (x86). Y, si quiere acceder a la carpeta C: \ Windows \ System32, WoW64 lo apunta a C: \ Windows \ SysWOW64. Windows hace esto usando un redirector del sistema de archivos .

Todo esto sucede de forma automática y transparente en segundo plano. El programa ni siquiera tiene que saber que se está ejecutando en un sistema operativo de 64 bits, lo que permite que los programas antiguos de 32 bits se ejecuten sin modificaciones en las versiones de Windows de 64 bits. WOW64 también redirige el acceso al registro, lo que garantiza que haya áreas separadas del registro para programas de 64 y 32 bits.

Entonces, ¿por qué System32 es de 64 bits y SysWOW64 de 32 bits?

Todo eso nos devuelve a la pregunta del millón de dólares: ¿Por qué la carpeta “System32” es de 64 bits y SysWOW64 de 32 bits?

Relacionado:  La tecla de acceso rápido secreta de Windows reinicia los controladores de la tarjeta gráfica

La respuesta parece ser que muchas aplicaciones de 32 bits estaban codificadas para usar el directorio C: \ Windows \ System32. Cuando los desarrolladores volvieron a compilar estas aplicaciones para las versiones de 64 bits de Windows, continuaron usando el directorio C: \ Windows \ System32.

En lugar de cambiar el nombre del directorio y obligar a los desarrolladores a pasar al nuevo, interrumpiendo muchas aplicaciones en el proceso, Microsoft dejó “System32” como el directorio de la biblioteca del sistema estándar. Crearon un nuevo directorio de biblioteca para aplicaciones que se ejecutan bajo la capa WoW64, al que llamaron “SysWOW64”. Cuando lo piensas de esta manera, el nombre tiene más sentido.

Sí, es un poco tonto que un directorio con «32» en el nombre ahora sea de 64 bits. Quizás Microsoft debería haberlo visto venir cuando lo llamaron C: \ Windows \ System32 en los años 90. Pero, aunque un esquema de nomenclatura más sencillo sería bueno, no vale la pena romper un montón de programas y crear más trabajo para los desarrolladores solo para llegar allí. Eso significa que estamos estancados con System32 y SysWOW64 en el futuro previsible.