Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2023

Sistemas OperacionaisLinux
Código
vu197277
Banca
VUNESP
Órgão
UNICAMP
Ano
2023
Cargo
PTIC ( )
O utilitário make do sistema operacional Linux utiliza, por padrão, um arquivo de informações que determina como arquivos a serem produzidos a partir do código-fonte de um projeto, tais como executáveis, devem ser gerados. O nome desse arquivo é:
  1. Amakefile
  2. Bmaker
  3. Cmakeconfig
  4. Dmakespec
  5. Emakedef
Revelar gabarito e comentário

GabaritoA — makefile

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

O utilitário make e o arquivo makefile

Gabarito: letra A. O utilitário make, amplamente utilizado em ambientes Linux/Unix para automatizar a compilação de projetos, procura por padrão um arquivo chamado makefile (ou Makefile), que contém as regras e dependências para gerar os artefatos finais, como executáveis. As demais alternativas (maker, makeconfig, makespec, makedef) não correspondem ao nome padrão desse arquivo de configuração.

O make é uma ferramenta de automação de build que existe desde os primórdios do Unix e é essencial no desenvolvimento de software, especialmente em projetos escritos em linguagens como C e C++. Ele funciona lendo um arquivo de descrição que define regras: cada regra especifica um alvo (target), as dependências (pré-requisitos) e os comandos necessários para construir o alvo a partir das dependências. O grande diferencial do make é sua capacidade de verificar timestamps: se um arquivo de dependência foi modificado mais recentemente que o alvo, o make reexecuta os comandos da regra; caso contrário, ele considera o alvo atualizado e não faz nada. Isso evita recompilações desnecessárias e acelera drasticamente o ciclo de desenvolvimento em projetos grandes.

O arquivo que o make procura por padrão é o makefile (ou Makefile, com 'M' maiúsculo, que é a convenção mais comum em projetos). A busca segue uma ordem específica: o make procura por GNUmakefile, depois makefile e, por fim, Makefile no diretório atual. Na prática, a convenção mais adotada é Makefile, mas o nome makefile (minúsculo) também é reconhecido e é o que a questão cobra. É possível especificar um arquivo com nome diferente usando a opção -f (por exemplo, make -f meu_arquivo.mk), mas, sem essa opção, o comportamento padrão é a busca pelos nomes citados.

A pegadinha desta questão é puramente de memorização do nome do arquivo. A banca oferece alternativas que parecem plausíveis por começarem com "make", mas que não existem no contexto do utilitário. O candidato que conhece o básico do make não tem dificuldade, mas quem nunca viu a ferramenta pode ser tentado a escolher uma opção que soe como um "arquivo de configuração" genérico, como makeconfig. A distinção crucial é que makefile é o nome padrão e consagrado para o arquivo de regras do make, enquanto os outros nomes não têm significado no ecossistema da ferramenta.

Para fixar: o make é uma ferramenta de automação de build, e o makefile é o arquivo que descreve como construir o projeto. Essa relação é análoga a outras ferramentas de build modernas, como o pom.xml do Maven (Java), o package.json do npm (Node.js) ou o CMakeLists.txt do CMake — cada uma tem seu arquivo de configuração padrão, e o make tem o makefile. Guarde essa associação e a questão se resolve em segundos.

1Função
Automatiza compilação
Verifica timestamps
Evita recompilações desnecessárias
2Arquivo padrão
makefile
Makefile
GNUmakefile
3Ordem de busca
GNUmakefile
makefile
Makefile
4Arquivo alternativo
Opção -f
Utilitário make
LEVELsoulevel.com.br
Utilitário make: Função (Automatiza compilação, Verifica timestamps, Evita recompilações desnecessárias); Arquivo padrão (makefile, Makefile, GNUmakefile); Ordem de busca (GNUmakefile, makefile, Makefile); Arquivo alternativo (Opção -f)

Alternativa A — ✅ Correta ⟵ GABARITO

O utilitário make procura, por padrão, pelo arquivo makefile (ou Makefile) no diretório atual. Esse arquivo contém as regras de compilação e linkagem que determinam como os arquivos-fonte se transformam em executáveis ou outros artefatos. É exatamente o que o enunciado descreve: um arquivo de informações que determina como os arquivos devem ser gerados.

Alternativa B — ❌ Incorreta

maker não é um nome de arquivo reconhecido pelo make. Não existe nenhuma convenção ou documentação do utilitário que utilize esse nome. O candidato pode confundir com a ideia de "algo que faz" (to make), mas não corresponde a nenhum arquivo real.

Alternativa C — ❌ Incorreta

makeconfig parece um nome plausível para um arquivo de configuração, mas não é o nome padrão usado pelo make. O make não procura por makeconfig; ele procura por makefile/Makefile. A confusão aqui é com a ideia genérica de "configuração", mas o make usa um nome específico e consagrado.

Alternativa D — ❌ Incorreta

makespec não é um nome de arquivo utilizado pelo make. Não há referência a esse nome na documentação da ferramenta. A terminação "spec" pode lembrar arquivos de especificação de outros contextos (como .spec do RPM), mas não se aplica ao make.

Alternativa E — ❌ Incorreta

makedef também não é um nome de arquivo padrão do make. A terminação "def" pode lembrar arquivos de definição (como .def do Windows), mas não tem relação com o utilitário make no Linux.

Gabarito: letra A

Link permanente: /questoes/vu197277