With my installation of 4gb of RAM in my new computer it became time to figure out what operating system to use. As I mentioned in my earlier blog about installing the OS on my new computer, Windows XP Professional 32 bit, Windows Vista 32 bit, and Windows Server 2003 would not see more than 3.5gb of RAM, even though I have 4gb installed.
I have been aware of this limitation in 32 bit operating systems for a while, but I had to try it out for myself, just to be sure. There is one thing though that has always had me confused about it. In everything I have read about people finding 32 bit OS’s not seeing their full amount of RAM, it has seen various different amounts. Sometimes it would be 3.3gb, sometimes 3.5, 3.7, 3.8 etc.
I could not figure out why it was always different.
I’ve done some reading up on it though, and the reason for this is not that 32 bit operating systems can only handle 3.something gb of RAM, it is that they can address a total of 4gb of RAM.
This means that any devices that have their own RAM, such as video cards have their RAM saved first so that it can address the entirety of the video card RAM. If there are any other devices, such as some high end RAID controllers and so on, this RAM is added to the list of addressable RAM.
Then the system memory is the last lot of RAM to be added to the total amount of RAM.
So since my video card is a 512mb video card, and I don’t have any other devices with their own RAM, and 4gb is the maximum RAM that can be addressed it is worked out as follows:
4gb – n = addressable system RAM
Where n = the total amount of RAM in other devices.
As I have 4gb of RAM, and 4gb is the total, and I have already lost 512mb of it to the video card, that leaves 3.5gb of addressable system RAM. That is why 32 bit operating systems would only see 3.5gb of RAM in my computer.
It turns out there are hacks available for both XP and 32 bit Vista to have them show the full amount of RAM, however, they will still only address the amount as worked out above.
In some of my reading it has also indicated that the 4gb limit is only a Windows limitation and is not present in other 32 bit operating systems such as Linux and BSD variants.
I am not certain on that last point though so don’t quote me on it.