Dlaczego linker uniksowy nazywa się „ld”


29

Próbowałem przeszukać sieć i nie mogłem znaleźć odpowiedzi. Może to mieć coś wspólnego z „ładowaniem”, ale to nie ma dla mnie większego sensu.

Oczywiście „ln” zostało już zabrane, ale skąd się bierze to „d”?


Skąd miałbyś wiedzieć, że linkowanie pojawiło się przed załadowaniem ?
94239

Nie zrobiłbym tego i mogę się mylić.
Sebastian Redl

Ale można mieć rację kochanie, patrz tutaj (związany z tutaj (związany z tutaj (związany z tutaj ))), że nie jest już lntak długo, jak ari ldw pierwszej edycji UNIX ca. 1971. Obawiam się, że żywi autorzy mogą zacząć zapominać o takiej anegdocie.
94239

Odpowiedzi:


42

Linkery w Linuksie były pierwotnie nazywane modułami ładującymi. Zobacz Asembler krok po kroku: Programowanie w Linuksie przez Jeff Duntemann:

Łączenie pliku kodu obiektu

... Linux ma własny linker o nazwie ld. (Nazwa jest w rzeczywistości skrótem od „load”, a „loader” był tak nazywany linkerem w Pierwszej Erze Uniksa w latach 70.).


3
Zwróć uwagę, że termin „ładowanie” jest nadal używany - podczas uruchamiania programu jest ładowany w pewnym obszarze pamięci i do pewnego stopnia zachodzą takie same operacje, jak w przypadku „łączenia”, nie tylko ze względu na łączenie dynamiczne / środowisko wykonawcze. Ładowarki ”Johna R. Levine'a (ISBN: 1558604960) to dobra książka dla tych, którzy chcą poznać wszystkie szczegóły.
johannes

4
Proszę, proszę, ludzie, proszę pamiętać, że komputery, oprogramowanie i systemy operacyjne DID istnieją przed wynalezieniem Uniksa. Termin „moduł ładujący”, podobnie jak w przypadku „przenoszenia (lub przenoszenia: oba terminy były wspólne) łączenie modułu ładującego”, wraca do LONG przed Unixem. Po raz pierwszy zetknąłem się z nim około 1970 roku i byłbym BARDZO zaskoczony, gdyby w 1960 roku nie przeniesiono ładowarek łączących.
John R. Strohm,

@ JohnR.Strohm: To właśnie mówi mój cytowany link.
Robert Harvey

1
@RobertHarvey: Chciałem nadmienić, że termin „loader” sięga dawno temu PRZED „First Age of Unix, w latach 70-tych”.
John R. Strohm,

1
@ JohnR.Strohm: Nie jestem pewien, czy to się liczy. Jednak w celu zachowania historycznej precyzji możesz je edytować w autorytatywnych źródłach.
Robert Harvey

12

Ponieważ jest to „edytor linków”. Na przykład strony podręcznika Solaris i AIX wyraźnie to mówią:

W komentarzu do pytania znajduje się niezwykle interesujący link do stron podręcznika UNIX z 1971 roku. Istnieje ldstrona man, która wyraźnie określa edytor ld - link , patrz plik man12.pdf (strona 20) :

NAME ld - edytor linków

Wikipedia wspomina, że ​​istnieją różne teorie, jedna to „moduł ładujący”, jedna to „edytor linków”.

Sidenote - niesamowite, regularne wyrażenia istniały już w 1971 roku ...


Dodano dowód, niezwykle łatwy do znalezienia nawet w Internecie. Teraz proszę podać powód -1.
user155813,

1
Nie głosowałem, więc nie mogę podać żadnych powodów. Inni mogli uważać, że twoja odpowiedź była zbyt cienka na ziemi.
Martijn Pieters,

2
Znalazłem tę odpowiedź lepiej. ld jest zdecydowanie edytorem linków lub linkerem, ponieważ niczego nie ładuje. ld.so jest zarówno łącznikiem, jak i modułem ładującym.
Miroslav Franc

1
link do strony podręcznika użytkownika z 1971 r. został zepsuty
Florian Castellane
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.