Ubuntu只在Ubuntu 64位上检测到3.1 GB的ram

我使用的是Ubuntu Linux 64位。 最近,我使用Ubuntu 32位,并通过命令grep --color=always -iw lm /proc/cpuinfo发现我的处理器能够支持64位。 该命令的输出是:

 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr 

但是,擦除磁盘并安装Ubuntu 11.10 64位后,系统仍然只能检测到3.1 GB的RAM。 我已在BIOS中validation我安装了4 GB的RAM,而不是3.1。 为什么Ubuntu 64位仅检测3.1 GB的RAM?

输出uname -a

 aaron@Aarons-Ubuntu-Computer:~$ uname -a Linux Aarons-Ubuntu-Computer 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

输出free -m

 aaron@Aarons-Ubuntu-Computer:~$ free -m total used free shared buffers cached Mem: 3136 2960 175 0 233 1996 -/+ buffers/cache: 730 2405 Swap: 3189 0 3189 

目前使用的大约80%的CPU(以及几乎所有新出售的CPU)都支持64位Ubuntu,因此这并不令人意外。 有计划建议将64位Ubuntu作为默认设置(现在建议采用32位方式),因为大多数人的硬件能够运行它。

仍然,要查看内核看到的总内存,以及最初如何分配它的报告,您可以这样做:

 dmesg |grep "Memory: " 

这将显示如下一行:

 [ 0.000000] Memory: 3823988k/4849664k available (6109k kernel code, 874468k absent, 151208k reserved, 4876k data, 984k init) 

我的系统安装了4GB的RAM,但报告的总量大约为4.7 GB(我猜测BIOS报告的内存空间更多,因为video卡,PCI和IO设备等的地址空间不足)。 由于这些问题,最终只有3.6 GB可用于应用程序。

注意“缺席”内存量,这“反映了由于内存映射中的内存空洞而丢失的内存寻址空间。通常会留下用于PCI空间,IO等的漏洞。每个供应商模型系统都不同,每个系统都会有为缺席的记忆报告了不同的值。“

还要看看fossfreedom指出的问题,它给你一些关于可能在何处使用寻址空间的解释。