Monday, January 11, 2010

Linux memory

KernelTrap High Memory




HighMem
  • ZONE_HIGHMEM - dynamically mapped pages/processes > 896MB
LowMem
  • ZONE_NORMAL - normal addressable pages 16-896MB
  • ZONE_DMA - DMA-able pages <>

Process memory

Stack segment
  • Parameters
  • Return address
  • Return frame pointer
  • Local variables
Heap segment - dynamic memory allocation

Data segment
  • BSS - uninitialized global data structures
  • Data - initialized global variables and data structures
Text/code segment

All threads within a process share code and data segment.
All threads have their own stack.