Warum zeigen der Befehl "free" und "dmidecode" unterschiedliche Werte für RAM an?

Ich habe einen CentOS 5.10 ( 32-Bit ) Server auf VMWare. Es sind 4 GB RAM zugewiesen. Wenn ich renne, dmidecode -t 17 | grep Size | grep MBsehe ich: Size: 4096 MB Doch wenn ich renne free, sehe ich: total used free shared buffers cached Mem: 3107140 1239244 1867896 0 332 400464 -/+...