Si los rangos de direcciones del espacio del kernel y del espacio del usuario siempre se dividen en una proporción de 1:3.
Por ejemplo, si tengo 4 GB de espacio de direcciones y 4 GB de RAM física, ¡el kernel obtiene 1 GB y el espacio de usuario obtiene 3 GB (supuesto)!
Entonces, si tengo 2 GB de RAM, ¿es como lo siguiente?
kernel: 512MB user space: 0-1536MB¿Es esta suposición correcta?
No, la división es solo para dividir el espacio de direcciones virtuales.
Simplemente significa que el espacio de direcciones desde 0x00000000 hasta 0xBFFFFFFF 'pertenece' o está disponible para mapear en el espacio de usuario. Las direcciones virtuales 0xC0000000 a 0xFFFFFFFF pertenecen al kernel.
La cantidad de RAM disponible y cómo se usa no tiene nada que ver con cómo se divide el espacio de direcciones virtuales en el kernel de Linux.
FWIW, en ARM, puede configurar cuál es la división para que no tenga que ser 3: 1 (usuario: núcleo). Puede ser 1:3, 2:2 o 3:1. Supongo que hay una opción similar para el arco x86.