La siguiente imagen muestra cómo se divide un espacio de direcciones virtuales de proceso de 32 bits:
Pero, ¿cómo se divide un espacio de direcciones virtuales de proceso de 64 bits?
Respuesta aceptada:
x86
El mapa de memoria virtual x86 de 64 bits divide el espacio de direcciones en dos:la sección inferior (con el bit superior establecido en 0) es el espacio del usuario, la sección superior (con el bit superior establecido en 1) es el espacio del kernel. (Tenga en cuenta que x86-64 define direcciones "canónicas", "mitad inferior" y "mitad superior", con una cantidad de bits efectivamente limitada a 48 o 56; consulte Wikipedia para obtener más detalles).
El mapa completo está documentado en detalle en el kernel; actualmente parece
Dirección de inicio | Compensación | Dirección final | Tamaño | Descripción del área de máquina virtual |
---|---|---|---|---|
0000_0000_0000_0000 | 0000_7fff_ffff_ffff | 128 TiB | memoria virtual de espacio de usuario | |
0000_8000_0000_0000 | +128 TiB | ffff_7fff_ffff_ffff | ~16 millones de TiB | no canónico |
ffff_8000_0000_0000 | -128 TiB | ffff_ffff_ffff_ffff | 128 TiB | memoria virtual del espacio del núcleo |