In this post, we will understand the difference between a linker and a loader −
The main function of the linker is to generate executable files.
The linker takes the input as the object code which would be generated by a compiler/assembler.
The process of linking can be understood as a method to combine different snippets of code in order to obtain executable code.
There are two types of linkers available: Linkage Editor and Dynamic Linker.
Linker also helps combine all the object modules.
Linker is responsible to arrange the objects in the program’s address space.
The main function of a loader is to load executable files to the main memory.
It takes the executable files (generated by linker) as its input.
It can be understood as a process of loading the executable codes into main memory where it is execute further.
There are 3 types of loaders: Absolute loading, Relocatable loading and Dynamic run-time loading.
It helps allocate the addresses to executable codes or files.
It is also responsible to adjust the references that are used within the program.