Program Layout in Memory
.text – Machine instructions
.data – Initialized variables, e.g. int a=0;
.bss – Uninitialized variables, e.g. int a;
Heap – dynamically allocated variables, grows in size towards the stack
Stack – tracks function calls recursively, grows in size towards the heap
Environment/Arguments – system-level variables (e.g. PATH) and command-line arguments given at runtime