PCI también utiliza parte del espacio de direcciones. Tanto las tarjetas PCI como los dispositivos PCI están integrados en la placa base (como el conjunto de chips).
Por lo general, esto significaba que, de los 4 GB, solo había disponibles de 3¼ a 3½ GB, incluso si no usaba una GPU moderna con mucha RAM integrada.
Tienes que activar la reasignación de memoria ON en el BIOS. De lo contrario, no reasignará la memoria por encima del límite de 4 GB y las asignaciones de hardware cubrirán parte de la memoria.
El firmware utiliza la memoria RAM que falta:
# ./smem -R 4G -w
Area Used Cache Noncache
firmware/hardware 843592 0 843592
kernel image 0 0 0
kernel dynamic memory 181116 134616 46500
userspace memory 287784 19736 268048
free memory 2881812 2881812 0
Resumiendo:
echo $((181116 + 287784 + 2881812 + 843592))
4194304
Así que ya ves, suma hasta 4 GB. Y aquí están los ~ 800 millones que informa que faltan:
firmware/hardware 843592 0 843592