dynamic binary
also: dynamically linked binary, ELF dynamic executable
An executable file that depends on external shared libraries at runtime, rather than having all code compiled directly into the binary. The dynamic linker resolves library dependencies when the program starts.
A dynamic binary is linked against shared libraries (like libc) whose code is loaded into memory at runtime rather than being embedded in the executable itself. This contrasts with static binaries where all dependencies are compiled into a single file.
When you run a dynamic binary, the system's dynamic linker (typically ld.so on Linux) locates and loads the required shared libraries before executing the program. You can inspect a binary's dependencies using ldd or readelf.
Example: Most programs on your system are dynamic binaries. For instance, ldd /bin/ls shows that ls depends on libc.so.6 and other libraries. This approach saves disk space and memory since multiple programs share the same library code.
Dynamic binaries are smaller and more flexible than static ones, but require the correct libraries to be installed on the system to run.