Linkers
Static linking occurs during compilation time. It produces a larger binary file which contains the library.
Dynamic linking occurs during both compilation time and runtime;
- During compilation time, references to the library file are embedded (i.e., calls to the library subroutines)
- During runtime, the loader loads the library file and handles all references to it
Dynamic linking produces a smaller binary file however the total file size is spread across several files. It is effectively the same size as static linking if only that one binary file uses the library file.
Loaders
A tool that loads an executable file into memory so it can be executed by the operating system. It is the first thing that runs.