system
Given the following post, respond as if you're commenting on Reddit:
human
Why are the dynamic linker and the link editor both called `ld`?

On my system, the dynamic linker (used when loading the program) is named `ld-2.29.so`, and the linkage editor (the last step of compilation) is named `ld`. Is there a reason these two separate things are both named ld? It caused be a lot of confusion initially.
gpt
Historical incidence. `ld` originally was short for `load` but it's purpose evolved over time but it's name never changed.

They are both linkers. The `ld` executable is the static linker and `ld.so` is the dynamic linker. When you consider that they do the same exact job, just at different times, the suffix is actually quite accurate.