System32 y SysWOW64: Diferencias entre ambas carpetas de Windows

Escrito por David Onieva
Herramientas del Sistema

Para empezar diremos que las versiones de 64 bits de Windows cuentan con dos carpetas de archivos de programa independientes, y al mismo tiempo disponen de dos directorios del sistema separados donde se almacenan las librerías DLL y los ejecutables, estos son System32 y SysWOW64.

A pesar de sus nombres, System32 está lleno de archivos de 64 bits, mientras que SysWOW64 está lleno de archivos de 32 bits, veamos en qué se diferencian entonces. La carpeta System32 contiene archivos del sistema de Windows, tanto bibliotecas DLL usadas por programas, como ejecutables que son parte de Windows. Aunque la mayoría de los archivos que se encuentran aquí son parte de Windows, los programas de terceros a veces instalan sus propias DLL en esta carpeta de manera adicional a la habitual “Archivos de programa”.

La versión de 64 bits de Windows tiene la carpeta “C: \Archivos de Programa” que contiene programas de 64 bits y sus archivos, además de la carpeta “C: \Program Files (x86)” que contiene programas de 32 bits y sus archivos. Es muy útil que estos archivos se separen porque los programas de 64 bits necesitan DLLs de 64 bits, y los programas de 32 bits necesitan DLLs de 32 bits. Por tanto si un programa de 32 bits va a cargar una DLL que necesita y encuentra una versión de 64 bits e intenta cargarla, se bloqueará, de ahí la separación.

Sin embargo no todas las librerías se almacenan en “Archivos de programa”, ya que muchas propias de Windows se almacenan en “C: \System32”, mientras que algunos programas también descargan sus DLLs aquí. Por tanto, al igual que Windows tiene las carpetas de archivos de programa de 32 y 64 bits separadas, también tiene versiones separadas de 32 y 64 bits de la propia carpeta System32.

Así, en un equipo de 32 bits todos los programas de 32 bits almacenan sus archivos en “Program Files” y las DLLS en “System32”. Por el contrario, en un equipo de 64 bits, los programas de 64 bits almacenan sus archivos en ”Program Files” y la carpeta “C: \Windows\System32” contiene las DLLs de 64 bits.

Carpetas Windows

De la misma manera los programas de 32 bits almacenan sus archivos en “C: \Archivos de programa (x86)”, y la carpeta para todo el sistema es “C: \Windows\SysWOW64”.

Windows emplea un sistema un tanto confuso en el uso de sus directorios

Cierto es que no tiene demasiado sentido y es un tanto lioso, ya que a pesar del “32” en el nombre, la carpeta “System32” contiene bibliotecas de 64 bits, mientras que a pesar del “64” del nombre, la carpeta SysWOW64 contiene librerías de 32 bits, al menos en las versiones de 64 bits de Windows.

Por tanto y para entender parte de todo esto, apuntar que la parte “WOW64” del nombre, se refiere al software “Windows 32-bit on Windows 64-bit” de Microsoft. Esto permite a Windows ejecutar programas de 32 bits en una versión de 64 bits, por lo que “WoW64” redirige el acceso a los archivos para asegurar que los programas funcionarán correctamente.

Entonces llegados a este punto nos podríamos preguntar la razón por la que “System32” es de 64 bits y “SysWOW64” de 32, y en resumidas cuentas, al parecer muchas aplicaciones de 32 bits fueron codificadas para usar el directorio “C: \Windows\ System32”, pero cuando los desarrolladores las volvieron a compilar para los 64 bits de Windows, continuaron usando la misma carpeta “C: \Windows\System32”.

Por lo tanto en lugar de cambiar el nombre del directorio y obligar a los desarrolladores a migrar al nuevo, Microsoft permitió seguir usando “System32” como directorio estándar de las bibliotecas del sistema. Eso sí, crearon otro nuevo de librerías para las aplicaciones que se ejecutan bajo la capa WoW64, que denominaron “SysWOW64”, lo que ya le da un poco más de sentido a todo este embrollo.

Fuente > HowToGeek

Compártelo. ¡Gracias!
Continúa leyendo