Pré-vinculação
A pré-vinculação era uma técnica de otimização usada pelas primeiras versões do macOS (anteriormente Mac OS X) para fazer com que os aplicativos fossem iniciados mais rapidamente. Ela funcionava com arquivos Mach-O, o formato nativo usado por aplicativos, bibliotecas e outros códigos executáveis no macOS.
Como funcionava a pré-vinculação
Os aplicativos geralmente dependem de bibliotecas compartilhadas que contêm código usado por vários programas. Normalmente, um vinculador dinâmico precisa localizar essas bibliotecas, carregá-las na memória e resolver as referências às suas funções e aos seus dados. A pré-vinculação realizava parte desse trabalho antecipadamente, atribuindo endereços de memória preferenciais e registrando as referências resolvidas antes que um aplicativo fosse iniciado.
As primeiras versões do Mac OS X realizavam a pré-vinculação durante a instalação de software ou durante um processo de otimização do sistema. Embora o processo melhorasse o tempo de inicialização dos aplicativos, alterações em um aplicativo ou em uma de suas bibliotecas poderiam invalidar as informações de pré-vinculação, exigindo que elas fossem geradas novamente. A técnica também se tornou menos útil à medida que os sistemas operacionais adotaram código independente de posição e randomização do layout do espaço de endereços (ASLR), que varia intencionalmente os locais da memória para melhorar a segurança.
A pré-vinculação na era moderna
As versões modernas do macOS não usam mais a pré-vinculação tradicional. Em vez disso, o vinculador dinâmico da Apple, conhecido como dyld, usa tecnologias como o cache do vinculador dinâmico compartilhado e closures de inicialização para carregar aplicativos Mach-O com eficiência. Embora essas tecnologias tenham um efeito semelhante, o termo pré-vinculação se refere tecnicamente ao processo usado pelas primeiras versões do Mac OS X.
Teste seus conhecimentos