内核如何决定 mmap 分配到的地址

Featured image

熟悉 pwn 的友友一定会知道,在 linux 系统下,我们 mmap 一片固定大小的内存,调用 glibc 中 mmap 函数,它的返回值一定和加载的 libc.so.6 的基地址的偏移是确定的,这是怎么由内核决定的呢,又是怎么和 aslr 扯上关系的?就决定简单来研究一下