- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
uevents已经通过netlink socket从内核空间发送到用户空间。
在内核中,肯定有什么东西触发了uevent。
我猜有两种可能:
硬件中断 - 这意味着,一旦发生硬件中断,内核就会向用户空间发送事件以表示发生了一些事件。
软件轮询 - 这意味着,总有一个守护程序检查这些文件系统,看看是否有任何更改。如果是,则将这些信息更新到上层。
有人可以提供您的反馈吗?
谢谢
最佳答案
我不同意你关于投票的看法。 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_uevent
和 kobject_uevent_env
。这些函数是通过上面列出的操作调用的。
最后,回答大家的问题。没有预定义的情况会触发 uevent。如果您搜索 kobject_uevent
的来电和 kobject_uevent_env
您会看到它发生在不同的不相关内核子系统的各种回调中。
uevent 是内核工具,用于统一来自各种不相关驱动程序的通知。所以我认为没有众所周知的 list 可以触发 uevent。
关于linux - uevents如何在内核中被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146915/
如题,想知道详细说明。 google之后,发现'uevent'代表“用户空间事件”。 这是正确的吗? 谢谢。 最佳答案 这是正确的,它代表 User Space Event,但是你离 stackove
我知道udev在linux系统上播放,它通过netlink socket接收内核发来的uevent。 但是,我的问题是: 内核如何发出事件?它必须是通过添加/删除设备触发的,然后向 udev 发送事件
当 USB 设备(断开)连接时,我试图通过 netlink 套接字从内核接收 uevent。我有一个 python 脚本,它可以完成相同的工作并且可以工作,但是我需要在 C 中使用相同的功能。到目前为
我正在尝试使用下面的代码解析 uevent,但我认为我的正则表达式不正确,导致 regcomp 函数失败。 有人可以帮忙吗?我正在尝试做类似 this 的事情. #include #include
我想使用以下代码将 php 日期时间传递给 javascript: var x=""; 但是unix时间戳的值不同(数据库值为“2014-03-25 08:36:15”) echo strtotime
我正在使用运行 Linux 内核 4.4.0 的 Ubuntu 16.0.4。我的板上连接了几个 EEPROM over i2c 适配器。当我插入 eeprom 模块时,我在 /var/log/sys
我是一名优秀的程序员,十分优秀!