El salto de arquitectura que vimos hace unos años trajo consigo muchas mejoras. Además de ellas también llegaron algunos cambios como por ejemplo la diferencia entre la carpeta SysWOW64 y System32 en Windows.
Estas dos carpetas las vamos a encontrar solo en sistemas de 64 bits, lo que significa que si en tu carpeta de Windows está SysWOW64 es un indicador de que tanto tu sistema operativo como el procesador son de 64 bits.
Qué es la carpeta System32
Vamos a por la vieja primero. La carpeta system32 es donde Windows almacena las librerías .DLL utilizadas y los archivos .EXE de los programas internos del sistema.
Prácticamente todos los archivos que se encuentran en esta carpeta suelen pertenecer al sistema operativo en sí, pero hay ciertos programas de terceros que instalan sus librerías y en raras ocasiones algunos ejecutables también aquí.
En general, los programas que instales pueden estar en cualquier carpeta, pero de forma interna vas a buscar las librerías y demás funcionalidad que necesitan dentro de la carpeta System32.
Y entonces la carpeta SysWOW64 es…
Por otro lado, la encargada de almacenar también librerías y ejecutables, solo que la diferencia radica en teoría en la arquitectura para la que se supone son estas.
En la carpeta syswow64 el contenido que encuentras es para la otra arquitectura. De esta forma, el propio windows puede mantenerlas separadas, ya que si un programa de 32 bits intenta cargar una librería de 64 dará un error.
Esto es exactamente lo mismo que pasa con Archivos de programa y Archivos de programa (x86). La segunda carpeta tiene los de 32 bits mientras que la primera sin paréntesis tiene los programas de 64 bits, eso sí, solo encuentras las dos en Windows de 64 bits.
System32 y SysWOW64
Esto significa que en un equipo con windows de 32 bits vas a encontrar únicamente estas carpetas:
- Windows\System32
- Archivos de programa
Mientras que en cualquier instalación de 64 bits encontrarás las que he mencionado ya:
- Windows\System32
- Windows\SysWOW64
- Archivos de programa
- Archivos de programa (x86)
Ahora viene la parte confusa, cuando tu sistema operativo es de 64 bits, las carpetas que mantienen archivos para arquitectura de 32 bits son:
- Windows\SysWOW64
- Archivos de programa (x86)
Mientras que las carpetas que tienen archivos para 64 bits son:
- Windows\System32
- Archivos de programa
Ha quedado claro eh? Justo queda como si fuese al revés. Por lo general no necesitas tener cuidado con ello mientras no seas desarrollador y tengas que tocar este tipo de ficheros, simplemente tener en cuenta las de archivos de programa a la hora de instalar aplicaciones.
La parte buena es que los mismos instaladores suelen saber qué carpeta usar, aunque es indiferente ya que cargarán las librerías de la que toca. Si quieres puedes instalarlo todo en la misma.
Pero entonces… ¿por qué WOW64?
La respuesta del lío es bastante sencilla, simplemente el nombre hace referencia a las siglas de lo que significa Windows On 64 bits, es decir WOW64.
Pero claro, esto sería una respuesta muy simple… solo por el nombre no sería motivo suficiente me vas a decir. Y tienes razón, hasta en eso han pensado (o se han dado cuenta a la fuerza).
Cuando se desarrollan aplicaciones, hoy en día el sistema operativo pone a disposición de los programadores una serie de variables de entorno, que devuelven rutas, valores, etc. Todo integradito en el sistema. El problema es que muchos desarrolladores de aplicaciones de 32 bits, utilizaban el método de “harcoding”, o escribir directamente las rutas en lugar de usar variables.
Esto no debería suponer ningún problema, de no ser porque en muchas ocasiones, el pasar las aplicaciones de 32 bits a 64 bits no se hacían por los mismos usuarios, o simplemente no había que tocar mucho… bueno, diversas y variopintas razones.
Esto ha hecho que en aplicaciones de 64 bits (te sorprendería saber cuantas), han dejado la misma ruta a las librerías que tenía la aplicación de 32 bits. Y Microsoft, en lugar de redireccionar estas llamadas de aplicaciones de 64 bits a una carpeta System64, pues optó por dejar las librerías de 64 bits en el mismo sitio.
Desde el punto de vista de un programador, tanto dá mientras utilices variables, porque para tí será %ALGO%. Pero muchas aplicaciones famosas daban problemas y no había quien se hiciera cargo de ellas.
¿Qué crees que deberían haber hecho en vez de eso? ¿Tienes 64 bits? Comenta y comparte