Después de tantas iteraciones de Windows, ¿por qué algunas aplicaciones todavía se instalan en ProgramFiles y otras en la carpeta ProgramFiles (x86)?

La carpeta Archivos de programa (x86) solo existe en las ediciones de 64 bits de Windows. En Windows de 32 bits, todas las aplicaciones almacenan sus archivos de programa en la carpeta Archivos de programas , pero debido a que las ediciones de Windows de 64 bits pueden tener instaladas aplicaciones de 64 y 32 bits, Microsoft creó una nueva carpeta para mantener los dos tipos de Aplicaciones separadas. En Windows de 64 bits, los programas de 64 bits mantienen sus archivos en la carpeta Archivos de programa y los programas de 32 bits mantienen los suyos en Archivos de programa (x86) .

El truco es que los programas de 32 bits no tienen idea de que su ruta de carpeta ha cambiado. El instalador y la aplicación en ejecución piensan que sus archivos están en Archivos de programa , gracias a algo llamado WoW64.

Cuando un programa de 32 bits se ejecuta en una edición de Windows de 64 bits, se ejecuta en un subsistema especial llamado WoW64 [1] (que significa W indows de 32 bits en W indows de 64 bits, o solo Windows en Windows 64) WoW64 permite que un programa de 32 bits se ejecute en un sistema de 64 bits y parte de lo que hace es crear asignaciones o accesos directos a áreas del registro y sistema de archivos que permiten que los programas de 32 bits se comporten de la misma manera que lo harían en un sistema de 32 bits, y sin entrar en conflicto con las aplicaciones de 64 bits que podrían estar ejecutándose al mismo tiempo.

Entonces, en una edición de 64 bits de Windows, las aplicaciones de 64 bits guardan sus archivos de programa en C: \ Archivos de programa, pero cuando se ejecuta una aplicación de 32 bits, WoW64 crea una asignación que se parece a la carpeta C: \ Archivos de programa programa, pero es realmente C: \ Archivos de programa (x86) en el sistema real. De esta manera, el programa de 32 bits no sabe ni le importa si está en un sistema de 64 bits y no se comporta de manera diferente: solo lee y escribe sus archivos en C: \ Archivos de programa de manera normal y Windows se encarga de redirigir Los archivos.

Notas al pie

[1] WoW64 – Wikipedia

Algunas de las peculiaridades de Windows provienen de la estructura / cultura corporativa de Microsoft. Probablemente la representación gráfica más divertida pero verdadera de esto es:

Básicamente, Microsoft ni siquiera ha sido una organización unificada en términos de desarrollo de productos o cooperación entre grupos. Algo similar es lo que ves cuando miras la estructura de directorios y la interfaz de usuario de Windows.

Parte de la estructura y la interfaz de usuario de Apple se debe al “nodo Steve”. 🙂

Bueno, gracias por el A2A. Para ser sincero, puede determinar la ubicación detallada de la instalación, aunque las aplicaciones se instalan en ProgramFiles cuando su PC ejecuta la edición de 32 bits de Windows o en ProgramFiles (X86) cuando su PC ejecuta la edición de 64 bits de Windows de forma predeterminada.

Las versiones modernas de los instaladores de Windows suelen colocar aplicaciones de 64 bits en C: \ Archivos de programa, y ​​las de 32 bits en C: \ Archivos de programa (x86). Este último se mantiene por compatibilidad con versiones anteriores; La proporción de (nuevas) aplicaciones de 32 bits ha disminuido en la última década más o menos.

Windows mismo ha evolucionado bastante, pero nunca se ha reescrito por completo y nunca se ha hecho exclusivamente de 64 bits. Windows 10 de 64 bits todavía tiene todo lo necesario para ejecutar programas de 32 bits, y esos se instalan en la carpeta (x86) por ese motivo. La carpeta “Archivos de programa” sin el bit x86 es solo para software de 64 bits.

Al menos, esa es la convención. En última instancia, es solo una convención de nombres: no es como si Windows se negara a ejecutar un ejecutable de 32 bits en la carpeta de 64 bits y viceversa. Está principalmente allí para reducir la confusión para los usuarios humanos.

Estas carpetas solo existen si tiene una versión de Windows de 64 bits.

Los viejos programas de 32 bits se instalan en la carpeta (x86) con la versión de 64 bits que va a la carpeta normal. Si tiene Windows 7 de 32 bits, solo hay una carpeta.

Los programas antiguos no pueden o no se actualizarán a 64 bits.

los instalados en la carpeta Archivos de programa (x86) son binarios de 32 bits. Un sistema operativo de 64 bits puede ejecutar código de 32 bits sin demasiados problemas y mientras que en otros sistemas operativos (como Linux y Mac) todo menos algunas aplicaciones heredadas ya se han portado a 64 bits, en el mundo de Windows algunos desarrolladores aún permanecen en el 32 poco mundo

Tenga en cuenta que esto no es algo malo per se: si su código funciona, ¿por qué cambiarlo? Es solo un hecho interesante.