The document provides an overview of linkers and how they work. It discusses:
- What linkers do by resolving external references between object files and libraries to generate executable files.
- The differences between static and shared libraries and how they are handled by the linker.
- Special considerations for C++ like name mangling, initialization of static objects, templates, and dynamic loading.
- Common linker commands like nm, ldd, size, ar and how they can be used to inspect object files, libraries and executables.