From OSDev Wiki
An Execution Loader or program loader is a program or operating system service which parses an executable Object File and loads (or maps) the executable section into memory. It may have additional functions as well, such as:
- Determining if there is a copy of the program already loaded or mapped into memory, and mapping the executable section of the process to share the existing memory footprint;
- Editing the executable image to patch addresses into the code, either to allow relocation, or to map external references to shared (dynamic) libraries,
- Loading shared libraries into memory, and caching them to avoid reloading.