为什么Unix链接程序称为“ ld”


29

试图在网上搜索,但找不到答案。它可能与“负载”有关,但这对我来说没有多大意义。

显然,“ ln”已经被使用,但是“ d”从何而来?


您如何自信地知道链接加载之前就出现了?
94239 2014年

我不会,这可能是错误的。
塞巴斯蒂安·雷德尔2014年

但是,你可能是对我的亲爱的,看到这里(链接从这里(链接从这里(从链接在这里)))表示,目前已经是ln只要arld在第一版UNIX约 1971年。恐怕活着的作家可能会开始忘记这种轶事。
94239 2014年

Answers:


42

Linux中的链接器最初称为加载程序。请参阅Jeff Duntemann的汇编语言循序渐进:使用Linux编程

链接目标代码文件

... Linux带有自己的链接程序,称为ld。(该名称实际上是“ load”的缩写,“ loader”是链接器在Unix的最初时代(早在1970年代)最初的称呼。)


3
请注意,术语“加载”仍然使用-启动程序时,它会加载到某个内存区域中,并且在某种程度上与“链接”相同的操作也会发生,不仅是由于动态/运行时链接。约翰·莱文(John R. Levine,ISBN:1558604960)所著的《装载机》对于那些想了解所有细节的人来说是一本好书。
johannes 2014年

4
拜托,拜托,拜托,拜托,人们,请记住,在发明Unix之前,存在计算机,软件和操作系统DID。术语“加载器”,如“在重定位(或可重定位:这两个术语都是通用的)链接加载器”中一样,可以回溯到Unix之前的LONG。我在1970年左右首次遇到这个问题,如果没有在1960
。– John R. Strohm 2014年

@ JohnR.Strohm:这几乎是我的链接报价所说的。
罗伯特·哈维

1
@RobertHarvey:我要说的是,“装载程序”一词可以追溯到1970年代“ Unix的第一个时代”。
约翰·斯特罗姆

1
@ JohnR.Strohm:我不确定这很重要。但是,出于历史精确性的考虑,请随时在权威参考文献中进行编辑。
罗伯特·哈维

12

因为它是“链接编辑器”。例如,Solaris和AIX手册页明确指出:

在对该问题的评论中,有一个到1971 UNIX手册页的非常有趣的链接。有一个ld手册页,其中明确指出了ld-link编辑器,请参见man12.pdf文件(第20页)

NAME ld-链接编辑器

维基百科提到了不同的理论,一种是“加载程序”,一种是“链接编辑器”。

旁注-惊人的正则表达式已在1971年存在...


补充证明,即使在互联网上也非常容易找到。现在,请提供-1的原因。
user155813 2014年

1
我没有投票,所以我不能给你任何理由。其他人可能会觉得您的答案太简单了。
Martijn Pieters 2014年

2
我觉得这个答案更好。ld绝对是链接编辑器或链接器,因为它不加载任何内容。ld.so既是链接程序,也是加载程序。
米罗斯拉夫·法郎

1
链接到1971年手册页的原因是烂掉了
Florian Castellane
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.