previous | start | next

Shared Objects/Private Objects

Code for C library functions - e.g. scanf, printf, etc. can be shared by processes. The library code is called a shared object. The file name reflects this: libc.so.

A shared object is loaded in physical memory once.

The virtual memory of each process has a contiguous segment that is mapped to shared libraries.

A process can create its own segments and segments can be shared or private.

Process virtual memory
Process-specific data
page tables, mm_structs, kernel stack
Physical memory
mapped into kernel's
virtual memory
Kernel code and data
User stack
 
Shared libraries
  <-- brk
Heap
Uninitialized Data
Initialized Data
Program Text



previous | start | next