AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 550037
Accepted
programmer
programmer
Asked: 2019-11-03 06:51:39 +0800 CST2019-11-03 06:51:39 +0800 CST 2019-11-03 06:51:39 +0800 CST

Como o udev/uevent funciona?

  • 772

Então, eu estava me perguntando se minhas explicações do udev e como ele funciona parecem corretas e meu entendimento está correto, por favor me avise.

Então, meu entendimento do udev é que ele é um gerenciador de dispositivos dinâmico no Linux que é executado como um daemon .

  • quando ocorre uma alteração em um dispositivo , como se um dispositivo está conectado ao kernel, envia um uevent para o udev, o udev pode acessar o sysfs para encontrar detalhes sobre o dispositivo , como fornecedor, nome e modelo do dispositivo, etc.
  • uma vez que tenha os detalhes do dispositivo, o Udev então combina esses atributos com as regras definidas para um tipo específico de dispositivo, neste caso, pode ser um dispositivo usb. se existir uma regra como "criar link simbólico para todos os dispositivos usb", o udev fará isso. O udev verifica as regras e corresponde aos atributos para verificar o dispositivo e, em seguida, pode começar a adicionar alterações ao dispositivo, bem como fazer o que as regras dizem ao dispositivo.

Esse é basicamente o meu entendimento atual, por favor, corrija-me se estiver errado e diga-me informações extras.

kernel
  • 1 1 respostas
  • 10233 Views

1 respostas

  • Voted
  1. Best Answer
    intika
    2019-11-08T18:01:46+08:002019-11-08T18:01:46+08:00

    UDEV

    Udev significa " userspace /dev " é um gerenciador de dispositivos para o kernel Linux. Faz parte do systemd (um sistema init usado para inicializar o espaço do usuário e gerenciar os processos do usuário ).

    Originalmente o udev era independente do systemd, ele foi fundido com o systemd em 2012, isso levou a algumas complicações para a distribuição rodar sem o systemd como explicado aqui para a distribuição gentoo .

    Este aplicativo (udev) destina-se a substituir devfsd e hotplug , o udev gerencia principalmente nós de dispositivos no /devdiretório. Ao mesmo tempo, o udev também lida com todos os eventos de espaço do usuário gerados quando dispositivos de hardware são adicionados ao sistema ou removidos dele, incluindo carregamento de firmware conforme exigido por determinados dispositivos ( por meio de módulos do kernel ). Concretamente, o udev é executado como serviço systemd ( systemd-udevd.service ) para realizar suas tarefas, ele ouve os uevents do kernel . Para cada evento, o systemd-udevd executa as instruções correspondentes especificadas nas regras do udev (/etc/udev/rules.d/), detalhes sobre a escrita de regras estão disponíveis nesteartigo .

    No nível do kernel do Linux, as informações necessárias do dispositivo são exportadas pelo sistema de arquivos sysfs. Para cada dispositivo que o kernel detectou e inicializou, um diretório com o nome do dispositivo é criado. Ele contém arquivos de atributo com propriedades específicas do dispositivo. Toda vez que um dispositivo é adicionado ou removido, o kernel envia um uevent para notificar o udev sobre a mudança.

    O comportamento do daemon udev (serviço) pode ser configurado usando udev.conf(5) (/etc/udev/udev.conf), suas opções de linha de comando, variáveis ​​de ambiente e na linha de comando do kernel, ou alterado dinamicamente com udevadm ao controle.

    O udev, como um todo, é dividido em três partes:

    • Biblioteca libudev que permite o acesso às informações do dispositivo.
    • Daemon de espaço do usuário (sytemd) udevd que gerencia o virtual /dev.
    • Utilitário de linha de comando administrativo udevadm para diagnóstico.

    O próprio Udev é dividido nessas três partes, mas depende completamente do gerenciamento de dispositivos do kernel e de suas chamadas uevents, o sistema recebe chamadas do kernel via soquete netlink. Versões anteriores usavam hotplug, adicionando um link para elas mesmas em /etc/hotplug.d/default com esta finalidade.

    Observe que outro aplicativo/daemon pode ouvir as chamadas uevents por meio de libudev , gudev ou diretamente do kernel com GUdevClient

    Mais informações sobre o udev estão disponíveis nas fontes desta resposta: debian wiki , arch linux wiki , opensource.com , the geek diary , freedesktop.org , wikipedia , pks.mpg.de e outros sites vinculados.

    Os detalhes sobre as camadas de operação do udev são explicados aqui e ilustrados com este diagrama:

    insira a descrição da imagem aqui

    • 10

relate perguntas

  • Como /proc/net/wireless é um "clone" de /proc/net/dev?

  • Danos no kernel do Linux Mint

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

  • Acesse o sistema de arquivos como usuário root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve