Pourquoi l'éditeur de liens Unix s'appelle "ld"


29

J'ai essayé de rechercher sur le Web et je n'ai pas trouvé de réponse. Cela pourrait avoir quelque chose à voir avec la «charge», mais cela n'a pas beaucoup de sens pour moi.

De toute évidence, "ln" a déjà été pris, mais d'où vient ce "d"?


Comment sauriez-vous avec certitude que la liaison est apparue avant le chargement ?
94239

Je ne le ferais pas, et je peux très bien me tromper à ce sujet.
Sebastian Redl

Mais vous pourriez avoir raison ma chérie, voir ici (lié d' ici (lié d' ici (lié d' ici ))) qu'il existe déjà un lnaussi longtemps que le aret lddans la première édition UNIX ca. 1971. Je crains que les auteurs vivants commencent à oublier ce genre d'anecdote.
94239

Réponses:


42

Les linkers sous Linux étaient à l'origine appelés loaders. Voir le langage d'assemblage pas à pas: programmation avec Linux par Jeff Duntemann:

Liaison du fichier de code objet

... Linux est livré avec son propre éditeur de liens, appelé ld. (Le nom est en fait l'abréviation de "charger", et "chargeur" ​​était ce que les linkers étaient à l'origine appelés, dans le premier âge d'Unix, dans les années 1970.)


3
Notez que le terme "chargement" est toujours utilisé - lors du démarrage d'un programme, il est chargé dans une zone de mémoire et dans une certaine mesure, les mêmes opérations que pour la "liaison" se produisent, non seulement en raison de la liaison dynamique / d'exécution. " Loaders "de John R. Levine (ISBN: 1558604960) est un bon livre pour ceux qui veulent connaître tous les détails.
johannes

4
S'il vous plaît, s'il vous plaît, s'il vous plaît, les gens, s'il vous plaît essayez de vous rappeler que les ordinateurs et les logiciels et les systèmes d'exploitation existaient DID avant l'invention d'Unix. Le terme "chargeur", comme dans "relocaliser (ou relocalisable: les deux termes étaient communs) reliant le chargeur", remonte à LONG avant Unix. Je l'ai rencontré pour la première fois vers 1970 et je serais TRÈS surpris s'il n'y avait pas de relocalisation des chargeurs de liaison en 1960.
John R. Strohm

@ JohnR.Strohm: C'est à peu près ce que dit ma citation liée.
Robert Harvey

1
@RobertHarvey: Le point que j'essayais de faire est que le terme "chargeur" ​​remonte à longtemps AVANT "le premier âge d'Unix, dans les années 1970".
John R. Strohm

1
@ JohnR.Strohm: Je ne suis pas sûr que ce soit important. Cependant, dans l'intérêt d'être historiquement précis, n'hésitez pas à éditer dans une référence faisant autorité.
Robert Harvey

12

Parce que c'est "éditeur de liens". Par exemple, les pages de manuel Solaris et AIX le disent explicitement:

Dans le commentaire de la question, il existe un lien extrêmement intéressant vers les pages de manuel UNIX de 1971. Il y a une ldpage de manuel, qui indique explicitement ld - éditeur de liens , voir le fichier man12.pdf (page 20) :

NAME ld - éditeur de liens

Wikipédia mentionne qu'il existe différentes théories, l'une est «chargeur», l'autre est «éditeur de liens».

Sidenote - des expressions régulières étonnantes existaient déjà en 1971 ...


Preuve ajoutée, extrêmement facile à trouver même sur Internet. Veuillez maintenant fournir la raison des -1.
user155813

1
Je n'ai pas voté, je ne peux donc pas vous donner de raisons. D'autres ont peut-être estimé que votre réponse était trop mince sur le terrain.
Martijn Pieters

2
Je trouve cette réponse meilleure. ld est certainement un éditeur de liens ou un éditeur de liens car il ne charge rien. ld.so est à la fois l'éditeur de liens et le chargeur.
Miroslav Franc

1
lien vers la page de manuel 1971 est perdu pour la pourriture du bit
Florian Castellane
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.