Voltar ao Diminua Blog

Artigo

Desvendando o `udev` no Linux: Gerenciando Dispositivos Dinamicamente

Entenda como o Linux lida com a conexão e desconexão de dispositivos e como você pode influenciar esse processo.

Desvendando o `udev` no Linux: Gerenciando Dispositivos Dinamicamente

O Que é udev?

No mundo Linux, tudo é um arquivo. Dispositivos como teclados, mouses, discos rígidos, webcams e até mesmo portas seriais são representados no sistema de arquivos, geralmente em /dev. Mas como o Linux sabe quais dispositivos estão conectados e como nomeá-los de forma consistente, especialmente quando eles podem ser conectados ou desconectados dinamicamente?

É aí que entra o udev. O udev (User Device File Manager) é um subsistema do kernel Linux responsável por gerenciar os arquivos de dispositivo no diretório /dev. Ao contrário dos sistemas mais antigos que tinham arquivos de dispositivo estáticos, o udev é dinâmico. Ele cria, remove e renomeia arquivos de dispositivo à medida que os dispositivos são adicionados ou removidos do sistema, garantindo que os nomes dos dispositivos sejam previsíveis e que as permissões corretas sejam aplicadas.

Como o udev Funciona?

Quando um novo dispositivo é conectado ao sistema (por exemplo, um pendrive USB), o kernel Linux detecta esse evento. O kernel então envia uma mensagem para o udevd (o daemon do udev) informando sobre o novo dispositivo. O udevd, por sua vez, consulta um conjunto de regras para determinar como lidar com esse dispositivo.

Essas regras são arquivos de configuração que dizem ao udev como criar ou modificar os arquivos de dispositivo correspondentes. As regras podem ser baseadas em várias propriedades do dispositivo, como:

  • Vendor ID (VID) e Product ID (PID) para dispositivos USB
  • Número de série
  • Nome do driver do kernel
  • Tipo de dispositivo
  • Atributos específicos do dispositivo

Com base nas regras correspondentes, o udev:

  • Cria um nó de dispositivo em /dev (por exemplo, /dev/sda1 para uma partição de disco, /dev/ttyUSB0 para um dispositivo serial USB).
  • Define permissões, proprietário e grupo para o arquivo de dispositivo.
  • Cria links simbólicos para fornecer nomes mais consistentes ou descritivos (por exemplo, um link /dev/meu_pendrive que aponta para /dev/sdc1).
  • Executa ações personalizadas, como montar automaticamente um sistema de arquivos ou executar um script.

Quando um dispositivo é desconectado, o udev remove o nó de dispositivo correspondente e quaisquer links simbólicos associados.

Regras do udev: A Base da Personalização

A verdadeira força do udev reside em suas regras configuráveis. As regras do udev geralmente são armazenadas em arquivos no diretório /etc/udev/rules.d/. Os arquivos de regras são processados em ordem numérica, permitindo que você defina regras gerais e, em seguida, substitua ou refine comportamentos específicos com regras posteriores.

Cada regra é uma série de pares CHAVE=

Foto de ThisIsEngineering no Pexels.