2 SYSCALLs: O que são



Documentos relacionados
LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Criando uma System Call no Minix

Figura 01 Kernel de um Sistema Operacional

4 Estrutura do Sistema Operacional Kernel

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Tópicos em Sistemas Operacionais. Chamadas de Sistema. Islene Calciolari Garcia. Segundo Semestre de Instituto de Computação - Unicamp

Windows NT 4.0. Centro de Computação

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Boletim Técnico. Adição de campos à tabela Histórico do Status do Pneu (TQZ) Produto : Microsiga Protheus Manutenção de Ativos Versão 11

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

6 - Gerência de Dispositivos

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

FAT32 ou NTFS, qual o melhor?

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS

País(es) : Todos Banco(s) de Dados : Todos os relacionais homologados

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Compartilhando arquivos com o samba

SISTEMAS OPERACIONAIS

Algoritmos e Programação Estruturada

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

7 Processos. 7.1 Introdução

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Instalando o Debian em modo texto

Boletim Técnico. Esta melhoria depende de execução do update de base U_UPDATF, conforme Procedimentos para Implementação.

ESTUDO DE CASO WINDOWS VISTA

Boletim Técnico. Esta melhoria depende de execução do update de base U_UPDPMS, conforme Procedimentos para Implementação.

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

Laboratório de Sistemas Operacionais

Boletim Técnico. Campos obrigatórios nas guias de solicitação do Portal

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

LINGUAGEM C UMA INTRODUÇÃO

VITOR, LUCÉLIA WIKBOLDT, NATANIEL AFONSO RELATÓRIO FINAL DE PROJETO FERRAMENTAS DE DIAGNÓSTICOS HIREN S CD

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

DCC 003 Algoritmos e Estruturas de Dados I Tutorial de instalação do GCC e do TextPad

Instalação do IBM SPSS Modeler Server Adapter

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

MANUAL PARA USO DO SISTEMA

Web Services. Autor: Rômulo Rosa Furtado

SEGURANÇA DO WINDOWS Análise sobre as APIs. Por: Fergo

Introdução. O que é o Registro do Windows

Introdução a Java. Hélder Nunes

Boletim Técnico. Esta melhoria depende de execução do update de base UPDTEC350, conforme Procedimentos para Implementação.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Mac OS X Felipe Gomes Lacerda Pedro Garcia Freitas 23 de novembro de 2009

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

FundamentosemInformática

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Sistema Operacional LINUX

Oficina de Inclusão Tecnológica Windows Live Skydrive

Sistemas Operacionais

Esta melhoria depende de execução do update de base updtmk58 e atualização do TOTVS CTI LINK conforme Procedimentos para Implementação.

Virtualização Gerencia de Redes Redes de Computadores II

Boletim Técnico. País(es) : Brasil Banco(s) de Dados : Todos Relacionais

Desenvolvendo Websites com PHP

Manual Administrador - Mídia System

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Pesquisa e organização de informação

Laboratório de Redes. Professora Marcela Santos

STK (Start Kit DARUMA) Procedimento de Instalação da FS700/MACH Conexão USB

Operador de Computador. Informática Básica

Controle de Alocação de Carga no Planejamento Operacional

Emissão de Cupons Fiscais usando ECF-IF

Estudo de Caso 2: Windows Vista

Sistemas Operacionais

País(es) : Brasil Banco(s) de Dados : Todos relacionais

Manual Captura S_Line

Boletim Técnico. Esta melhoria depende de execução do update de base UPDOFIHJ, conforme Procedimentos para Implementação.

MUDANÇAS NA ISO 9001: A VERSÃO 2015

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.

Guia Sphinx: instalação, reposição e renovação

Sistema de Digitalização e Gerenciamento de Arquivos On-Line

Sistemas Operacionais

Manual SAGe Versão 1.2 (a partir da versão )

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Busca das Sequências de Abastecimento nos Processos de Entrada e Saída WMS

Manual de Instalação

HOW TO. Instalação do Firewall 6.1 Software

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Ajuda das opções Fiery 1.3 (cliente)

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Wake on Lan. Para que esta função seja realizada devem ser atendidos os seguintes pré-requisitos:

Boletim Técnico. Relacionamento Ocorrência e Família de Bens

Transcrição:

Trabalho de Software Básico - Turma 2010-1 Nome: Francisco Panis Kaseker GRR20071909 Título: Explicação e implementação de uma SYSCALL Data: 30/06/2010 1 Introdução Basicamente uma SYSCALL é uma chamada da aplicação feito ao Kernel do sistema operacional. Essa chamada executa alguma rotina no sistema, mas dentro da camada do Kernel. A segunda seção explicará com maior profundidade do que tratam as SYSCALLs (história, exemplos etc) e, por fim, a terceira tratará de explicar como adicionar uma chamada ao sistema no Linux. 2 SYSCALLs: O que são 2.1 História Devido a necessidade de alguns aplicativos precisarem obter determinados ações ou resultados do sistema operacional sem para isso terem de rodar sob os privilégios do modo root, as SYSCALLs vieram para suprir essa necessidade sem para isso diminuir a segurança do sistema operacional. 2.2 Porque usá-las Essencialmente para garantir segurança ao sistema ao não permitir que os aplicativos tenham que rodar sob os privilégios do root, mas que possam desempenhar suas funções no sistema normalmente. 1

2.3 Exemplos Nos sistemas UNIX-like nós temos a POSIX que desempanhm diversas funções (como, por exemplo, open, read, write, close, wait, exec, fork, exit kill etc). Nos sistemas baseados em Windows, temos a WIN32, somente implementadas pela Microsoft. Parte delas está descrita na documentação da Microsoft e outra parte não. 2.4 Implementaçõs mais comuns As chamadas ao sistema possuem diversas utilidades atualmente. Na parte de controle de processos, por exemplo, temos a criação ou fechamento de um processo ou alocação e liberação de memória. Para o gerenciamento de arquivos, temos a abertura, fechamento, escrita ou leitura de arquivos. Há ainda chamadas ao sistema para envio de dados na rede, gerenciamento de drivers (hd, cd, dvd etc) e tantas outras funções cujo controle é somente do sistema operacional ou do root. 2.5 O modelo POSIX O modelo POSIX é uma padronização de chamadas do sistema para tentar garantir a portabilidade de um código em diferentes sistemas operacionais. O modelo POSIX é seguido pelos sistemas Unix-like, porém isso não é uma regra. O sistema FreeBSD, por exemplo, tem mais que o dobro de SYSCALLs que o definido pela POSIX. 2.6 O modelo WIN32 Essa API é desenvolvida para o sistema operacional Windows, da Microsoft. Ela abrange desde os sistemas 16bits até os 64bits do seu portfólio. Embora a WIN32 seja um modelo para fornecer recursos do sistema operacional aos aplicativos, ela permite que outras API s tenham acesso diretamente aos recursos de hardware do sistema, especialmente para hardware gráfico (através 2

da win32k.sys) e de rede. 3 Implementando uma SYSCALL Será implementado uma SYSCALL no Kernel Linux x86 que tem a função de exibir quantas vezes ela foi chamada. Será usado uma variável global como contador e a SYSCALL terá de somar o valor um a essa variável global sempre que for chamada. Todo printk ( printf do Kernel ) será ligo no seguinte log: /var/log/syslog A SYSCALL aqui implementada foi a de número 339. 3.1 Compilando o Kernel Foi utilizado o tutorial abaixo para compilar o Kernel; Importante: O autor do artigo do site abaixo referenciado é o mesmo autor desse trabalho. http://gerencievocemesmo.com.br/site/?p=281 3.2 Implementando uma SYSCALL no Linux x86 1. Baixar o Kernel e extraí-lo em algum lugar; Usei o /usr/src/. 2. Para facilitar, criei um link simbólico para usar o path /usr/src/linux como source do Kernel. 3. Crie um arquivo chamado minhasys.c em /usr/src/kernel/minhasys/. O seu conteúdo será o seguinte: #i n c l u d e <l i n u x / l i n k a g e. h> asmlinkage i n t sys minhasys ( ) { MINHAVARIAVELGLOBAL++; p r i n t k ( CHAMADA %d VEZES! \ n, MINHAVARIAVELGLOBAL) ; return 0 ; } 3

4. Agora vamos modificar alguns arquivos para tornar a nova SYSCALL disponível ao Kernel. arquivo: /usr/src/linux/arch/x86/include/asm/unistd 32.h adicione na ultima linha: #define NR minhasys NUMERO Substitua NUMERO pelo último número do define da lista incrementado de 1. arquivo: /usr/src/linux/arch/x86/include/asm/syscalls.h adicione ao fim da lista: asmlinkage int sys helloworld(); arquivo: /usr/src/linux/arch/x86/kernel/syscall table 32.c adicione:.long sys minhasys arquivo: /usr/src/linux/makefile linha original: core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ nova linha: core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ minhasys/ 5. Agora crie um arquivo chamado Makefile dentro do diretório minhasys com o seguinte conteúdoo: obj-y := minhasys.o 6. O contador (variável int MINHAVARIAVELGLOBAL) foi declarado dentro da syscall como static, assim a declaração será feita uma única vez e o valor não será perdido. 7. Agora é só compilar o Kernel. 4 Dicas adicionais O NUMERO de uma SYSCALL pode ser qualquer uma dentro do formato (int), desde que já não esteja sendo usada. No how-to acima a syscall foi colocada dentro de um arquivo separado, mas poderia ter sido incluída facilmente dentro do arquivo kernel/sys.c, junto as outras SYSCALL; Fazendo isso, não é necessário criar ou modificar nenhum Makefile. 4

5 Referências http://macboypro.wordpress.com/2009/05/15/adding-a-custom-systemcall-to-the-linux-os/ http://gerencievocemesmo.com.br/site/?p=281 http://www.linuxchix.org/content/courses/kernel hacking/lesson8 http://ubuntuforums.org/attachment.php?attachmentid=149947&d=1268472461 http://en.wikipedia.org/wiki/system call http://pt.wikipedia.org/wiki/posix http://en.wikipedia.org/wiki/windows API http://blog.veiga.eti.br/niveis-de-log-do-printk-para-depurar-o-kernel-pelaconsole/ 5