Não tenho certeza do que isso tem a ver com o uso da memória.
Eu queria saber ... 64bits OSs podem rodar aplicativos de 32bits, certo? O Windows usa o WoW64 para conseguir isso?
Minha pergunta é, quando esses aplicativos são executados, eles usam endereços de 64bits ou 32bits? Eu queria saber isso por causa do uso de memória ...
Não tenho certeza do que isso tem a ver com o uso da memória.
Aplicativos de 32 bits só podem ver endereços de 32 bits. O WoW64 simula o ambiente de 32 bits dentro do espaço de memória de 64 bits para aplicativos de 32 bits.
Sua pergunta não é muito específica, já que você não faz distinção entre endereços de memória virtual e endereços de memória física.
Sim, os programas x86 usarão mais memória e recursos. Eles terão um espaço de endereço virtual de 32 bits, mas abaixo dele, o Gerenciador de Memória (MM ou MMM) usará ponteiros x64. Não é assim que isso exige muito esforço.
De longe, o maior custo de recursos são os drivers. Houve algumas mudanças substanciais no kernel, muitas devido à segurança, que exigiram que grandes partes dos drivers fossem reescritas.
Internally, every program sees about 2GB of memory space (there is flag one can set to get 3GB) and therefore never has to need 64-bit pointers (32-bit pointers will work fine). The OS can handle all the 64-bit real memory management under the hood.
Eu acredito que isso seja falso. Todo programa vê 4 GB (espaço de endereço virtual de 32 bits), mas o kernel divide o espaço de endereço físico pela metade. Os dois 2 GB com os quais você está familiarizado referem-se ao endereço da memória física.