Você está na página 1de 7

Incluir chamada de sistema em um kernel Linux

1 passo: baixa o Kernel no site https://www.kernel.org/, a verso do kernel deve ser


compatvel com a distribuio instalada/emulada no computador utilizado.
2 passo: extrai o arquivo na pasta de downloads.
3 passo: entra na pasta do arquivo extrado pelo terminal.
4 passo: abre o arquivo com o comando gedit home/gedais/Downloads/linux3.4.112/arch/x86/syscalls/syscall_32.tbl'

5 passo: depois de executar esse comando, ele abre o arquivo (syscall_32.tbl) com as

chamadas de sistema do computador.

6 passo: adiciona no final a linha:


349
i386 opsyscall
sys_opsyscall

7 passo: usa o comando gedit include/linux/syscalls.h para abrir o arquivo syscalls.h

8 passo: No final do arquivo, antes do endif, adiciona a linha:


asmlinkage long sys_opsyscall(const char *test);

9 passo: usa o comando mkdir opsyscall no terminal para criar um diretrio dentro da
pasta do kernel, este diretorio conter o cdigo da chamada de sistema.

10 passo: cria o arquivo da chamada de sistema com o comando gedit opsyscall/syscall.c


11 passo: insira o codigo da chamada de sistema:

//Printk and KERN_* macros


#include <linux/hernel.h>
#include <linux/syscalls.h>
//O codigo da chamada de sistema
asmlinkage long sys_opsyscall(const char *test){
printk(KERN_ALERT Trabalho de SO, mostre esse alerta: %s\n, test);
//0 em caso de sucesso
return 0;
}

12 passo: usa o comando gedit opsyscall/Makefile para criar um novo arquivo (Make)
dentro da pasta da nossa chamada de sistema.

13 passo: Digite no arquivo aberto:


# Include the object in the kernel core
obj-y := syscall.o
14 passo: use o comando gedit Makefile
15 passo: Pesquise core-y no arquivo aberto e verifique se o trecho igual ao da imagem:

16passo: adicionar (espao) e digitar opsyscall/ na linha core-y := usr/

17 passo: digitar o comando make no terminal para compilar o kernel com a nova
chamada includa
18 passo: usar o comando make install para substituir o cdigo do sistema pelo kernel
recm compilado
19 passo: reinicie o sistema para as alteraes fazerem efeito
20 passo: criar um programa que use a sua chamada de sistema

21 passo: Se tudo ocorreu como descrito ser mostrada a mensagem na tela do log do
sistema a mensagem designada na funo da system call(chamada de sistema).

Link ensinando a compilar o kernel para o ubuntu


https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
Dificuldades encontradas: achar a verso do kernel compatvel com a verso do
computador para que no ocorra nenhum erro por conta da verso do software causando
algum erro no processo e encontrar outros materiais de apoio alm do fornecido no moodle,
visto que o material disponvel via modle no esclarecia muito bem o que devia ser feito.