Perché il linker Unix si chiama "ld"


29

Ho provato a cercare sul web e non sono riuscito a trovare una risposta. Potrebbe avere qualcosa a che fare con il "caricamento", ma per me non ha molto senso.

Ovviamente, "ln" era già stato preso, ma da dove viene quella "d"?


Come sapresti assertivamente che il collegamento è apparso prima del caricamento ?
94239,

Non lo farei e potrei sbagliarmi al riguardo.
Sebastian Redl,

Ma si potrebbe avere ragione mia cara, vedi qui (collegato da qui (collegato da qui (legato da qui ))) che esiste già una lnfino a quando la are ldnella prima edizione UNIX ca. 1971. Temo che gli autori viventi stiano iniziando a dimenticare questo tipo di aneddoto.
94239,

Risposte:


42

I linker in Linux erano originariamente chiamati caricatori. Vedi passo dopo passo il linguaggio assembly: programmazione con Linux di Jeff Duntemann:

Collegamento del file del codice oggetto

... Linux viene fornito con un proprio linker, chiamato ld. (Il nome in realtà è l'abbreviazione di "load", e "loader" era ciò che originariamente venivano chiamati i linker, nella prima era di Unix, negli anni '70).


3
Si noti che il termine "caricamento" viene ancora utilizzato: quando si avvia un programma, questo viene caricato in un'area di memoria e in una certa misura si verificano le stesse operazioni del "collegamento", non solo a causa del collegamento dinamico / runtime. "Linker e Caricatori "di John R. Levine (ISBN: 1558604960) è un buon libro per coloro che vogliono conoscere tutti i dettagli.
johannes,

4
Per favore, per favore, per favore, gente, per favore provate a ricordare che computer, software e sistemi operativi DID esistono prima dell'invenzione di Unix. Il termine "caricatore", come in "trasferimento (o riposizionabile: entrambi i termini erano comuni) che collega il caricatore" risale a LUNGO prima di Unix. Mi sono imbattuto per la prima volta nel 1970 circa, e sarei MOLTO sorpreso se non ci fossero stati trasferimenti di caricatori di collegamento nel 1960.
John R. Strohm

@ JohnR.Strohm: Questo è praticamente ciò che dice la mia citazione collegata.
Robert Harvey,

1
@RobertHarvey: Il punto che stavo cercando di sottolineare è che il termine "caricatore" risale a molto tempo PRIMA "della Prima Era di Unix, negli anni '70".
John R. Strohm,

1
@ JohnR.Strohm: non sono sicuro che sia importante. Tuttavia, nell'interesse di essere storicamente precisi, sentiti libero di modificare in un riferimento autorevole.
Robert Harvey,

12

Perché è "link editor". Ad esempio, le pagine man di Solaris e AIX lo dicono esplicitamente:

Nel commento alla domanda c'è un link estremamente interessante alle pagine man di UNIX del 1971. C'è una ldpagina man, che afferma esplicitamente l' editor ld - link , vedere il file man12.pdf (pagina 20) :

NAME ld - editor di collegamenti

Wikipedia afferma che esistono diverse teorie, una è "loader" e una è "link editor".

Sidenote: espressioni straordinarie e regolari esistevano già nel 1971 ...


Prova aggiunta, estremamente facile da trovare anche in Internet. Ora fornisci il motivo per -1.
user155813

1
Non ho votato, quindi non posso darti alcun motivo. Altri potrebbero aver pensato che la tua risposta fosse troppo debole per terra.
Martijn Pieters,

2
Trovo questa risposta migliore. È sicuramente un editor di link o linker in quanto non carica nulla. ld.so è sia linker che loader.
Miroslav Franc,

1
il collegamento alla pagina man del 1971 è andato perduto a causa di un po 'di marciume
Florian Castellane,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.