Um driver de dispositivo é uma peça de software que opera ou controla um tipo específico de dispositivo. Em sistemas operacionais modernos, monolithic kernel , eles normalmente fazem parte do kernel. Muitos kernels monolíticos, incluindo o Linux, têm um design modular, permitindo que os módulos executáveis sejam carregados em tempo de execução. Os drivers de dispositivos geralmente utilizam esse recurso, embora nada impeça que os drivers de dispositivos sejam compilados na imagem do kernel.
Um arquivo de dispositivo é uma interface para um driver de dispositivo que aparece em um sistema de arquivos como se fosse um arquivo comum. Em sistemas operacionais semelhantes ao Unix, eles geralmente são encontrados no diretório /dev
e também são chamados de nós de dispositivo . Um arquivo de dispositivo pode representar dispositivos de caractere , que emitem um dado de fluxo um caractere por vez, ou dispositivos de bloco que permitem acesso aleatório a blocos de dados.
Os nós de dispositivos são criados pela chamada de sistema mknod
. O recurso do kernel exposto pelo nó do dispositivo é identificado por um maior e menor número . Normalmente, o número principal identifica o driver do dispositivo e o número menor identifica um dispositivo específico que o driver controla.
O que o arquivo do dispositivo parece conter depende do que os drivers de dispositivo expõem através do arquivo do dispositivo. Por exemplo, o arquivo de dispositivo de caracteres que representa o mouse, /dev/input/mice
expõe o movimento do mouse como um fluxo de caracteres, enquanto o título arquivo de dispositivo de bloco representando um disco rígido , como /dev/sda
, expõe as regiões endereçáveis da memória do dispositivo. Alguns arquivos de dispositivos também recebem entrada, permitindo que aplicativos de espaço do usuário se comuniquem com o dispositivo gravando em seu arquivo de dispositivo.