Qual é a diferença entre o carregador do linker e o compilador

Índice:

Anonim

A principal diferença entre o carregador do linker e o compilador é que o o vinculador combina um ou mais arquivos-objeto gerados pelo compilador em um único arquivo executável. Enquanto isso, um carregador coloca os programas na memória e os prepara para execução enquanto o compilador converte o código-fonte em código-objeto.

Um programa de computador é uma coleção de instruções que executam uma tarefa específica quando o computador a executa. Um software de sistema é um tipo de programa de computador que fornece uma plataforma para outro software. Linker, loader e compilador são três softwares de sistemas associados à programação de computadores.

Compilador, Linker, Carregador

O que é um compilador

Um programa é um conjunto de instruções para realizar uma determinada tarefa. Também é conhecido como código-fonte. O programador pode entender o código-fonte, mas a CPU não consegue entendê-lo. Portanto, é necessário converter o código-fonte em um formato compreensível por máquina.

Figura 1: Compilador

Um compilador é um software especial usado neste processo. Ele converte o código-fonte em código-objeto. Este código-objeto é um código intermediário. A CPU não pode executá-lo diretamente.

O que é um Linker

Depois de converter o código-fonte em código-objeto, o vinculador executa a tarefa de vinculação. Ele pega um ou mais arquivos-objeto gerados pelo compilador e os combina para gerar um arquivo executável.

Figura 2: Linker

Além disso, ele combina os códigos de objeto com bibliotecas. Por exemplo, em um programa C, se houver a função sqrt () para calcular a raiz quadrada de um número, o vinculador vincula o programa à biblioteca matemática. Finalmente, a CPU pode ler e entender o arquivo executável gerado. Portanto, a CPU pode executar esse arquivo para realizar a tarefa definida no programa.

O que é um carregador

Um carregador localiza programas na memória e os prepara para execução. É um componente importante ao iniciar um programa. Inclui tarefas como ler o conteúdo do arquivo executável e colocar o arquivo na memória. Além disso, realiza as tarefas necessárias para preparar o arquivo executável para execução. Após a conclusão do carregamento, o sistema operacional inicia o programa passando o controle para o código do programa carregado.

Figura 3: Compilação

A maioria dos sistemas operacionais oferece suporte a carregadores para carregar programas. A maioria dos sistemas tem o carregador localizado na memória, enquanto outros que suportam memória virtual têm o carregador em uma região de memória paginável.

Diferença entre Linker Loader e Compiler

Definição

Um vinculador é um programa utilitário de computador que pega um ou mais arquivos-objeto gerados por um compilador e os combina em um único arquivo executável. Um carregador é uma parte de um sistema operacional responsável por carregar programas na memória. Um compilador é um software que transforma o código de computador escrito em uma linguagem de programação (código-fonte) em outra linguagem de programação (código-alvo). Portanto, isso explica a principal diferença entre o carregador do vinculador e o compilador.

Funcionalidade

Além disso, um vinculador combina vários códigos de objeto e os vincula a bibliotecas. Enquanto isso, um carregador prepara o arquivo executável para ser executado enquanto um compilador transforma o código-fonte em código-objeto. Portanto, essa é a diferença entre o carregador do vinculador e o compilador em termos de funcionalidade.

Conclusão

Em resumo, a diferença entre o carregador de vinculador e o compilador é que um vinculador combina um ou mais arquivos-objeto gerados pelo compilador em um único arquivo executável e um carregador coloca os programas na memória e os prepara para execução enquanto um compilador converte o código-fonte em código do objeto.

Referência:

1. “Linker (Computação).” Wikipedia, Wikimedia Foundation, 6 de outubro de 2018, disponível aqui.2. “Loader (Computing).” Wikipedia, Wikimedia Foundation, 10 de outubro de 2018, disponível aqui.3. "Compilador." Wikipedia, Wikimedia Foundation, 9 de outubro de 2018, disponível aqui.

Cortesia de imagem:

1. “Compilador ideal.” (CC BY-SA 3.0) via Commons Wikimedia2. “Linker” de Qef - Trabalho próprio de uploader, baseado na organização de um bitmap equivalente por Orderud (Domínio Público) via Commons Wikimedia3. “Screenshot-turbo51.com 2016-01-14 18-44-16” Por անհայտ - Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. ISBN 0-201-10088-6 (CC BY-SA 4.0) via Commons Wikimedia

Qual é a diferença entre o carregador do linker e o compilador