/dev
O diretório /dev
A maioria dos usuários Linux entendem que /dev/sda1 é apenas um modo rápido de se referir à primeira partição do primeiro disco que o kernel encontrou. Bem simples, certo?
Mas considere os dispositivos hotpluggable como USB, IEEE 1394, PCI hot-swappable, etc. Qual é o primeiro dispositivo para cada um deles? E por quanto tempo? Qual será o nome dos outros dispositivos quando o primeiro desaparecer? Como isso afetará as transações em andamento? Não seria divertido se um trabalho de impressão fosse subitamente transferido de uma impressora a laser de última geração para uma impressora matricial quase morta só porque alguém decidiu desligar a impressora a laser (que por acaso era a primeira impressora)?
Entre no gerenciador de dispositivos. Um gerenciador de dispositivos moderno (incluindo udev e eudev) deve:
- Executar em userspace.
- Criar e remover arquivos de dispositivo dinamicamente.
- Fornecer nomeação consistente de dispositivos.
- Fornecer uma interface de programação de aplicação (API) em userspace.
Toda vez que ocorre uma alteração na estrutura do dispositivo, o kernel emite um uevent que é captado pelo gerenciador de dispositivos. O gerenciador de dispositivos segue então as regras declaradas nos diretórios /etc/udev/rules.d, /run/udev/rules.d e /lib/udev/rules.d. Com base nas informações contidas no uevent, ele encontra a regra ou regras que precisa acionar e executa as ações necessárias. Essas ações podem envolver a criação ou a exclusão de arquivos de dispositivos e também podem acionar o carregamento de arquivos de firmware específicos na memória do kernel.