# ELF ## Basic structure 1. ELF header (0x00 - 0x40) 2. Program header (0x40 - 0x78) 3. Padding (0x78 - 0x80) 4. Machine code (0x80) ## Entry point The entry point is defined in the first 64 bytes (ELF header). ## Base address The minimum base address is controlled by the `mmap` settings: ```shell sysctl vm.mmap_min_addr ``` Usually, this value is 65536 (0x1000). ## Initialization in Linux See `/lib/modules/$(uname -r)/build/arch/x86/include/asm/elf.h`.