Konsolidator dynamiczny
Ten artykuł od 2011-01 wymaga zweryfikowania podanych informacji. |
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
edytujW 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.