Prebinding
Prebinding byla optimalizační technika používaná v raných verzích macOS (dříve Mac OS X), která měla urychlit spouštění aplikací. Pracovala se soubory Mach-O, nativním formátem používaným pro aplikace, knihovny a další spustitelný kód v macOS.
Jak prebinding fungoval
Aplikace se často spoléhají na sdílené knihovny obsahující kód používaný více programy. Dynamický linker obvykle musí tyto knihovny najít, načíst je do paměti a vyřešit odkazy na jejich funkce a data. Prebinding prováděl část této práce předem tím, že přidělil preferované adresy v paměti a zaznamenal vyřešené odkazy ještě před spuštěním aplikace.
Rané verze Mac OS X prováděly prebinding během instalace softwaru nebo v rámci procesu optimalizace systému. Tento proces sice zkrátil dobu spouštění aplikací, ale změny v aplikaci nebo některé z jejích knihoven mohly informace o prebindingu zneplatnit, takže je bylo nutné znovu vygenerovat. Tato technika se také stala méně užitečnou, když operační systémy začaly používat kód nezávislý na pozici a randomizaci rozložení adresního prostoru (ASLR), která záměrně mění umístění v paměti za účelem zvýšení bezpečnosti.
Prebinding v moderní době
Moderní verze macOS už tradiční prebinding nepoužívají. Dynamický linker společnosti Apple, známý jako dyld, místo toho používá ke zpracování aplikací Mach-O například sdílenou dynamickou mezipaměť linkeru a uzávěry spouštění. Ačkoli mají tyto technologie podobný účinek, termín prebinding se technicky vztahuje k procesu používanému ranými verzemi Mac OS X.
Otestujte své znalosti