gpt4 book ai didi

linux - uevents如何在内核中被触发

转载 作者:太空狗 更新时间:2023-10-29 11:44:48 29 4
gpt4 key购买 nike

uevents已经通过netlink socket从内核空间发送到用户空间。

在内核中,肯定有什么东西触发了uevent。

我猜有两种可能:

  1. 硬件中断 - 这意味着,一旦发生硬件中断,内核就会向用户空间发送事件以表示发生了一些事件。

  2. 软件轮询 - 这意味着,总有一个守护程序检查这些文件系统,看看是否有任何更改。如果是,则将这些信息更新到上层。

有人可以提供您的反馈吗?

谢谢

最佳答案

我不同意你关于投票的看法。 uevent 是基于事件的,所以没有轮询。

在很多情况下都会触发 uevent,我宁愿先弄清楚存在哪些 uevent 类型

稍加搜索就可以了 - 在 include/linux/kobject.h

enum kobject_action {
KOBJ_ADD,
KOBJ_REMOVE,
KOBJ_CHANGE,
KOBJ_MOVE,
KOBJ_ONLINE,
KOBJ_OFFLINE,
KOBJ_MAX
};

原来如此

  • 添加事件
  • 删除事件
  • 改变事件
  • 移动事件
  • 在线事件
  • 线下事件

KOBJ_MAX 是特殊标记和枚举。

有 2 个函数实际发送 uevent - kobject_ueventkobject_uevent_env。这些函数是通过上面列出的操作调用的。

最后,回答大家的问题。没有预定义的情况会触发 uevent。如果您搜索 kobject_uevent 的来电和 kobject_uevent_env您会看到它发生在不同的不相关内核子系统的各种回调中。

uevent 是内核工具,用于统一来自各种不相关驱动程序的通知。所以我认为没有众所周知的 list 可以触发 uevent。

关于linux - uevents如何在内核中被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146915/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com