40

Tried to search the web and couldn't find an answer. It might have something to do with "load", but that doesn't make much sense to me.

Obviously, "ln" was already taken, but where does that "d" come from?

3
  • How would you assertively know that linking appeared before loading?
    – 94239
    Feb 5, 2014 at 14:50
  • I wouldn't, and may well be wrong about that. Feb 5, 2014 at 14:53
  • But you could be right my dear, see here (linked from here (linked from here (linked from here))) that there is already a ln as long as the ar and ld in first edition UNIX ca. 1971. I'm afraid the living authors may be starting to forget this kind of anecdote.
    – 94239
    Feb 7, 2014 at 23:15

2 Answers 2

57

Linkers in Linux were originally called loaders. See Assembly Language Step-by-Step: Programming with Linux by Jeff Duntemann:

Linking the Object code File

...Linux comes with its own linker, called ld. (The name is actually short for "load", and "loader" was what linkers were originally called, in the First Age of Unix, back in the 1970s.)

6
  • 4
    Note that the term "loading" is still used - when starting a program it is loaded in some memory area and to quite some degree the same operations as with "linking" happen, not only due to dynamic/runtime linking .. "Linkers and Loaders" by John R. Levine (ISBN: 1558604960) is a good book for the ones who want to know all the details.
    – johannes
    Feb 3, 2014 at 17:45
  • 4
    Please, please, please, people, please try to remember that computers and software and operating systems DID exist before Unix was invented. The term "loader", as in "relocating (or relocatable: both terms were common) linking loader" goes back to LONG before Unix. I first ran into it in about 1970, and I'd be VERY surprised if there weren't relocating linking loaders in 1960. Nov 11, 2014 at 17:28
  • 1
    @RobertHarvey: The point I was trying to make is that the term "loader" goes back to long BEFORE "the First Age of Unix, back in the 1970s." Nov 11, 2014 at 18:40
  • 2
    @JohnR.Strohm: I'm not sure that matters. However, in the interest of being historically precise, feel free to edit in an authoritative reference. Nov 11, 2014 at 18:43
  • 1
    The other answer has added some interesting counters to this, including PDF links of 1971 UNIX man pages that use link editor, not link loader. Nov 11, 2014 at 21:42
17

Because it is "link editor". For example, Solaris and AIX man pages explicitly say so:

In the comment to the question there is an extremely interesting link to 1971 UNIX man pages. There is a ld man page, which explicitly states ld - link editor, see the man12.pdf file (page 20):

NAME ld -- link editor

Wikipedia mentions that there are different theories, one is "loader" one is "link editor".

Sidenote - amazing, regular expressions already existed in 1971...

5
  • 1
    Proof added, extremely easy to find even in internet. Now please provide reason for -1's.
    – user155813
    Nov 11, 2014 at 19:45
  • 1
    I didn't vote, so I can't give you any reasons. Others may have felt your answer was too thin on the ground. Nov 11, 2014 at 21:32
  • 2
    I find this answer better. ld is definitely link editor or linker as it does not load anything. ld.so is both linker and loader. Nov 12, 2014 at 9:01
  • 1
    link to the 1971 man page is lost to bit rot Aug 24, 2016 at 7:41
  • The wikipedia page just cites a stackoverflow answer from 2012, which itself does not have a source. I'm tempted to believe, stackoverflow.com/a/59574354/4225094, which claims "LD is "Link Editor". LE was already used to mean "less or equal" in a shell, likely sh. So, per convention, the conflicting character was moved one character forward in the word being abbreviated." Mar 31, 2020 at 4:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.