Diferença entre Linker e Loader

Índice:

Diferença entre Linker e Loader
Diferença entre Linker e Loader

Vídeo: Diferença entre Linker e Loader

Vídeo: Diferença entre Linker e Loader
Vídeo: What are Linker and Loader | Difference between Linker and Loader | Dr. Kapil Govil 2024, Novembro
Anonim

Key Difference – Linker vs Loader

Um programa de computador é usado para dar instruções ao computador. Ele é escrito usando uma linguagem de programação específica. Linguagens de programação como C, Java são linguagens de programação de alto nível e são compreensíveis por humanos, mas não pelo computador. Portanto, um programa de alto nível é convertido em linguagem de máquina usando um tradutor de linguagem. Um programa escrito usando uma linguagem de alto nível é um código-fonte. Após a conversão, o código traduzido é chamado de código objeto. O vinculador e o carregador são dois programas de software usados para execução do programa. Este artigo discute a diferença entre Linker e Loader. Linker é o software que vincula o código objeto com arquivos adicionais, como arquivos de cabeçalho e cria um arquivo executável com extensão.exe. O carregador é o software do sistema que carrega o arquivo executável gerado pelo vinculador na memória principal. Essa é a principal diferença entre Linker e Loader.

O que é Linker?

Um programa de computador é um conjunto de instruções dadas a um computador para realizar uma determinada tarefa. Um programa de computador pode ser escrito usando uma linguagem de programação. A maioria das linguagens de programação são programação de alto nível. Eles são facilmente compreensíveis e legíveis pelo programador. Esses idiomas seguem uma sintaxe semelhante ao idioma inglês. Alguns exemplos de linguagens de alto nível são Java, C e Python. Um programa escrito usando uma linguagem de programação de alto nível é conhecido como código-fonte, arquivo-fonte ou programa-fonte. A extensão do código fonte depende da linguagem com a qual foi desenvolvido. Se o código-fonte estiver escrito em C++, a extensão do arquivo será.cpp. Se o código-fonte estiver escrito em Python, a extensão será.py.

Até o código fonte é compreensível pelo programador; não é compreensível pelo computador. Portanto, o código-fonte deve ser convertido em formato compreensível por máquina usando um tradutor de idioma. Pode ser um compilador ou um interpretador. O código traduzido é conhecido como código objeto. O código objeto está em linguagem de máquina. Consiste em zeros e uma vez. O computador pode entender diretamente o código do objeto. Tem a extensão.obj. Se houver um código-fonte como Test.c, ele passará pelo compilador e o código convertido se tornará Test.obj.

Linker é o software que vincula o código objeto com arquivos adicionais, como arquivos de cabeçalho e cria um arquivo executável com extensão.exe. O programa pode ter usado funções internas. As funcionalidades para essas funções internas estão nos arquivos de cabeçalho. De acordo com o exemplo explicado acima, o código do objeto que é Test.obj é adicionado com os arquivos de cabeçalho necessários usando o Linker. Ele cria um novo arquivo conhecido chamado Test.exe. É um arquivo executável. Portanto, é executável pelo computador.

O que é Loader?

Um programa que deve ser executado deve ser colocado na memória. O vinculador vincula o código do objeto e os arquivos de cabeçalho e gera o arquivo executável. O carregador é o software do sistema que carrega o arquivo executável gerado pelo vinculador na memória principal. Ele aloca o espaço de memória para o módulo executável na memória principal. Portanto, um carregador é uma parte do sistema operacional responsável por carregar programas e bibliotecas.

Diferença entre Linker e Loader
Diferença entre Linker e Loader

Figura 01: Ordem em que o Código Fonte é carregado na Memória

Carregar um programa envolve várias etapas. Envolve a leitura do conteúdo do arquivo executável que contém a instrução do programa na memória e também a execução das tarefas de preparação necessárias para executar o arquivo executável. Após a conclusão do carregamento, o sistema operacional inicia o programa passando o controle para o código do programa carregado. Sistemas de computador especiais, como sistemas incorporados, geralmente não possuem carregadores. O código é executado diretamente pela ROM.

Qual é a relação entre Linker e Loader?

A saída do Linker vai para o Loader

Qual é a diferença entre Linker e Loader?

Linker vs Loader

Linker é o software que vincula o código objeto com arquivos adicionais, como arquivos de cabeçalho e cria um arquivo executável com extensão.exe. O loader é o software do sistema que carrega o arquivo executável gerado pelo linker para a memória principal.
Entrada
O vinculador recebe a saída do tradutor de idioma, que é o código do objeto. O carregador pega a saída do linker, que é o arquivo executável.
Funcionalidade
O linker vincula o código do objeto e os arquivos de cabeçalho e gera o arquivo executável. O carregador carrega o arquivo executável obtido do linker para a memória principal.

Resumo – Linker vs Loader

Linker e Loader são dois componentes de software relacionados à execução do programa. Este artigo discutiu a diferença entre o Linker e o Loader. Linker é o software que vincula o código objeto com arquivos adicionais, como arquivos de cabeçalho e cria um arquivo executável com extensão.exe. O carregador é o software do sistema que carrega o arquivo executável gerado pelo vinculador na memória principal. Essa é a diferença entre Linker e Loader.

Recomendado: