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. Udostępniane pliki bibliotek 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. Metoda działania dynamicznego linkera różni się w zależności od używanego systemu operacyjnego.
Plik biblioteki współdzielonej to plik wymagany przez program. 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 pliku wykonywalnego (.exe) przez użytkownika końcowego system operacyjny pobiera pliki bibliotek wymagane przez program . Następnie system operacyjny 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, utrzymując je powiązane podczas działania programu.
Tak długo, jak działa system operacyjny komputera, dynamiczny linker jest aktywny. Przechodzi 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. Chociaż system operacyjny zawiera tylko jedną iterację programu dynamicznego linkera, ta jedna iteracja wystarcza do obsługi wszystkich programów uruchomionych na komputerze.
Metoda działania dynamicznego linkera zależy od systemu operacyjnego. Na przykład procedura, za pomocą której dynamiczny linker działa w systemie operacyjnym Windows®, różni się od metody stosowanej w systemie Mac OS®. Podczas gdy w Windows® dynamiczny linker jest częścią systemu operacyjnego, w Mac OS® linker jest faktycznie postrzegany przez system operacyjny jako osobna jednostka. Chociaż implementacja różni się w zależności od systemu operacyjnego, funkcja dynamicznego linkera pozostaje stała w całym systemie.