The Old New Thing

Why is the virtual address space 4GB anyway?

The size of the address space is capped by the number of unique pointer values. For a 32-bit processor, a 32-bit value can represent 232 distinct values. If you allow each such value to address a different byte of memory, you get 232 bytes, which equals four gigabytes. If you were willing to forego the flat memory model and deal with ...