Konsolidator dynamiczny: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
int.
TheAdam0s (dyskusja | edycje)
Linia 1:
'''Konsolidator dynamiczny''', inaczej '''linker dynamiczny''' - to część [[system operacyjny|systemu operacyjnego]], która wywoływana jest w chwili uruchomienia programu i odpowiada za załadowanie do [[przestrzeń adresowa|przestrzeni adresowej]] [[proces (informatyka)|procesprocesu]]u niezbędnych dla niego [[biblioteka (informatyka)|bibliotek programistycznych]], uzupełnienie wczytanego kodu o adresy funkcji bibliotecznych, które będą przez proces wykorzystywane, i rozpoczęcie wykonywania wczytanego [[kod maszynowy|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 ==
W [[Unix|systemach uniksowych]] linker dynamiczny najczęściej występuje w postaci [[plik]]u o nazwie: ''ld.so'' (systemy typu [[BSD]], [[Solaris (system operacyjny)|Sun Solaris]]), ''ld-linux.so'' ([[Linux]]).
 
Linker dynamiczny bierze pod uwagę wartość [[zmienne środowiskowe|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 [[biblioteka (informatyka)|bibliotek]] w [[system plików|systemie plików]] [[system operacyjny|systemu operacyjnego]]. Ze względów bezpieczeństwa większość [[zmienne środowiskowe|zmiennych środowiskowych]] typu ''LD_'' jest ignorowana lub specyficznie traktowana przy wykonywaniu programów w ustawionym bitem [[setuid]] lub [[setgid]].
 
== Zobacz też ==
* [[Konsolidator]]
 
{{Oprogramowanie stub}}
 
[[Kategoria:Unix]]