Prebinding
Prebinding was een optimalisatietechniek die door vroege versies van macOS (voorheen Mac OS X) werd gebruikt om applicaties sneller te laten starten. De techniek werkte met Mach-O-bestanden, de oorspronkelijke indeling die in macOS wordt gebruikt voor applicaties, bibliotheken en andere uitvoerbare code.
Hoe prebinding werkte
Applicaties zijn vaak afhankelijk van gedeelde bibliotheken met code die door meerdere programma's wordt gebruikt. Normaal gesproken moet een dynamische linker deze bibliotheken vinden, ze in het geheugen laden en verwijzingen naar hun functies en gegevens oplossen. Prebinding voerde een deel van dit werk vooraf uit door voorkeursgeheugenadressen toe te wijzen en opgeloste verwijzingen vast te leggen voordat een applicatie werd gestart.
Vroege versies van Mac OS X voerden prebinding uit tijdens de installatie van software of tijdens een proces voor systeemoptimalisatie. Hoewel het proces de starttijd van applicaties verkortte, konden wijzigingen aan een applicatie of een van de bibliotheken ervan de prebindinginformatie ongeldig maken, waardoor deze opnieuw moest worden gegenereerd. De techniek werd ook minder nuttig toen besturingssystemen positie-onafhankelijke code en address space layout randomization (ASLR) gingen gebruiken, waarbij geheugenlocaties opzettelijk variëren om de beveiliging te verbeteren.
Prebinding in het moderne tijdperk
Moderne versies van macOS gebruiken geen traditionele prebinding meer. In plaats daarvan gebruikt de dynamische linker van Apple, bekend als dyld, technologieën zoals de gedeelde dynamische linker-cache en startsluitingen om Mach-O-applicaties efficiënt te laden. Hoewel deze technologieën een vergelijkbaar effect hebben, verwijst de term prebinding technisch gezien naar het proces dat door vroege versies van Mac OS X werd gebruikt.
Test je kennis