O documento discute a manipulação de dispositivos em sistemas operacionais Linux, incluindo identificação de hardware através de arquivos no diretório /dev, montagem de dispositivos como CD-ROMs e pendrives para uso, e desmontagem quando necessário remover a mídia.
Boas práticas de programação com Object Calisthenics
Dispositivos de Bloco
1. Instalação e configuração de Sistemas Operacionais de Redes
Manipulação de
Dispositivos
Profª Ivani Nascimento
2. Apresentação
•Dispositivos de blocos são todos os dispositivos que podem
enviar/transmitir dados em blocos de tamanho fixo.
•Um dispositivo de bloco famoso, é o HD, que pode ser IDE, SCSI,
etc. Além dele, temos como exemplo de dispositivos de blocos
pendrives, disquetes, cdrom.
•Os dispositivos de bloco mencionados, representam uma
interface para o disco.
3. Apresentação
• Em sistemas Windows, desde uma partição no disco rígido até um
pendrive, o acesso a eles é feito utilizando a idéia de "unidade" ou
"driver", como por exemplo unidade C: ou drive C:.
• Já em sistemas GNU/Linux existe o conceito de dispositivos, e,
praticamente tudo que está na máquina é tratado como sendo um
dispositivo que pode ser acessado pelo seu arquivo localizado no
diretório /dev.
4. Apresentação
• O diretório /dev consiste em arquivos especiais, chamados de
arquivos de dispositivos, e é onde encontramos os arquivos de
dispositivos de bloco e também arquivos dispositivos de:
• caracter - são usados como correspondentes de dispositivos cujos
dados são transmitidos na forma de um caracter por vez.
• fifo - também conhecido como pipe nomeado, é utilizado para realizar
a comunicação entre processos em uma mesma máquina.
• socket - utilizado para criar um ponto de comunicação entre
processos, do tipo "cliente-servidor".
5. Apresentação
• Por exemplo, se um determinado programa precisar ler uma
informação da porta serial, basta que ele abra o arquivo /dev/ttyS0
para leitura, que é um arquivo de dispositivo especial que, quando
acessado, lê o conteúdo do dispositivo em questão.
• Sendo assim, podemos dizer que os arquivos de dispositivos são o
nome pelo qual um determinado dispositivo é conhecido pelo
sistema.
6. Identificando o hardware
• Para saber qual o tipo de arquivo de dispositivo, devemos usar o
comando ls com o parâmetro -l para listar com detalhes. Nos
exemplos a seguir, serão listados os arquivos de dispositivo do tipo
bloco, caracter, fifo e socket:
• Listando arquivos de dispositivos de bloco:
# cd /dev/
# ls -l | grep ^b
brw-rw—- 1 root cdrom 22, 0 2008-08-08 00:13 hda
brw-rw—- 1 root disk 8, 0 2008-08-08 00:13 sda
7. Identificando o hardware
• Listando arquivos de dispositivos de caracter:
# ls -l | grep ^c
crw-rw—- 1 root dialout 4, 64 2008-08-08 00:13 ttyS0
crw-rw—- 1 root dialout 4, 65 2008-08-08 00:13 ttyS1
• Listando arquivos de dispositivos de fifo:
# ls -l | grep ^p
prw——- 1 root root 0 2008-08-08 00:13 initctl
prw-r—– 1 root adm 0 2008-08-08 22:05 xconsole
8. Identificando o hardware
• Listando arquivos de dispositivos de socket:
# ls -l | grep ^s
srwxrwxrwx 1 root root 0 2008-08-08 00:14 gpmctl
srw-rw-rw- 1 root root 0 2008-08-08 00:14 log
9. Identificando o hardware
• Considerando os dispositivos SCSI conectados à máquina, o nome
deles é determinado conhecendo qual controladora ele está
conectado e qual partição deseja acessar.
• Por exemplo, /dev/sda representa todo o disco, mas a terceira
partição primária desse disco, será o /dev/sda3:
10. Usando os dispositivos
• Para acessar os dados que estão em um dispositivo, no Linux
usamos o conceito de montar; assim, quando colocamos um cd no
computador, por exemplo, vamos ‘montar’ o cd, isto é, deixar os
dados que estão no cd disponíveis para uso.
• O comando utilizado para montar dispositivos é o mount, e sua
sintaxe básica é:
mount dispositivo ponto_de_montagem
• Onde:
montar (mount) o que? (dispositivo) onde? (ponto_de_montagem)
11. Usando os dispositivos
• Exemplo de uso do dispositivo CD-ROM.
• O primeiro passo é saber qual é dispositivo em que o CD-ROM se
encontra. Quando o Linux inicializa, aparecem diversas mensagens
na tela.
• São mensagens referentes aos hardwares encontrados (cd, hd, etc).
Para checar as tais mensagens depois que o Linux inicializa,
utilizamos o comando dmesg:
# dmesg | more
12. Usando os dispositivos
• Ou então, para ser mais específico, pode-se filtrar a pesquisa da
saída do dmesg, procurando por ATAPI, que é o protocolo que
gerencia o drive do CD-ROM:
# dmesg | grep -i atapi
hda: MATSHITADVD-RAM UJ-850S, ATAPI CD/DVD-ROM drive
hda: ATAPI 24X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB
Cache, UDMA(33)
13. Usando os dispositivos
• Outra maneira de descobrir o dispositivo é consultar o diretório
/proc, que terá a lista de todos os dispositivos que estão ativos no
Linux; sabendo que o leitor de CD é IDE, basta entrar no diretório
/proc/ide e listar seu conteúdo:
# cd /proc/ide/
# ls
drivers hda ide0
14. Usando os dispositivos
# cd hda/
# ls
capacity driver identify media model settings
# cat model
MATSHITADVD-RAM UJ-850S
• Sabendo qual o dispositivo, é possível montar o CD (/dev/hda) em
/media/cdrom:
# mount /dev/hda /media/cdrom/
mount: block device /dev/hda is write-protected,
mounting read-only
15. Usando os dispositivos
• Para verificar se o dispositivo foi montado corretamente, pode-se
usar os comandos mount e df:
# mount
/dev/hda on /media/cdrom0 type iso9660 (ro)
# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda 6,8M 6,8M 0 100% /media/cdrom
16. Usando os dispositivos
• O comando df vem de disk free; além dos dispositivos que estão
montados, ele mostra o tamanho e o uso em %.
• A opção -h do comando df, é para mostrar o resultado em formato
humano (M – megas, G, gigas).
17. Desmontando os dispositivos
• Quando um determinado dispositivo é montado, no exemplo o cd-
rom, só será possível retirar a mídia após desmontar a mesma. Para
essa operação, é utilizado o comando umount:
# umount /media/cdrom
• Lembrando que, para desmontar o cd, não podemos estar dentro
do diretório onde o cd foi montado! Por exemplo, você montou o
cd conforme o exemplo. Para acessar o conteúdo dele, deve entrar
no diretório onde foi montado (no caso, /media/cdrom).
18. Desmontando o dispositivo
• Quando quiser desmontar, você terá que sair do diretório
/media/cdrom, caso contrário, receberá mensagem que o
dispositivo está ocupado:
# cd /media/cdrom
# umount /media/cdrom
umount: /media/cdrom: device is busy
umount: /media/cdrom: device is busy
19. Desmontando o dispositivo
• No exemplo acima, não foi possível desmontar o cd pois estava no
diretório onde o dispositivo foi montado.
• Para desmontar, é necessário sair do diretório e executar o
comando umount novamente:
# cd
# umount /media/cdrom
20. Referências
MORIMOTO, Carlos E.. Linux, guia prático. Porto Alegre: Sul Editores,
2009.
FERREIRA, Rubem E.. Linux: guia do administrador do sistema. São
Paulo: Novatec, 2008.
MOTA FILHO, João Eriberto. Descobrindo o Linux: entenda o sistema
operacional GNU/linux. São Paulo: Novatec, 2007.
21. Referências
RIBEIRO, Uirá, Certificação Linux, 1ª Ed, Rio de Janeiro, Axcel Books,
2004.
Certificação Linux LPI- Nível 1 Exames 101 e 102. Vários, 1ª Ed, São
Paulo, Alta Books.
NORTON, Peter; GRIFFITH, Arthur. Guia Completo do Linux. Tradução
Sérgio Facchim – Complete Guide to Linux. São Paulo, Berkeley,
2000.