linux子系统的通信--通知链

在看到内核网络子系统部分时,涉及到了很多通用的应用部分,就比如此篇的 通知链机制。

一、什么是通知链

Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知链机制(notificationchain)。通知链只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码均位于kernel目录下,通知链表位于kernel/notifier.c中,对应的头文件为<linux/notifier.h>。事件通知链表是一个事件处理函数的列表,每个通知链都与某个或某些事件有关,当特定的事件发生时,就调用相应的事件通知链中的回调函数,进行相应的处理。

二、通知链做了什么

通知链,那么就分为通知者和被通知者,它们的行为如下:
通知者:当指定的事件发生的时候,通知者会通过通知链来将时间发送给被通知者。
被通知者:定义了当事件发生时,对应的事件处理函数。

逻辑流程为:
1、通知者定义通知链。
2、被通知者向通知者定义的通知链中注册事件处理函数。
3、当事件发生的时候,通知者向被通知者发送信息,被通知者来处理该事件。
 

三、通知链的具体应用和实例

不重复造轮子了,下面这篇博客介绍的很清楚,本文就摘自这篇博客,给的例子也很通俗易懂:

Linux内核通知链_哈哈一笑-CSDN博客_linux 内核通知链

Linux内核通知链 使用和简析_DecJ的博客-CSDN博客

Linux内核基础--事件通知链(notifier chain)_fishOnFly的博客-CSDN博客

以路由接口为实际导向的例子

Linux网络技术学习(三)—— 通知链_Bazinga bingo的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值