¿Por qué el comando "libre" y "dmidecode" muestran diferentes valores para RAM?

Tengo un servidor CentOS 5.10 ( 32 bits ) ejecutándose en VMWare. Se le asignan 4 GB de RAM. Si corro dmidecode -t 17 | grep Size | grep MBveo: Size: 4096 MB Sin embargo, cuando corro free, veo: total used free shared buffers cached Mem: 3107140 1239244 1867896 0 332 400464 -/+ buffers/cache:...