Interesting post by Hilton Locke about why installing 4 GB of RAM on a 32-bit box doesn't actually give you 4 GB of RAM.  Instead it gives you something like 3 GB of RAM.  A 32-bit operating system should be able to access 4GB.  Worse, a 64-bit operating system might not be any better.  What's happening?  The short answer is that a lot of space it taken up by memory-mapped IO.  The RAM can't be seen because that space is used for IO devices.  I hadn't considered that.  For the long answer, read the whole post.  There's a lot of interesting info in there.