220 likes | 329 Views
Estudo do MINIX: Parte 2. PCS-2042 –Sistemas Operacionais – 2ª etapa do projeto Erick Butler Poletto Felipe Giunte Yoshida Gabriel Iseppe Porto Geovandro Carlos C. F. Pereira Gabriel Augusto de Resende Hugo Pessoa de Barauna. Sistemas Operacionais. Pergunta 1:.
E N D
Estudo do MINIX: Parte 2 PCS-2042 –Sistemas Operacionais – 2ª etapa do projeto Erick Butler Poletto Felipe Giunte Yoshida Gabriel Iseppe Porto Geovandro Carlos C. F. Pereira Gabriel Augusto de Resende Hugo Pessoa de Barauna
Sistemas Operacionais Pergunta 1: Como funciona o mknod? O que é major number e minor number ao se criar um driver?
Sistemas Operacionais mknod • Função: • Criar novos arquivos especiais (arquivos que representam dispositivos) • Arquivos especiais: • de Caractere • de Bloco
Sistemas Operacionais mknod Uso: mknod /dev/lpx c 18 0
Sistemas Operacionais Major e Minor number • Major Number • Identifica driver • Index da tabela de dispotivos • Minor Number • Distinguir diferentes dispositivos que usam mesmo driver
Sistemas Operacionais Major e Minor number /usr/src/servers/fs/dmap.c
Sistemas Operacionais Major e Minor number
Sistemas Operacionais Como mknod funciona?
Sistemas Operacionais Pergunta 2: Crie /dev/lpx com um major number diferente de /dev/lp. Recompile o driver da porta paralela para que ele fique associado ao major number dado por /dev/lpx.
Sistemas Operacionais Criando /dev/lpx: mknod /dev/lpx c 18 0
Sistemas Operacionais Qual abordagem? Encotramos duas abordagens: Hard Code On the fly
Sistemas Operacionais Hard Code Associar driver e dipositivo no boot, COMO?
Sistemas Operacionais Hard Code: caminho das pedras 1 Adicionar o dipositivo na tabela de dispositivos Colocar o driver na tabela de processos inicializados no boot (/usr/src/kernel/table.c) Como associar o drive carregado com o dipositivo? ROTINA map_driver(major, proc_nr, style), do arquivo /usr/src/servers/fs/dmap.c
Sistemas Operacionais Hard Code: caminho das pedras 2 Adicionar o dipositivo na tabela de dispositivos Mudar o arquivo /etc/rc ou o /usr/src/servers/init/init.c?
Sistemas Operacionais On the fly service up /usr/sbin/printer – dev /dev/lpx Não tem outro passo, é só isso!!!
Sistemas Operacionais Como funciona o service up? Service: Utilitário que prove interface com o RS (Reincarnation Server)
Sistemas Operacionais Reincarnation Server (RS) Função: Transformar ordinary user processes em system processes
Sistemas Operacionais Como funciona service up?
Sistemas Operacionais Teste final mknod lpx c 18 0 2. service up /usr/sbin/printer -dev /dev/lpx 3. echo HUGOBARAUNA > /dev/lpx
Sistemas Operacionais Teste final
Sistemas Operacionais Teste final
Sistemas Operacionais Hack it!