Co to jest dynamiczny linker?

Dynamiczny linker to część systemu operacyjnego komputera, która łączy i ładuje poszczególne biblioteki współdzielone dla określonego pliku wykonywalnego na komputerze. Pliki biblioteki współdzielonej dla pliku wykonywalnego obejmują pliki kodu i inne zasoby niezbędne do korzystania z programu. Pliki te są niezbędne do uruchamiania programów; bez nich aplikacje po prostu nie mogą działać zgodnie z oczekiwaniami. Sposób, w jaki działa dynamiczny linker, różni się w zależności od używanego systemu operacyjnego.

Plik biblioteki współdzielonej to plik, którego program wymaga do działania. Bez dostępu do tych plików program nie będzie mógł działać zgodnie z zamierzeniami programisty. Przed załadowaniem programu pliki te znajdują się na dysku twardym wraz ze wszystkimi innymi plikami w systemie komputerowym, ale po dwukrotnym kliknięciu przez użytkownika końcowego pliku wykonywalnego (.exe) system operacyjny pobiera pliki biblioteki wymagane przez program . System operacyjny następnie przenosi te pliki do pamięci o dostępie swobodnym (RAM), umożliwiając programowi szybki i wydajny dostęp do nich podczas działania programu. Następnie wiąże pliki biblioteki współdzielonej z plikiem wykonywalnym, łącząc je ze sobą w „umyśle” komputera, zachowując ich powiązanie podczas działania programu.

Tak długo, jak system operacyjny komputera jest uruchomiony, dynamiczny linker jest aktywny. Wkracza za każdym razem, gdy użytkownik końcowy ładuje program, powtarzając zadanie zlokalizowania wymaganych bibliotek współdzielonych i przeniesienia ich do pamięci komputera. Podczas gdy system operacyjny zawiera tylko jedną iterację programu dynamicznego linkera, ta jedna iteracja wystarcza do obsługi wszystkich programów uruchomionych na komputerze.

Metoda, za pomocą której działa dynamiczny linker, jest zależna od systemu operacyjnego. Na przykład, procedura, według której dynamiczny linker działa dla systemu operacyjnego Windows®, jest inna niż metoda używana przez Mac OS®. Podczas gdy w systemie Windows® linker dynamiczny jest częścią systemu operacyjnego, w systemie Mac OS® linker jest w rzeczywistości postrzegany przez system operacyjny jako oddzielna jednostka. Chociaż implementacja różni się w zależności od systemu operacyjnego, funkcja dynamicznego linkera pozostaje stała na całej planszy.