Sistemas operacionais
IMPLEMENTAÇÃO DE UMA NOVA CHAMADA DE SISTEMA NO LINUX
Alunos: Andrio Spich Hugo A. W. Schmitt
Introdução
A proposta deste trabalho de sistemas operacionais foi trabalhar com um sistema operacional real, no caso, o Linux. A idéia foi de aprender sobre o funcionamento interno do Linux, para que depois pudéssemos alterar o seu código fonte de modo a adicionar uma chamada de sistema simples e colocá-la em funcionamento. As chamadas de sistema são o modo padrão para que um programa de usuário possa utilizar os serviços do Sistema Operacional.
Ambiente para o trabalho
Nos laboratórios de rede possuímos acesso em modo de superusuário ao Linux, no caso a distribuição Kurumin. Infelizmente estes não possuíam o código fonte do sistema, necessário para a recompilação do mesmo, e o laboratório de rede não possui acesso à Internet para que pudéssemos realizar o download do mesmo. A solução encontrada foi trabalharmos em casa. Utilizamos a distribuição Red Hat 9, com versão do kernel 2.4.20-8, arquitetura i386 (PC).
Recompilando o kernel
Antes mesmo de implementarmos a chamada, preferimos recompilar o kernel sem nenhuma modificação para nos assegurarmos de que quaisquer problemas que apareçam durante ao trabalho sejam relacionados realmente ao trabalho. O kernel do linux (quando estiver instalado) se encontra no diretório /usr/src. Utilizando a ferramenta de montagem make, efetuamos a compilação do kernel nas seguintes etapas:
make clean para remover quaisquer arquivos .o antigos. make config para configurar as opções para o nosso
kernel.(Poderíamos
executar
make menuconfig e realizar a
configuração toda (ou xconfig para um modo gráfico), mas como já possuímos um arquivo de configuração que funcionava, utilizamos
oldconfig para que se realize a configuração a partir do arquivo .config. make dep para verificar as dependências corretamente.
Aqui começa a compilação propriamente