Ubuntu обнаруживает только 3,1 ГБ оперативной памяти в Ubuntu 64 бит
Я использую Ubuntu Linux 64 bit. Недавно я использовал 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
Однако после очистки диска и установки 64-битной Ubuntu 11.10 система все равно обнаруживает только 3,1 ГБ ОЗУ. В BIOS я проверил, что у меня установлено 4 гигабайта оперативной памяти, а не 3.1. Почему 64-битная версия Ubuntu обнаруживает только 3,1 ГБ ОЗУ?
Выход из 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
1 ответ
В настоящее время около 80% используемых процессоров (и почти каждый проданный новый процессор) поддерживают 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)
В моей системе установлено 4 ГБ ОЗУ, однако общее количество составляет около 4,7 ГБ (я предполагаю, что BIOS сообщает о большем объеме памяти из-за адресного пространства для видеокарт, устройств PCI и IO и других). В итоге только 3,6 ГБ доступны приложениям из-за этих проблем.
Обратите внимание, что "отсутствует" объем памяти, это "отражает адресное пространство памяти, потерянное из-за дыр в памяти на карте памяти. Обычно дыры оставлены для PCI-пространства, ввода-вывода и т. Д. Каждая модель модели поставщика отличается, и каждая система будет иметь другое значение, сообщаемое для отсутствующей памяти."
Также посмотрите на вопрос, на который указывает fossfreedom, он дает вам еще несколько объяснений того, где может использоваться адресное пространство.