Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Linux    

Dispositivos no Linux


Comentários  14
Visualizações  
192,062

Os dispositivos são uma coisa que temos que conhecer no Linux, senão agente se perde aos poucos nas configurações mais básicas. Por isso fiz esse tutorial tentando explicar algo sobre eles…

O que são dispositivos?

Um dispositivo é todo o componente de hardware, e do sistema operacional. Um dispositivo é “algo especial” que é compartilhado com o Kernel, ou seja, um exemplo de dispositivo são as impressoras, CD-ROMs, modems, portas, mouse, HDs, etc. No Linux, os dispositivos físicos são tratados como arquivos. Estes arquivos são um tipo especial no sistema de arquivos e se encontram no diretório /dev. Se você der um ls neste diretório, verá que existe um pouquínho de arquivos (Bota pouquinho nisso :)). Cada arquivo neste diretório corresponderá a um dispositivo de acordo com o seu tipo.

Se você usava DOS/Windows antes, você acessava o drive C:, lembra? No Linux não existe isso! Vai ser um dispositivo no lugar… Você vai usar isso o tempo todo, porque você vai mexer com mouse, com impressora, IDE’s, SCSI’s, etc. Então aqui vai alguns arquivos do /dev e seus respectivos dispositivos:

/dev/hdXX

Aqui é correspondete as Interfaces IDEs, ou seja, tudo que tiver conectado nos cabos IDEs :) Exemplos, podemos citar HD’s e CD-ROM’s. O xx significa qual IDE, onde o primeiro x corresponde a qual IDE, e o segundo x (opcional) corresponde a partição. Veja a tabela à seguir:

DispositivoDescrição
/dev/hdaIDE Primária Master
/dev/hda1Partição 1 da IDE Primária Master
/dev/hda2Partição 2 da IDE Primária Master
/dev/hdbIDE Primária Slave
/dev/hdb1Partição 1 da IDE Primária Slave
/dev/hdb2Partição 2 da IDE Primária Slave
/dev/hdcIDE Secundária Master
/dev/hdc1Partição 1 da IDE Secundária Master
/dev/hdc2Partição 2 da IDE Secundária Master
/dev/hddIDE Secundária Slave
/dev/hdd1Partição 1 da IDE Secundária Slave
/dev/hdd2Partição 2 da IDE Secundária Slave

Perceba aqui que cada hdx vai até os números 2, mas não é apenas até o 2, pode ir mais longe. Dependendo de quantas partições tiver o seu HD, pode ser 3, ou 4, ou 9 por exemplo.

/dev/fdX

Aqui é o dispositivo equivalente ao drive de disquete, onde o x corresponde a qual driver. Caso você tenha apenas um drive, esse drive vai ser o /dev/fd0. Se tiver 2 drives, o primeiro será /dev/fd0 e o segundo /dev/fd1, e por aí vai.

/dev/ttyX

Quando você se loga no seu Linux, você acaba de se logar nesse terminal. Ou seja, um terminal serve para voc6e se logar e usar uma shell (interpretador de comandos). O /dev/ttyX corresponde a cada terminal, onde X vai ser substituído pelo número do terminal (são dezenas se quiser). Pode ser /dev/tty1 (Terminal 1), /dev/tty3 (Terminal 3), /dev/tty8 (Terminal 8) e por aí vai… até você enjoar :)

Você também pode se deparar com /dev/ttypX. Neste caso é para terminais acessados por telnet/ssh.

/dev/ttySX

Portas seriais! Na versão 2.2.x do kerne, estas portas seriais correspondem ao modem, ao mouse, e outras coisas ligadas nas ‘COMs’. Veja a tabela:

DispositivoDescrição
/dev/ttyS0COM1 (Porta serial 1)
/dev/ttyS1COM2 (Porta serial 2)
/dev/ttyS2COM3 (Porta serial 3)
/dev/ttyS3COM4 (Porta serial 4)

Agora se você usa um kernel velho de versão anterior a 2.2.x, ao invés de ser /dev/ttySX, vai ser /dev/cuaX. Ou seja, você terá os equivalentes como /dev/cua0, /dev/cua1, /dev/cua2 e /dev/cua3. E estes dispositivos /dev/cuaX são usados para determinar os modems.

/dev/lpX

Corresponde a porta da impressora ou porta de um serviço paralelo. X é o número correspondente a porta… 0 = LPT1 por exemplo.

/dev/plipX

Esse dispositivo corresponde a uma conexão de cabo paralelo. O X será o número correspondente a porta, como no exemplo anterior.

/dev/console

Este é um dispositivo especial, simbolizando os consoles (terminais não-gráficos).

/dev/null

Este é um dispositivo nulo, ou seja, tudo que você mandar ou se referir a ele, será nulamente mandado para o inferno :)

Outros

Os dispositivos são muitos e listar todos eles aqui não seria tão legal assim. Você pode explorar o diretório /dev procurando saber sobre eles. Se você por acaso apagou um dispositivo e quer saber como criá-lo, utilize o script /dev/MAKEDEV. Basicamente você usa este script assim:

# /dev/MAKEDEV ttyS3

Isto irá criar o dispositivo ttyS3. Para mais informações sobre a criação de dispositivos, utilize a manpage do MAKEDEV ou do mknod. Na verdade o /dev/MAKEDEV é apenas um script para intermediar o usuário e o comando mknod… O mknod é o que faz o trabalho mais árduo :)

Montando os dispositivos

Primeiro eu espero que você tenha lido sobre o que é um dispositivo. Agora vamos saber como se usar um dispositivo, ou seja, um HD, um disquete, um CD-ROM, etc. O comando que usaremos aqui é o mount, que pelo próprio nome, podemos ver que ele serve para ‘montar’ dispositivos em um certo lugar.

Vamos falar primeiro sobre como montar o disco flexível. Para fazê-lo é o seguinte. O Linux trata todos os seus dispositivos como arquivos device, estes arquivos estão localizados no diretório “/dev”. Para o caso do disco flexível, o Linux trata como /dev/fdx, onde x é o número do dispostivo: o primeiro será fd0, o segundo será fd1, e assim por diante. Aqui no caso, estamos com um driver de disquete, que é o /dev/fd0. Para montar o disco flexível então, colocamos o disquete, e executamos o seguinte comando:

# mount /dev/fd0 /diretorio_onde_o_disco_vai_ser_montado

O diretório_onde_o_disco_vai_ser_montado tem que existir, e tem que estar totalmente vazio. Este diretório, que você pode nomear como quiser funciona como se você estivesse no disquete. Agora se você quer montar outro disquete, você terá que desmontar o disquete montado primeiro, para depois poder montar outro. Para o desmonte, usa-se o comando “umount”:

# umount /dev/fd0 (ou)
# umount /diretorio_onde_o_disco_esta_montado

Você pode também fazer o seguinte, criar um shell script, que se chama, por exemplo de ‘diskon’ (Para ativar) e ‘diskoff’ (Para desativar). Então para melhor utilização, coloque este arquivo em um diretório PATH, ou então coloque o PATH no diretório onde você quiser colocar os scripts.

Agora vamos montar uma partição. É o mesmo esquema de montar o disco flexível, só que o arquivo do dispositivo é diferente. Para partições em um HD IDE, os nomes dos dispositivos são /dev/hdxx, onde o primeiro x é a letra correspondente ao HD (na ordem a, b, c, d, e por aí vai), e o segundo x é correspondente ao número da partição. Para partições em um HD SCSI, os nomes dos dispositivos são /dev/sdxx, onde o primeiro x é a letra correspondente ao HD (na ordem a, b, c, d, e por aí vai), e o segundo x é correspondente ao número da partição. Se eu quero montar a partição /dev/hda2 (HD número 1, partição número 2), eu faço:

# mount /dev/hda2 /diretorio

E para desmontar, usa-se o comando umount:

# umount /dev/hda2 (ou)
# umount /diretorio

Existe também no comando mount, o parâmetro -t, que vai indicar que tipo de sistema de arquivos a partição usa (FAT32, FAT16, minix, ext2, UMSDOS, etc). Se você não colocar esta opção, o comando força uma compatibilidade para a montagem. O recomendado é colocar esta opção, pois às vezes o mount não consegue detectar qual o sistema de arquivos, e gera um erro. Um exemplo do uso da opção -t é:

# mount -t vfat /dev/hda2 /diretorio

Este comando montará uma partição FAT32 em /diretorio. Como eu disse anteriormente, utilizar-se de shell scripts facilita seu trabalho. Agora vamos montar um CD-ROM. O mesmo esquema, só que você deve saber qual o dispositivo referente ao seu CD-ROM, que tem como nome /dev/hdx, onde x é a letra correspondente à posição do CD-ROM na IDE. Para montar um exemplo, façamos:

# mount /dev/cdrom /mnt/cdrom

Para desmontar, a mesma coisa de sempre:

# umount /dev/cdrom (ou)
# umount /mnt/cdrom

Nota: Se você der uma olhada no arquivo /dev/cdrom, você verá que ele não é um dispositivo, e sim um link simbólico para o dispositivo correspondente ao CD-ROM (/dev/hdx). Isso quer dizer que você pode substituir o /dev/cdrom pelo /dev/hdx tranqüilamente, assim como pode também modificar o link simbólico para apontar para outro dispositivo.

Existe outro método de montagem muito mais prático do que os citados acima… É uma pré-configuração de montagem no arquivo /etc/fstab. Este arquivo contém as informações de montagem para os dispositivos e seus diretórios. Por exemplo, quando a sua distribuição inicia, ela procura no /etc/fstab para saber onde está a raiz do seu sistema, e vai montar no /. Também contém informações de montagem para os diretórios especiais como o /proc, e até mesmo para o uso da memória SWAP. Vejamos aqui o meu arquivo /etc/fstab como exemplo para estudarmos ele:

$ cat /etc/fstab
/dev/hda2        swap             swap       defaults         0  0
/dev/hda5        /                reiserfs   defaults         0  0
/dev/hda1        /boot            ext2       defaults         1  1
/dev/fd0         /mnt/floppy      auto       user,noauto      0  0
/dev/cdrom       /mnt/cdrom       iso9660    user,noauto,ro   0  0
none             /proc            proc       defaults         0  0
none             /dev/pts         devpts     gid=5,mode=620   0  0

Viu este exemplo? Por exemplo, peguemos a segunda linha. Esta segunda linha é a minha raiz, que está na partição /dev/hda5, será montada automaticamente (‘defaults’) no diretório “/” durante a inicialização. E esta partição tem o sistema de arquivos ReiserFS. Na primeira temos a montagem da memória SWAP… E vejamos a linha que começa com /dev/cdrom. Aqui facilita as coisas porque os parâmetros ‘user,noauto,ro’ significam que qualquer usuário pode montar o CD-ROM (user), não é montado automaticamente na inicialização (noauto) e é montado como somente leitura. Qual a diferença? O comando mount só pode ser usado pelo root, mas com essa opção no /etc/fstab, um usuário comum pode montar o cd-rom apenas com o comando “mount /mnt/cdrom”, ou “mount /dev/cdrom”. A sintaxe deste arquivo não é muito difícil, e vendo este exemplo aqui, você pode muito bem criar suas próprias configurações para dar mais praticidade no seu uso com os dispositivos no Linux! Mexa à vontade, mas nunca nas linhas que já vêm, pois se não o Linux pode não achar sua partição e poderá não conseguir iniciar o sistema, e você terá de bootar com um bootdisk para consertar isto… Então mexa, mas pense duas vezes antes de mexer :)


Comentários  14
Visualizações  
192,062


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

14 respostas para “Dispositivos no Linux”

  1. Robson Vaz disse:

    Excelente documento sobre dispositivos em Linux. Este assunto é de difícil compreensão para os utilizadores que são amantes do Window$.

    O mesmo esta bastante claro e de fácil entendimento.

    Parabens!

    Robson Vaz

  2. OSiriZ disse:

    gostei do cometario /dev/null – caminho pro inferno .. !! ^^

    mais voltando ao principal gostei do artigos, ele ficou muito bom .

    parabens ! ^^

  3. Renato disse:

    Muito bom artigo sobre dispostivos, se tivesse um documento tão claro quando aprendi teria sofrido menos, hehe. Parabéns.

  4. Rafael werner disse:

    muito bom… muito bom mesmo esse conteúdo sobre os dispositivos linux!

    parabéns!!

    eu ficaria muito grato de trocar ideias com vc sobre o mesmo!

    sou técnico em informática de uma rede de supermercados, e trabalho muito com o linux!

    muito bom mesmo seu trabalho.. abração!

  5. MauroMagule disse:

    muito bom o artigo adorei

  6. tatiana disse:

    o linux quando ao acesso a discos pendrives e partições o seu computador precisa e disco para que??

  7. tatiana disse:

    como é conhecida a forma que o linux usa para acessar discos que para sua vez é diferente do windows?

  8. tatiana disse:

    em que consiste a montagem no linux?

  9. tatiana disse:

    Como é feita a montagem hoje em dia?

  10. Henrique disse:

    Boa tarde, estou com o seguinte problema, a minha unidade de DVD-ROM aparece instalada porem quando coloco algum dvd com arquivos não sei onde abrir o dvd

  11. Raul disse:

    Cara, meus parabéns pelo seu bom conhecimento e sua belíssima didática. Sempre acompanho o site, e mesmo qdo não quero, gloogleando pelas net, acabo caindo aqui novamente, não tem jeito =)

    Raul

  12. muito bom, gostei muito da explicação que você deu, foi simples, objetiva e com informações interessantes e completas. somente o mount e umount que ficou mau detalhado.

    parabéns

  13. vitor xavier disse:

    quero baixae abode flash player no linux como fasso, alguém me juda ?

  14. Mitesh disse:

    The aero peek feature on widnwos 7 is nice for when you only have a few tabs open (< 6), but for avid tab users (I often have 20+), it's horrible to have to look through all the tab names to find the one you want. With the old system, you could easily switch back to the tab you were using last, and being able to do this still would be fantastic. Until then, back to firefox :)

Deixe uma resposta