Pré-liaison
La pré-liaison était une technique d’optimisation utilisée par les premières versions de macOS (anciennement Mac OS X) pour accélérer le lancement des applications. Elle fonctionnait avec les fichiers Mach-O, le format natif utilisé pour les applications, les bibliothèques et les autres codes exécutables de macOS.
Fonctionnement de la pré-liaison
Les applications dépendent souvent de bibliothèques partagées contenant du code utilisé par plusieurs programmes. Normalement, un éditeur de liens dynamique doit localiser ces bibliothèques, les charger en mémoire et résoudre les références à leurs fonctions et à leurs données. La pré-liaison effectuait une partie de ce travail à l’avance en attribuant des adresses mémoire préférées et en enregistrant les références résolues avant le lancement d’une application.
Les premières versions de Mac OS X effectuaient la pré-liaison lors de l’installation de logiciels ou pendant un processus d’optimisation du système. Bien que ce processus réduise le temps de lancement des applications, les modifications apportées à une application ou à l’une de ses bibliothèques pouvaient rendre les informations de pré-liaison obsolètes, ce qui nécessitait de les régénérer. Cette technique est également devenue moins utile lorsque les systèmes d’exploitation ont adopté le code indépendant de la position et la randomisation de la disposition de l’espace d’adressage (ASLR), qui modifie volontairement les emplacements mémoire afin d’améliorer la sécurité.
La pré-liaison à l’ère moderne
Les versions modernes de macOS n’utilisent plus la pré-liaison traditionnelle. À la place, l’éditeur de liens dynamique d’Apple, appelé dyld, utilise des technologies telles que le cache partagé de l’éditeur de liens dynamique et les fermetures de lancement pour charger efficacement les applications Mach-O. Bien que ces technologies aient un effet similaire, le terme pré-liaison désigne techniquement le processus utilisé par les premières versions de Mac OS X.
Testez vos connaissances