ELF is the abbreviation for Executable and Linkable Format and defines the structure for binaries, libraries, and core files.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c5e70172-0208-4384-b68c-92fe2b4d6959/Untitled.png

When user-space call to execve():

!Populating the stack: the auxiliary vector, environment and arguments

The create_elf_tables() function adds more information to the new program's stack

The first collection of information forms the ELF auxiliary vector, a collection of (id, value) pairs that describe useful information about the program being run and the environment it is running in, communicated from the kernel to user space.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/91f6a6c6-e34f-404f-b571-1a7e5b165fa4/Untitled.png