¿Las aplicaciones x86 utilizan direcciones de 64 bits en sistemas operativos x64?

¿Las aplicaciones x86 utilizan direcciones de 64 bits en sistemas operativos x64?

Me preguntaba... Los sistemas operativos de 64 bits pueden ejecutar aplicaciones de 32 bits, ¿verdad? Windows usa WoW64 para lograr esto, ¿verdad?

Mi pregunta es, cuando se ejecutan estas aplicaciones, ¿utilizan direcciones de 64 bits o de 32 bits? Me preguntaba esto por el uso de memoria...

Respuesta1

Internamente, cada programa ve alrededor de 2 GB de espacio de memoria (hay un indicador que se puede configurar para obtener 3 GB) y, por lo tanto, nunca necesita punteros de 64 bits (los punteros de 32 bits funcionarán bien). El sistema operativo puede manejar toda la administración de memoria real de 64 bits bajo el capó.

No estoy muy seguro de qué tiene esto que ver con el uso de la memoria.

Respuesta2

Las aplicaciones de 32 bits sólo pueden ver direcciones de 32 bits. WoW64 simula el entorno de 32 bits dentro del espacio de memoria de 64 bits para aplicaciones de 32 bits.

Respuesta3

Su pregunta no es muy específica ya que no distingue entre direcciones de memoria virtual y direcciones de memoria física.

Sí, los programas x86 utilizarán más memoria y recursos. Tendrán un espacio de direcciones virtuales de 32 bits, pero debajo, el Administrador de memoria (MM o MMM) utilizará punteros x64. Aunque no es que eso requiera mucho esfuerzo.

Con diferencia, el mayor costo de recursos son los conductores. Hubo algunos cambios sustanciales en el kernel, muchos de ellos debidos a la seguridad, que requirieron que se reescribieran grandes partes de los controladores.

Internamente, cada programa ve alrededor de 2 GB de espacio de memoria (hay un indicador que se puede configurar para obtener 3 GB) y, por lo tanto, nunca necesita punteros de 64 bits (los punteros de 32 bits funcionarán bien). El sistema operativo puede manejar toda la administración de memoria real de 64 bits bajo el capó.

Creo que esto no es cierto. Cada programa ve 4 GB (espacio de direcciones virtuales de 32 bits), pero el núcleo divide el espacio de direcciones físicas a la mitad. Los dos 2 GB con los que está familiarizado se refieren a la dirección de memoria física.

información relacionada