udev 和 acpi(d) 有什么区别

udev 和 acpi(d) 有什么区别

它们似乎都在接收和处理内核事件,那么为什么它们都存在呢?据我所知,与 udev 相比,ACPI 似乎更高级,但除此之外还不能真正区分。

相关ACPI、udev、HAL 和 pm-utils 之间有什么关系

答案1

ACPI是主板供应商的低级接口,用于提供有关操作系统无法(可靠)自动检测到的内置设备的信息。它还为内核提供了电源管理和硬件监控的方法。 ACPI 提供的一项有趣的功能就是所谓的 ACPI 事件。为了创建这些中断,当内置硬件上发生某些情况时,硬件会发出一个特殊的中断(通用事件中断),然后内核调用 ACPI 代码来确定哪个内置设备上发生了什么。请参阅规格如果你想知道整个事情的细节是如何运作的。

是一个守护进程,用于侦听内核中 ACPI 子系统生成的事件,并允许在特定事件发生时运行命令。例如,如果硬件通过 ACPI 发出电源按钮被按下的信号,您将在“按钮/电源”类中的设备上收到一个事件。守护程序只能对通过 ACPI 生成的这些事件做出反应,而不能对 USB 总线等事件做出反应。

乌德夫是一个特定于 Linux 的守护进程,允许对内核管理的设备树中的更改做出反应。例如,如果插入 USB 记忆棒,USB 控制器会通知内核,并将新设备添加到 Linux 设备树中。然后,usb_storage驱动程序检测到新设备是存储设备,并在树中创建子设备节点,允许用户空间像任何其他硬盘驱动器一样处理 USB 记忆棒。如果将其拔出,这些设备将从树中删除。 udev 会收到关于每次添加和删除的通知。 udev 还可以对一些不是设备添加/删除的事件做出反应,例如打开/关闭 CD 托盘,但仅此而已。你可以运行udevadm monitor --kernel看看udev实时得到了什么事件。

你可以这么说吧乌德夫相得益彰。乌德夫对于对操作系统所知的任何设备的重大变化做出反应很有用,而对于对某些内置设备发生的更具体的事件做出反应非常有用。

相关内容