2

This page says that RANDOMIZE_BASE is for KASLR and it randomizes the physical AND virtual addresses which is obvious in 32-bit and comprehensible in 64-bit.

But what does RANDOMIZE_MEMORY do exactly? This page says:

Randomizes the base virtual address of kernel memory sections (physical memory mapping, vmalloc & vmemmap).

What does this mean? Does this mean, that the different sections are split somehow and located not together but with some space in between?

2

RANDOMIZE_BASE is a feature available on most architectures which randomises the virtual and physical base address of the kernel.

RANDOMIZE_MEMORY is an x86-64-specific feature which additionally randomises the offsets of page_offset_base, vmalloc_base, vmemmap_base, i.e. the locations of the physical mapping in kernel memory, the vmalloc space, and the virtual memory map. As you can see from the linked memory map, all of these are followed by holes which allows them to be moved around without having to deal with overlap with whatever comes before or after them in memory.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.