A: It isn't actually less memory: The Linux kernel takes some of the memory, so it doesn't show that. If you run the command
the memory total is displayed, but with some of the memory missing. For example, on a VM with 2048MB configured, I see the following:
MemTotal: 2069808 kB
This is less than the expected amount of kilobytes (2048 * 1024 is 2097152 kB). If, however, I use this command:
sudo dmidecode --type 17 | more
I see the full memory assigned to the VM, which the screen shot shows.
Get more help at John Savill's FAQs page.