Hey, I can’t believe we are out of address space again. I lived that way too long ago going from 8 bit (remember when 128KB was an unbelievable amount of money) to 16 bit (remember when 8MB was just ridiculous) to 32 bit (remember when 1GB was a huge amount).
So now those simple decisions. In each case the same trick is done every time which has been called segmented memory or now PAE (physical address extension). Where the operating system knows about lots more memory, the application sets bits that say, I want to look at this segment, this and so forth, so there are segment registers running around that you have to set. Old 80286 programmers spent their lives doing this. For 10 years, this was not an issue, but time marches on.
As he points out, “MSDN”:http://msdn.microsoft.com/en-us/library/aa366778.aspx has the exact limitations which are intensely complicated. There is some structure called IMAGE_FILE_LARGE_ADDRESS_AWARE and also “4-gigabyte tuning (4GT). My head hurts already!
The default is that applications see 4GB total and 2GB are for applications and 2GB are for the system. What “4GT”:http://msdn.microsoft.com/en-us/library/bb613473(VS.85).aspx changes this so application can see 3GB. Of course, you need some custom tool and hack away boot.ini via some utiilty like bcdedit (Boot Configuration Data Editor)
I read the whole thing and I’ve been so far outside of Windows, my head literally hurt between all the versions of Windows and the many parameters you can set.
| Type | 32-bit Windows | 64-bit |
| 32-bit apps | 2GB | 2GB |
| 32-bit apps | 3GB