A dynamic linker is an operating system feature that loads and links dynamic libraries for an executable at runtime; before or while it is running. Although the details vary by operating system, typically, a dynamic linker copies the content of each library from persistent storage to RAM, fills jump tables and relocates pointers.
Linking is often referred to as a process that is performed when the executable is compiled, while a dynamic linker is a special part of an operating system that loads external shared libraries into a running process and then binds those shared libraries dynamically to the running process. This approach is also called dynamic linking or late linking.