Em Linux, um princípio central é que "tudo é um arquivo". Essa filosofia se estende aos componentes de hardware, que são representados como arquivos especiais no sistema de arquivos. Entender esses dispositivos Linux e seus arquivos correspondentes é crucial para a administração do sistema. Vamos começar explorando o diretório /dev, o local tradicional para cada arquivo de dispositivo.
Explorando Dispositivos Linux em /dev
Você pode listar os arquivos no diretório /dev para ver como o sistema representa vários dispositivos Linux.
$ ls -l /dev
brw-rw---- 1 root disk 8, 0 Dec 20 20:13 sda
crw-rw-rw- 1 root root 1, 3 Dec 20 20:13 null
srw-rw-rw- 1 root root 0 Dec 20 20:13 log
prw-r--r-- 1 root root 0 Dec 20 20:13 fdata
Aqui está um detalhamento das colunas da esquerda para a direita:
- Permissões
- Proprietário
- Grupo
- Número de Dispositivo Principal (Major)
- Número de Dispositivo Secundário (Minor)
- Carimbo de Data/Hora
- Nome do Dispositivo
Identificando Tipos de Dispositivos Linux
O primeiro caractere na string de permissões da saída do ls -l indica o tipo de arquivo. Para um arquivo de dispositivo, você verá um dos seguintes, o que ajuda a identificar os tipos de dispositivos Linux específicos:
c- caractereb- blocop- pipes- socket
Dispositivos de Caractere
Esses dispositivos transferem dados um caractere por vez. Muitos pseudo-dispositivos, que não são hardware fisicamente conectado, mas fornecem funções essenciais do sistema operacional, são representados como dispositivos de caractere. Um exemplo clássico é /dev/null.
Dispositivos de Bloco
Esses dispositivos transferem dados em grandes blocos de tamanho fixo. Você descobrirá comumente que o hardware de armazenamento, como discos rígidos (/dev/sda), SSDs e outros componentes de armazenamento em massa, são representados como dispositivos de bloco, pois são otimizados para acesso a dados baseado em blocos.
Dispositivos Pipe (Tubulação)
Os pipes nomeados, ou FIFOs (First-In, First-Out), permitem a comunicação entre processos. Eles agem como dispositivos de caractere, mas canalizam sua saída para outro processo em vez de um dispositivo físico.
Dispositivos Socket (Soquete)
Os dispositivos socket também facilitam a comunicação entre processos. Diferentemente dos pipes, eles são mais versáteis e podem suportar comunicação entre múltiplos processos, inclusive através de uma rede.
Entendendo os Números de Dispositivo
Cada dispositivo Linux é identificado unicamente por dois números: o número de dispositivo principal e o número de dispositivo secundário. Você pode vê-los na saída do ls, separados por uma vírgula. Para um dispositivo com os números 8, 0:
O número principal (8) identifica o driver responsável pelo dispositivo. Neste caso, 8 é comumente usado para discos rígidos SCSI. O número secundário (0) informa ao driver qual instância específica do dispositivo ele é. Aqui, 0 representa o primeiro disco (a).