Kernel
While this is part of the address space, it cannot be addressed
directly by the process. It must be addressed via system calls.
|
Stack
Used by the program for variables and storage. It grows and shrinks
in size depending on what routines are called and what their stack
space requirements are. It is normally about 8MB in size.
|
Shared Libraries
Shared libraries are position independent so that they can be shared
by all programs that want to use them. One common example is
libc.so.
|
hole
This is the address space that is unallocated and unused. It
does not tie up physical memory. For most processes, this is
the largest portion of the virtual memory for the process.
|
heap
Used for some types of working storage. It is allocated by
the malloc function.
|
BSS
Uninitialized variables. These are not part of the executable file
and their initial value is set to zeros.
|
Data
Global variables, constants, static variables from the program.
|
Text
Set of instructions from the compiler-generated executable file.
|