Skip to content

Lexicon Entry

Dynamic Linker (ld.so / dyld)

The runtime component that loads shared libraries (.so on Linux, .dylib on macOS) and resolves external symbols when a program starts or lazily at first call. On Linux it is `ld-linux-x86-64.so.2`; on macOS it is `dyld`.

Related Knowledge & Cross-References

Guide
Apr 28, 2026

Linker Explained: How Object Files Become Executables (Static & LTO)

Learn how the linker transforms object files into executables. Explore symbol resolution, relocation records, static vs dynamic linking, and Link-Time Optimization with real readelf and nm examples.

Continue Reading
Guide
Apr 6, 2026

Compiler Code Generation: How LLVM Turns IR into x86-64 and ARM64 Assembly

Between the hardware-agnostic world of LLVM Intermediate Representation (IR) and the raw binary bytes your CPU executes lies the backend pipeline—the most platform-specific, meticulously engineered phase of the compiler. In our previous deep dive into LLVM IR, we explored how the compiler represents your logic using an infinite number of virtual registers and generic instructions.…

Continue Reading
Guide
Mar 31, 2026

How a C Program Becomes Machine Code: The C Compilation Process Explained

Trace the complete C compilation process from source code to executable binary. See each stage — preprocessing, compilation, assembly, and linking — with real GCC and Clang output across x86-64 and ARM64.

Continue Reading
Guide
Feb 15, 2026

Dynamic Linking & Relocations: How the GOT and PLT Work

How does code call functions that aren't there yet? We dive deep into the Global Offset Table (GOT), Procedure Linkage Table (PLT), and the lazy binding dance.

Continue Reading
Guide
Feb 14, 2026

Process Loading & Creation: The Life of a Binary

Curious about process loading? We trace the journey from disk to execution, covering the OS loader, ASLR, and dynamic linking on Linux, macOS, and Windows.

Continue Reading