Prebinding
Il prebinding era una tecnica di ottimizzazione usata dalle prime versioni di macOS (in precedenza Mac OS X) per avviare più rapidamente le applicazioni. Funzionava con i file Mach-O, il formato nativo usato per le applicazioni, le librerie e altro codice eseguibile in macOS.
Come funzionava il prebinding
Le applicazioni si affidano spesso a librerie condivise che contengono codice usato da più programmi. Normalmente, un linker dinamico deve individuare queste librerie, caricarle nella memoria e risolvere i riferimenti alle loro funzioni e ai loro dati. Il prebinding eseguiva in anticipo parte di questo lavoro, assegnando indirizzi di memoria preferiti e registrando i riferimenti risolti prima dell'avvio di un'applicazione.
Le prime versioni di Mac OS X eseguivano il prebinding durante l'installazione del software o durante un processo di ottimizzazione del sistema. Sebbene il processo migliorasse i tempi di avvio delle applicazioni, le modifiche a un'applicazione o a una delle sue librerie potevano rendere non valide le informazioni di prebinding, richiedendone la rigenerazione. La tecnica divenne inoltre meno utile quando i sistemi operativi adottarono il codice indipendente dalla posizione e l'address space layout randomization (ASLR), che varia intenzionalmente le posizioni in memoria per migliorare la sicurezza.
Il prebinding nell'era moderna
Le versioni moderne di macOS non usano più il prebinding tradizionale. Al suo posto, il linker dinamico di Apple, noto come dyld, usa tecnologie come la cache condivisa del linker dinamico e le closure di avvio per caricare in modo efficiente le applicazioni Mach-O. Sebbene queste tecnologie abbiano un effetto simile, il termine prebinding si riferisce tecnicamente al processo usato dalle prime versioni di Mac OS X.
Metti alla prova le tue conoscenze