Qual é a diferença entre udev e acpi (d)?

4

Ambos parecem estar recebendo & processando eventos do kernel, então por que ambos existem? Pelo que eu entendo, ACPI parece ser mais alto nível comparado ao udev, mas fora isso não pode realmente dizer.

Relacionado a Qual é a relação entre a ACPI , udev, HAL e pm-utils

    
por laur 29.01.2016 / 18:15

1 resposta

6

ACPI é uma interface de baixo nível para os fornecedores da mainboard fornecerem informações sobre dispositivos internos que não podem ser autodetectados (com segurança) no sistema operacional. Ele também fornece métodos para gerenciamento de energia e monitoramento de hardware para o kernel. Uma coisa interessante que a ACPI fornece são os chamados eventos ACPI. Para criá-los, o hardware emite uma interrupção especial (a Interrupção do Evento de Propósito Geral) quando algo acontece no hardware embutido e o kernel chama o código da ACPI que determina o que aconteceu em qual dispositivo interno. Veja a especificação se você quiser saber como tudo funciona em detalhes.

acpid é um daemon que ouve os eventos gerados pelo subsistema ACPI no kernel e permite executar comandos quando um evento específico ocorre. Por exemplo, se o hardware sinalizou via ACPI que o botão de energia foi pressionado, você recebe um evento em um dispositivo na classe "botão / alimentação". O daemon pode apenas reagir a esses eventos gerados via ACPI e não a eventos em, e. o barramento USB.

udev é um daemon específico do Linux que permite reagir às mudanças na árvore de dispositivos gerenciada pelo kernel. Por exemplo, se você conectar um dispositivo USB, o kernel será notificado pelo controlador USB e um novo dispositivo será adicionado à árvore de dispositivos do Linux. Em seguida, o driver usb_storage detecta que o novo dispositivo é um dispositivo de armazenamento e cria nós de sub-dispositivo na árvore que permitem que o espaço do usuário manipule o pendrive como qualquer outro disco rígido. Se você conectá-lo, esses dispositivos serão removidos da árvore. O udev é notificado sobre cada uma dessas adições e remoções. O udev também pode reagir a alguns eventos que não são adições / remoções de dispositivos, como abertura / fechamento de uma bandeja de CD, mas isso é a maior parte. Você pode executar udevadm monitor --kernel para ver quais eventos o udev obtém em tempo real.

Você pode dizer que acpid e udev se complementam. O udev é útil para reagir a alterações importantes sobre qualquer dispositivo que o SO conheça, enquanto o acpid é útil para reagir a eventos mais específicos que acontecem em alguns dispositivos internos. / p>     

por 08.03.2016 / 02:42