A dynamic linker is a portion of a computer operating system which links and loads the individual shared libraries for a specific executable file on the computer. The shared library files for an executable include the code files and other resources necessary to use the program. These files are essential to running programs; without them, applications simply cannot function as expected. The method by which the dynamic linker functions varies depending on the operating system being used.
A shared library file is a file the program requires to operate. Without access to these files, the program will be unable to run as intended by the programmer. Prior to loading the program, these files are contained on the hard drive along with all other files on the computer system, but after the end user double click an executable (.exe) file, the operating system retrieves the library files required by the program. The operating system then moves those files into random access memory (RAM), allowing the program to access them speedily and efficiently while the program is operating. It then binds the shared library files to the executable file, linking them together in the computer's "mind," keeping them associated while the program runs.
As long as the computer's operating system is running, the dynamic linker is active. It steps in each and every time the end user loads a program, repeating the task of locating the required shared libraries and moving them into the computer's memory. While the operating system only contains a single iteration of the dynamic linker program, that one iteration is enough to handle all of the programs running on the computer.
The method by which a dynamic linker functions is operating-system dependent. For example, the procedure by which the dynamic linker operates for the Windows® operating system is different than the method used by the Mac OS®. Whereas in Windows®, the dynamic linker is part of the operating system, in the Mac OS® the linker is actually viewed by the operating system as a separate entity. Although the implementation varies among operating systems, the function of the dynamic linker remains constant across the board.