Página principal » cómo » ¿Cuál es la diferencia entre las carpetas “System32” y “SysWOW64” en Windows?

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

    En las versiones de Windows de 64 bits, tiene dos carpetas de Archivos de programa separadas. 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 los archivos de biblioteca .DLL utilizados por los programas como las utilidades de programa .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 instalarse en la carpeta Archivos de programa o en cualquier otro lugar, pero a menudo cargan bibliotecas de todo el sistema desde la carpeta System32.

    Separando bibliotecas de 32 bits y de 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.

    Si un programa de 32 bits carga 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 diferentes de Archivos de programa, Windows garantiza que no se confundirán y causarán 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 vuelcan sus propios archivos de biblioteca aquí. Entonces, al igual que Windows tiene carpetas separadas de Archivos de programa 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 es definitivamente contrario a la intuición. A pesar de los “32” en el nombre, la carpeta System32 contiene bibliotecas de 64 bits. Y, a pesar de los 64 en el nombre, la carpeta SysWOW64 contiene bibliotecas de 32 bits, al menos en versiones de Windows de 64 bits..

    En general, no necesitarás saber esto. El sistema operativo Windows y los programas que utiliza colocan automáticamente sus archivos en la ubicación correcta y utilizan la carpeta correcta. Sin embargo, si alguna vez necesita instalar manualmente un archivo DLL en la ubicación correcta o encontrar dónde está instalado uno, lo cual es muy raro, deberá 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 forma parte del sistema operativo. Esto permite que Windows ejecute programas de 32 bits en una versión de 64 bits de Windows. WoW64 redirige el acceso a los 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 y trata de 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 apunta a C: \ Windows \ SysWOW64. Windows hace esto usando un redirector de sistema de archivos.

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

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

    Todo lo que nos hace volver a la pregunta del millón: ¿Por qué la carpeta “System32” es de 64 bits y SysWOW64 de 32 bits??

    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 Windows de 64 bits, continuaron usando el directorio C: \ Windows \ System32.

    En lugar de cambiar el nombre del directorio y forzar a los desarrolladores a pasar al nuevo, rompiendo muchas aplicaciones en el proceso, Microsoft dejó "System32" como el directorio estándar de la biblioteca del sistema. Crearon un nuevo directorio de biblioteca para las aplicaciones que se ejecutan bajo la capa WoW64, que denominaron "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 haber visto eso cuando lo llamaron C: \ Windows \ System32 en los 90's. 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 atascados con System32 y SysWOW64 para el futuro previsible.