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 Como funciona o mknod? O que é major number e minor number ao se criar um driver? Sistemas Operacionais Pergunta 1: 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 mknod 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 Major e Minor number Sistemas Operacionais Como mknod funciona? 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 Pergunta 2: mknod /dev/lpx c 18 0 Sistemas Operacionais Criando /dev/lpx: Encotramos duas abordagens: 1. Hard Code 2. On the fly Sistemas Operacionais Qual abordagem? Associar driver e dipositivo no boot, COMO? Sistemas Operacionais Hard Code 1. Adicionar o dipositivo na tabela de dispositivos 2. Colocar o driver na tabela de processos inicializados no boot (/usr/src/kernel/table.c) 3. 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 1 1. Adicionar o dipositivo na tabela de dispositivos 2. Mudar o arquivo /etc/rc ou o /usr/src/servers/init/init.c? Sistemas Operacionais Hard Code: caminho das pedras 2 1. service up /usr/sbin/printer – dev /dev/lpx 2. Não tem outro passo, é só isso!!! Sistemas Operacionais On the fly Service: Utilitário que prove interface com o RS (Reincarnation Server) Sistemas Operacionais Como funciona o service up? Função: Transformar ordinary user processes em system processes Sistemas Operacionais Reincarnation Server (RS) Sistemas Operacionais Como funciona service up? 1. 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 Teste final Sistemas Operacionais Hack it!