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!
Download

Slide 1