1. VAX/VMS
-
32-bit virtual address space per process, 512-byte pages virtual address = 23-bit VPN + 9-bit offset
upper two bits selects segment
2. Linux 32-bit Address Space
-
kernel logical addresses mapped directly to the first portion of physical memory
3. Linux 64-bit Address Space
-
Virtual Address:
From https://unix.stackexchange.com/questions/509607/how-a-64-bit-process-virtual-address-space-is-divided-in-linux:======================================================================================== Start addr | Offset | End addr | Size | VM area description ======================================================================================== | | | | 0000000000000000 | 0 | 00007fffffffffff | 128 TB | user-space virtual memory __________________|_________|__________________|_________|______________________________ | | | | 0000800000000000 | +128 TB | ffff7fffffffffff | ~16M TB | non-canonical __________________|_________|__________________|_________|______________________________ | | | | ffff800000000000 | -128 TB | ffffffffffffffff | 128 TB | kernel-space virtual memory __________________|_________|__________________|_________|______________________________
lower 48 bits actually used, "canonical" means top 16 bits must be copies of bit 47