A 32-bit OS can address a maximum of 4GB of memory, not 3GB.
This is not true. An OS that supports Physical Address Extension (PAE) can address more memory.
Leopard, a 32-bit OS, supports PAE and has a 36-bit address space which is 64GB. No 32-bit process, application, driver, etc. can access more than 4GB of memory. 64-bit applications running under Leopard have no such limitation.
Only some 32-bit server versions of Windows support PAE in regards to expanded memory address space. No desktop 32-bit Windows versions support more than 4GB of RAM, PAE enabled or not. Another oddity of 32-bit Windows OS releases is that each process is given a 4GB virtual address space. By default, 2GB is for the User process to use and 2GB is for the OS to use. This means that regardless of how much memory is in the a process can use no more than 2GB of it. Enabling PAE makes no difference. Both XP and Vista have an OS option that allows one to increase the User part of the virtual address space to 3GB. This option is generally not used because only applications specifically compiled to support are able to use the 3GB and it take 1GB away from the OS. Not a good thing generally.
Processes on Leopard don't have this limit.
Of course this [4GB] account for all memory in the system, not just system RAM. Every last bit of memory scattered about in your system also must be addressed, and eats up additional addresses that would otherwise be applied to system RAM.
Graphics cards have the biggest impact these days, which can have large banks of dedicated on-card memory. These days it's not uncommon to have card in the 512MB range even on low end cards. All of this eats up available addresses that could otherwise be used for system RAM.
In most systems today there are between 100-256MB of memory scattered about in the system in various other places as well, in very odd places like your wifi card for example.
So the solution is to get more addresses! 2^64 addresses to be exact.
Install Vista x64 and enjoy using all of your available memory.
Part of that 4GB physical address space is set aside to address BIOS, I/O cards, NICs, video/graphics cards, etc. For example, on my PC system running Vista, I have 2.8GB of addressable RAM even though I have 4GB installed. Why? 1.2GB of the address space is used to address BIOS, I/O cards, NICs, video/graphics cards, etc.
In most systems, the address space used by BIOS, I/O cards, NICs, video/graphics cards, etc. is between .8 and 1 GB. Those with powerful graphics card would see numbers in the 1.2GB range.
If I were running a 64-bit Vista on my PC, the address space for the BIOS, I/O cards, NICs, video/graphics cards, etc. would be outside of the address space the RAM in the system were mapped to. That would allow me to use all 4GB of RAM.
S-