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)