The limitation is determined by the software but not entirely. It is also dependent on the CPU capabilities. If I remember correctly, that limitation was originally applied because of hardware limitations.
Edit: I did some searching of my feeble mind and this is the best I can recall.
The reason that the OS cannot support more than 4GB is because of "memory mapping". Once it gets to the limit of 4GB it starts to allocate ram to the video cards and other devices. If you had a 512MB video card, you would see a minimum of 512MB reduction from available ram, if you had a 1GB video card, you would see a minimum of 1GB reduction from available ram and so on.
I read this on another forum:
|
Quote: |
|
|
|
|
|
|
|
There is actually a way to get more than 4GB on a 32 bit operating system (and make it see all the ram); it is done through hardware memory mapping (instead of software) and is found mostly on servers for now. The 800 series of AMD chipsets are supposed to have hardware memory mapping on it making it so you can use 32-bit OS for any amount of ram as long as it is within the limits of the memory mapper and memory controller. |
|
|
|
|
I also found this link that explains it technically:
Ask Dan: What's with the 3Gb memory barrier?