I was wondering... 64bits OSs can run 32bits applications right? Windows use WoW64 to achieve this right?
My question is, when these applications are run, does they use 64bits or 32bits addresses? I was wondering this because of the memory usage...
|
I was wondering... 64bits OSs can run 32bits applications right? Windows use WoW64 to achieve this right? My question is, when these applications are run, does they use 64bits or 32bits addresses? I was wondering this because of the memory usage...
| |||
|
feedback
|
|
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. Not quite sure what this has to do with memory usage. | |||||||||||
feedback
|
|
32 bit applications can only see 32 bit addresses. WoW64 simulates the 32 bit environment inside the 64 bit memory space for 32 bit applications. | |||||||
feedback
|
|
Your question isn't very specific since you don't distinguish between virtual memory address and physical memory addresses. Yes, x86 programs are going to use more memory and resources. They will have a 32 bit virtual address space, but underneath, the Memory Manager (MM or MMM) will use x64 pointers. Not like that takes a whole lot of effort though. By far the biggest resource cost is drivers. There were some substantial kernel changes, many due to security, that required large parts of drivers to be rewritten.
I believe this is untrue. Every program sees 4GB (32 bit virtual address space) but the kernel splits the physical address space in half. The two 2GB you are familiar with refers to the physical memory address. | |||
feedback
|