Konsolidator dynamiczny
Konsolidator dynamiczny, inaczej linker dynamiczny – część systemu operacyjnego, która wywoływana jest w chwili uruchomienia programu i odpowiada za załadowanie do przestrzeni adresowej procesu niezbędnych dla niego bibliotek programistycznych, uzupełnienie wczytanego kodu o adresy funkcji bibliotecznych, które będą przez proces wykorzystywane, i rozpoczęcie wykonywania wczytanego kodu maszynowego od wskazanego przez programistę punktu.
Stosowany jest jako sposób zmniejszenia objętości programów wykonywalnych oraz zaoszczędzenia pamięci (przestrzeń adresowa z kopią biblioteki może być współdzielona przez wiele procesów). Wadą tego rozwiązania jest to, że zmniejsza się przenośność plików binarnych między platformami oraz wersjami bibliotek.
Systemy uniksowe
[edytuj | edytuj kod]W systemach uniksowych linker dynamiczny najczęściej występuje w postaci pliku o nazwie: ld.so (systemy typu BSD, Sun Solaris), ld-linux.so (Linux).
Linker dynamiczny bierze pod uwagę wartość zmiennych środowiskowych, takich jak: LD_LIBRARY_PATH, LD_PRELOAD, LD_AUDIT. Niektóre z tych zmiennych instruują linker o konieczności załadowania kodu bibliotek nieujętych w strukturach kontrolnych pliku wykonywalnego procesu. Inne mogą wskazywać niestandardowe położenie bibliotek w systemie plików systemu operacyjnego. Ze względów bezpieczeństwa większość zmiennych środowiskowych typu LD_ jest ignorowana lub specyficznie traktowana przy wykonywaniu programów w ustawionym bitem setuid lub setgid.