Wstępne wiązanie
Wstępne wiązanie było techniką optymalizacji używaną we wczesnych wersjach systemu macOS (wcześniej Mac OS X), która miała przyspieszyć uruchamianie aplikacji. Działała ona z plikami Mach-O, natywnym formatem używanym przez aplikacje, biblioteki i inny wykonywalny kod w systemie macOS.
Jak działało wstępne wiązanie
Aplikacje często korzystają z bibliotek współdzielonych zawierających kod używany przez wiele programów. Zwykle konsolidator dynamiczny musi znaleźć te biblioteki, wczytać je do pamięci oraz rozwiązać odwołania do ich funkcji i danych. Wstępne wiązanie wykonywało część tej pracy z wyprzedzeniem, przypisując preferowane adresy pamięci i zapisując rozwiązane odwołania przed uruchomieniem aplikacji.
We wczesnych wersjach systemu Mac OS X wstępne wiązanie wykonywano podczas instalacji oprogramowania lub w ramach procesu optymalizacji systemu. Chociaż proces ten skracał czas uruchamiania aplikacji, zmiany w aplikacji lub jednej z jej bibliotek mogły unieważnić informacje o wstępnym wiązaniu, co wymagało ich ponownego wygenerowania. Technika ta stała się również mniej przydatna, gdy systemy operacyjne zaczęły stosować kod niezależny od położenia oraz randomizację układu przestrzeni adresowej (ASLR), która celowo zmienia lokalizacje w pamięci w celu zwiększenia bezpieczeństwa.
Wstępne wiązanie we współczesnych systemach
Współczesne wersje systemu macOS nie używają już tradycyjnego wstępnego wiązania. Zamiast tego dynamiczny konsolidator firmy Apple, znany jako dyld, korzysta z technologii takich jak współdzielona pamięć podręczna dynamicznego konsolidatora i struktury uruchamiania, aby wydajnie wczytywać aplikacje Mach-O. Chociaż technologie te mają podobny efekt, termin wstępne wiązanie odnosi się technicznie do procesu używanego we wczesnych wersjach systemu Mac OS X.
Sprawdź swoją wiedzę