Entendendo o udev

Recentemente, surgiu um terceiro componente, o udev, que substitui o devfs e assume parte das funções do hotplug, com a opção de se integrar a ele, oferecendo suporte aos scripts e outras personalizações, ou
substituí-lo completamente, opção adotada por muitas distribuições.

A principal vantagem do udev é que nele é possível definir devices “fixos” para cada periférico. Sua impressora pode passar a receber sempre o device “/dev/printer/epson” e seu pendrive o
/dev/pendrive“, mesmo que você tenha outros dispositivos instalados. É possível também executar scripts quando eles são conectados ou removidos, criando um leque muito grande de opções.

Os devices são criados conforme os periféricos são conectados, fazendo com que o /dev contenha entrada apenas para os periféricos detectados.

No devfs, o diretório “/dev” contém devices para todo tipo de componente que é suportado pelo Kernel, resultando num número absurdo de pastas e devices dentro do diretório. Outra limitação é que os periféricos podem ser
associados a devices diferentes, de acordo com a ordem em que são plugados. Digamos que você tenha um pendrive e um HD externo, ambos USB. Se você plugar o pendrive primeiro, ele será o “/dev/sda”, enquanto o HD será o “/dev/sdb”. Mas, se você inverter a
ordem, o HD é que será o “/dev/sda”. Se você tiver um HD serial ATA, então o HD será o “/dev/sda”, o pendrive será o “/dev/sdb” e o HD externo será o “/dev/sdc” e, assim por diante. Essa confusão toda torna complicado fazer um script de backup ou qualquer
outra coisa que dependa do pendrive estar disponível sempre no mesmo lugar.

Outra vantagem do udev é que, por ser escrito em C e ter um funcionamento interno muito mais simples, o udev é também mais rápido que o hotplug, o que faz diferença em muitas situações.

A parte em que o udev e o hotplug se sobrepõem é com relação a automatização de tarefas. O hotplug suporta o uso de scripts, que são executados sempre que um dispositivo em particular, ou algum dispositivo dentro de uma
categoria definida é plugado. Estes scripts permitem fazer com que seja criado um ícone no desktop ao plugar um pendrive, fazer com que o configurador de impressoras seja aberto quando uma nova impressora USB é conectada, entre inúmeras outras
possibilidades.

O udev suporta o uso de “regras”, que, entre outras coisas, também permitem o uso de scripts. O udev oferece compatibilidade com os scripts do hotplug, mas esta funcionalidade não vem ativada em todas as distribuições. De
uma forma geral, o udev está sendo adotado rapidamente em todas as principais distribuições e, em distribuições que usam o udev, é mais recomendado trabalhar com regras do udev do que com scripts do hotplug. Logo adiante, veremos com mais detalhes como
escrever tanto scripts para o hotplug quanto regras para o udev.

Em algumas distribuições, o udev é configurado de forma a substituir o hotplug completamente, enquanto outras optam por integrar os dois. Nestes casos, o hotplug deixa de ser um serviço separado e passa a ser iniciado
juntamente com o serviço “udev”:

# /etc/init.d/udev start

Uma observação é, que ao contrário do devfs e mesmo do hotplug, o udev é independente do Kernel, ele pode ser instalado, removido e atualizado rapidamente, como qualquer outro programa. Se algum periférico não estiver sendo
detectado ou você estiver tendo problemas gerais, experimente atualizar o pacote “udev” a partir do repositório com atualizações para a distribuição em uso. Nas distribuições derivadas do Debian, você pode atualizá-lo via apt-get:

# apt-get install udev

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X