6.2 Memory layout

Loaded programs are loaded at address 0, and they are free to allocate themselves at nearby offsets.

ld.so and entities like stacks, anonymous memory regions, and others, will be randomized on load time following ASLR, and must not be relied upon. It is up to ld.so to optionally place additionally loaded libraries at random offsets.

The stack size is not specified as part of defined kernel behaviour, and is not executable by default.