Są to naprawdę dwa terminy na to samo.
W świecie Unix termin dynamiczny linker jest używany do oznaczenia komponentu systemu operacyjnego, który łączy biblioteki dynamiczne w środowisku wykonawczym, podczas gdy program ładujący na większości innych systemów zarówno ładuje program, jak i łączy biblioteki dynamiczne.
Ponieważ ładowanie bibliotek w systemach uniksowych odbywa się za pomocą osobnego komponentu (najczęściej jest to ld.so
), dynamiczny linker jest uważany za coś odrębnego od programu ładującego. Kompilatorzy zwykle wstawiają kodeks na początku pliku wykonywalnego, aby załadować ld.so
, a ld.so
będzie kontynuować ładowanie pozostałych bibliotek zależnych przed wywołaniem main
. Podczas ładowania programu odbywa się w przestrzeni jądra, łączenie bibliotek dynamicznych zwykle odbywa się w przestrzeni użytkownika.
W przeciwieństwie do systemu Windows, w którym zarówno program ładujący, jak i łączący biblioteki dynamiczne, jest wykonywany w trybie jądra.
http://stackoverflow.com/questions/311882/what-do-do-statically-linked-and-dynamicznie-linked-mean/311889#311889 – Vijay
@peter thanks! pomogło. –