Ligador
Em computação, um ligador, vinculador ou editor de ligação (do inglês, linker ou link editor) é um programa utilitário que recebe um ou mais arquivos objeto gerados por um compilador e combina-os em um único arquivo executável, arquivo de biblioteca ou outro arquivo 'objeto'.[1]
Uma versão mais simples que escreve sua saída diretamente na memória é chamada de carregador, desta forma o carregamento é normalmente considerado um processo separado.[2]
Esquema de um Ligador
[editar | editar código-fonte]O processo de linkedição, em geral, é um processo de dois passos. O ligador recebe como entrada um conjunto de arquivos objecto, bibliotecas e parâmetros na linha de controle e produz como resultado um arquivo objecto de saída. Neste passo é criada uma tabela de segmentos listando todos os segmentos definidos nos arquivos-fonte e uma tabela de símbolos com todos os símbolos importados ou exportados. O ligador atribui localizações numérica para cada símbolo, determina o tamanho e a localização dos segmentos no espaço de endereços de saída. O segundo passo usa a informação coletada no primeiro passo para controlar a realização da linkedição de fato. Neste passo se ajustam os endereços de memória no código, refletindo os endereços de segmentos realocados, e se escreve o código realocado no arquivo de saída.
Ver também
[editar | editar código-fonte]Referências
- ↑ Levine, John R. (2000). Linkers & Loaders. San Francisco: Morgan Kaufmann Publishers. 256 páginas. ISBN 1-55860-496-0
- ↑ IBM Corporation (1972). IBM OS Linkage Editor and Loader (PDF). [S.l.: s.n.]
Ligações externas
[editar | editar código-fonte]- Leon Presser, John R. White: Linkers and Loaders. ACM Computing Surveys, Volume 4, Number 3, September 1972, pp. 149–167 [1]
- David Salomon, Assemblers and Loaders. 1993 [2]