Estoy usando Ubuntu Linux de 64 bits. Recientemente, estaba usando Ubuntu de 32 bits y descubrí mediante el comando grep --color=always -iw lm /proc/cpuinfo
que mi procesador es compatible con 64 bits. La salida del comando es:
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
Sin embargo, después de limpiar el disco e instalar Ubuntu 11.10 de 64 bits, el sistema todavía detecta sólo 3,1 GB de RAM. He comprobado en la BIOS que tengo instalados 4 gigas de RAM, no 3.1. ¿Por qué Ubuntu de 64 bits solo detecta 3,1 GB de RAM?
Salida deuname -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
Salida defree -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
Respuesta1
Alrededor del 80% de las CPU que se utilizan hoy en día (y casi todas las CPU nuevas vendidas) son compatibles con Ubuntu de 64 bits, por lo que esto no es una sorpresa. Hay planes para sugerir Ubuntu de 64 bits como predeterminado (como se sugiere ahora el de 32 bits), ya que el hardware de la mayoría de las personas es capaz de ejecutarlo.
Aun así, para ver la memoria total tal como la ve el kernel, así como un informe sobre cómo se asignó inicialmente, puedes hacer esto:
dmesg |grep "Memory: "
Esto mostrará una línea como esta:
[ 0.000000] Memory: 3823988k/4849664k available (6109k kernel code, 874468k absent, 151208k reserved, 4876k data, 984k init)
Mi sistema tiene 4 GB de RAM instalados, sin embargo, el total informado es algo así como 4,7 GB (supongo que el BIOS informa más memoria debido al espacio de direcciones para las tarjetas de video, dispositivos PCI e IO y otros). Al final, sólo 3,6 GB están disponibles para las aplicaciones debido a estas preocupaciones.
Tenga en cuenta la cantidad de memoria "ausente", esto "refleja el espacio de direccionamiento de memoria perdido debido a agujeros de memoria en el mapa de memoria. Normalmente se dejan agujeros para espacio PCI, IO, etc. Cada modelo de sistema de proveedor es diferente y cada sistema tendrá Se reporta un valor diferente para la memoria ausente."
Mire también la pregunta señalada por fossfreedom, le brinda una explicación más detallada de dónde se puede usar el espacio de direcciones.