Why doesn't the value in /proc/meminfo seem to map exactly to the system RAM?

Solution 1:

From Documentation/filesystems/proc.txt:

MemTotal: Total usable ram (i.e. physical ram minus a few reserved
          bits and the kernel binary code)

So there you go.

Addendum:

dmesg|grep Memory: will give you a bit more:

$ dmesg|grep Memory:
Memory: 3934184k/5177344k available (4434k kernel code, 1091560k absent, 151600k reserved, 7433k data, 920k init)

Addendum II:

It's also worth adding that pretty much everything in /proc has at least cursory documentation in that file, so it's a good first stop any time you have a similar question.