udev/uevent 如何工作?

udev/uevent 如何工作?

所以我只是想知道我对 udev 的解释及其工作原理是否正确,我的理解是否正确,请告诉我。

所以我的理解乌德夫就是它是一个动态设备管理器在 Linux 上作为守护进程运行

  • 什么时候 设备发生变化例如,如果设备已插入内核发送一个 事件到udev,然后 udev 可以去 sysfs 查找设备的详细信息例如供应商、设备名称和型号等。
  • 一旦有了详细信息设备的, 然后 Udev 将这些属性与规则进行匹配s 设置为特定类型的设备,在本例中它可能是 USB 设备。如果存在“为所有 USB 设备创建符号链接”之类的规则,那么 udev 将执行此操作。 udev 检查规则并匹配属性以验证设备,然后可以开始向设备添加更改以及执行规则对设备规定的任何操作。

这基本上是我目前的理解,如果我错了,请纠正我,并告诉我额外的信息。

答案1

UDEV

Udev 代表“用户空间 /dev“它是 Linux 内核的设备管理器。它是一部分系统(一个在里面系统用于引导程序 用户空间并管理用户进程)。

起初乌德夫独立于 systemd,它是合并2012 年使用 systemd,这会导致在没有 systemd 的情况下运行发行版时出现一些复杂情况,如所解释的这里是 gentoo 的分配。

该应用程序(udev)旨在取代开发文件系统热插拔、udev主要管理/dev目录中的设备节点。同时,udev 还处理当硬件设备添加到系统或从系统中删除时引发的所有用户空间事件,包括固件加载根据某些设备的要求(通过内核模块)。具体来说,udev 作为 systemd 服务运行(systemd-udevd.service)为了完成任务,它会聆听核心事件。对于每个事件,systemd-udevd 都会执行中指定的匹配指令udev规则(/etc/udev/rules.d/),有关规则编写的详细信息可以在此处找到文章

在 Linux 内核级别,所需的设备信息由 sysfs 文件系统导出。对于内核检测到并初始化的每个设备,都会创建一个具有设备名称的目录。它包含具有设备特定属性的属性文件。每次添加或删除设备时,内核都会发送一个 uevent 来通知 udev 有关更改。

udev 守护进程(服务)的行为可以使用以下命令进行配置udev.conf(5)(/etc/udev/udev.conf),它的命令行选项,环境变量,以及在内核命令行上,或者动态更改乌德瓦德姆控制。

udev整体上分为三个部分:

  • 允许访问设备信息的 libudev 库。
  • 管理虚拟 /dev 的用户空间守护进程 (sytemd) udevd。
  • 用于诊断的管理命令行实用程序 udevadm。

Udev本身分为这三个部分,但它完全依赖于内核设备管理和它的uevents调用,系统通过netlink套接字从内核获取调用。早期版本使用热插拔,为此在 /etc/hotplug.d/default 中添加了一个指向自身的链接。

请注意,其他应用程序/守护程序可能会监听 uevents 调用利布德夫,古德夫或者直接从内核使用GUdev客户端

有关 udev 的更多信息可在该答案的来源中找到: Debian 维基,拱门 Linux 维基,开源网站,极客日记,自由桌面网站,维基百科,pks.mpg.de和其他链接网站。

udev操作层详细解释这里并用此图进行说明:

在此输入图像描述

相关内容