Na classificação tradicional, existem três tipos de dispositivo:
- dispositivo de bloco
- dispositivo de caractere
- outros!
Como você pode descobrir explorando /dev
, existem dispositivos que não são nem blocos nem dispositivos char. Por exemplo, interfaces de rede física não são representadas por um arquivo no sistema de arquivos e você não pode read(1)
e write(1)
deles da mesma maneira que você pode com o seu teclado ou sua placa de som. As únicas interfaces presentes em /dev
são interfaces virtuais como tun
ou tap
.
Existem também outras classificações que o kernel linux usa, chamadas "classes". Você pode ver a lista de classes em /sys/class
.
Da documentação do kernel:
Each device class defines a set of semantics and a programming interface that devices of that class adhere to. Device drivers are the implementation of that programming interface for a particular device on a particular bus.