KernelVMAddressing
Regular addressing:
TASK_SIZE
TASK_UNMAPPED_BASE
mmap_base
i386
PAGE_OFFSET=0xC00000000 (3GB)
PAGE_ALIGN(TASK_SIZE/3)
PAGE_ALIGN( TASK_SIZE - bound(128M, stack_limit, TASK_SIZE/6*5) (- (get_random_int() % (1024*1024))
sparc32
PAGE_ALIGN( TASK_SIZE - bound(128M, stack_limit, TASK_SIZE/6*5) (- (get_random_int() & (1024*1024 - 1))
powerpc32
Legacy VM addressing is enabled in any of the following situations:
- running 64bit
- sysctl_legacy_va_layout enabled
personality & ADDR_COMPAT_LAYOUT
- unlimited stack
TASK_SIZE
TASK_UNMAPPED_BASE
mmap_base
i386
PAGE_OFFSET=0xC00000000 (3GB)
PAGE_ALIGN(TASK_SIZE/3)
TASK_UNMAPPED_BASE
x86_64
0x800000000000 - 4096
PAGE_ALIGN(TASK_SIZE/3)
TASK_UNMAPPED_BASE (+ (get_random_int() & 0x0fffffff) << PAGE_SHIFT)
sparc32
TASK_UNMAPPED_BASE (+ (get_random_int() & (1024*1024 - 1))
sparc64
TASK_UNMAPPED_BASE (+ (get_random_int() << PAGE_SHIFT) & 0xffffffff)
powerpc32
powerpc64
KernelVMAddressing (last edited 2008年08月06日 16:26:23 by localhost)