linux内核网络源码--通知链

内核很多子系统之间有很强依赖其中一个子系统侦测或者产生事件其他子系统可能都有兴趣为了实现这种交互需求linux使用了所谓通知

本章我们看到

通知如何声明以及网络代码定义了哪些

内核子系统如何通知注册

内核子系统如何链上产生通知信息

注意通知连只在内核子系统之间使用内核用户空间之间通知信息则是依赖其他机制第三章介绍那些

使用通知原因

假设我们如图4-1所示带有四个接口linux路由器显示了路由器五个网络之间关系还有一份简化路由表

让我们看看4-1拓扑结构几个例子网络A直接连接到RT接口eth0网络F没用直接链接RT但是RTeth3直接另一个路由器其他接口地址IP1,并且第二个路由器知道如何联系网络F其他案例都很类似简而言之有些网络直接连接其他网络需要一个或者多个附加路由器协助才能联系得到

有关路由代码如何处理这种情况详细描述参考第七部分本章焦点通知角色假设接口eth3由于网络断线使得管理命令失效或者造成硬件失败结果RT无法联系网络DEF因此应该路由表中删除谁将通知路由子系统接口失效那就是通知

上图稍微复杂例子路由子系统动态路由协议交互这种协议可以调整一个或者多个路由表使其吻合网络拓扑结构因此拓扑结构许可的时候就可以处理接口失败问题

上图RT可以通过网络A网络E联系网络F最初E是因为成本较少但是现在E已经无法联系因此路由比哦啊应该更新网络F路由网络A这种决策基础可能包括一些本地主机事件诸如设备注册删除以及路由配置中复杂因素路由协议在任何情况下管理路由比哦啊路由子系统必须其他子系统那里收到相关信息通知因而产生通知链需求

概论

通知就是一份简单的函数列表给定事件发生时候予以执行每个函数都让另一个子系统知道调用函数子系统所发生一个事件或者子系统侦测一个事件

因此没调通知链而言都有被动主动也就是所谓发布--订阅模型

被通知就是要求接收事件子系统而且提供回调函数予以调用

通知者 就是感受到一个事件调用函数子系统

所执行函数通知的子系统选取绝不是链条拥有者决定执行什么函数拥有者只是定义这份列表而已任何内核子系统可以链条注册一个回调函数接收通知信息

通知使用源码易于编写维护想象一下一个通用函数使用通知如何把一个事件通知外部子系统

if (subsystem_X_enabled)

do_something_1

if (subsystem_Y_enabled)

do_something_2

if (subsystem_Z_enabled)

do_something_3

换言之必须每个可能对一个事件感兴趣子系统引入一个条件结果每次添加一个子系统内核子系统维护就得添加一个子句

子系统维护不可能追踪每个添加内核咨询哦太难过然而每位子系统维护者都应该知道

1 自己来自其他子系统哪种事件感兴趣

2 自己知道的事件几种并且其他子系统可能感兴趣的事件又是哪几种

因此通知允许每个子系统其他咨询哦太难过共享发生事件无需知道究竟哪些子系统产生事件以及那些子系统为什么感兴趣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/320860.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【yolov8】yolov8剪枝训练流程

yolov8剪枝训练流程 流程: 约束剪枝微调 一、正常训练 yolo train model./weights/yolov8s.pt datayolo_bvn.yaml epochs100 ampFalse projectprun nametrain二、约束训练 2.1 修改YOLOv8代码: ultralytics/yolo/engine/trainer.py 添加内容&#…

深度学习之基于Vgg19预训练卷积神经网络图像风格迁移系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在数字艺术和图像处理领域,图像风格迁移技术一直备受关注。该技术可以将一幅图像的内容和…

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速: 杜拉德公式是用来计算非均质固液混合料浆在输送管中的临界速度的公式,具体形式为: uL FL (2gD / (ρ0 - ρ1))^(1/2) 其中: uL:表示料浆的临界速度,…

什么是泛域名证书?与普通SSL证书有什么区别

随着互联网的发展,越来越多的网站开始使用SSL证书来保护用户的隐私和安全。在SSL证书中,泛域名SSL证书和普通域名证书是两种常见的类型。那么,什么是泛域名SSL证书,与普通域名证书有什么区别呢? 首先,我们来…

投资者悄然收购二手楼梯楼,在杭州豪掷巨资购买12套!

独家首发 -------------- 日前杭州中介流传,一名投资客大举收购二手楼梯楼,下手就是12套,显示出一些具有前瞻性眼光的投资者悄悄放弃电梯楼,选择了处于价格洼地的楼梯楼。 二手楼梯楼当下被严重低估,在一线城市的二手楼…

【文献阅读】 The ITS Irregular Terrain Model(Longely-Rice模型)海上电波传播模型

前言 因为最近在做海上通信的一个项目,所以需要对海上的信道进行建模,所以才阅读到了这一篇文献,下面的内容大部分是我的个人理解,如有错误,请见谅。欢迎在评论区和我一起讨论。 Longely-Rice模型介绍 频率介于 20 …

AI摄影教程,让你实现写真自由!

AI摄影,就是用AI生成写真照片 和传统摄影不同的是,传统的摄影需要先妆造、布景,然后再进行拍摄,前后需要耗费的时间精力非常多 而AI摄影只需要在电脑上上传十几张自己的日常照片,就能根据自己的喜好去生成各种梦幻、甚…

软件测试经理工作日常随记【2】-接口自动化

软件测试主管工作日常随记【2】-接口自动化 1.接口自动化 jmeter-反电诈项目 这个我做过的一个非常有意义的项目,和腾讯合作的,主要为用户拦截并提示所有可能涉及到的诈骗类型,并以裂变的形式扩展用户,这个项目前期后端先完成&…

设计宝典与速查手册,设计师必备资料合集

一、资料描述 本套设计资料,大小194.34M,共有13个文件。 二、资料目录 01-《商业设计宝典》.pdf 02-《色彩速查宝典》.pdf 03-《配色宝典》.pdf 04-《解读色彩情感密码》.pdf 05-《行业色彩应用宝典》.pdf 06-《构图宝典》.pdf 07-《创意宝典》…

上位机图像处理和嵌入式模块部署(树莓派4b下ros安装方法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 随着嵌入式开发板算力越来越强,很多的同学开始用树莓派做一些ros开发的工作。目前来说,ros有两个版本,分别是ro…

【RPC】Dubbo接口测试

关于rpc,推荐看看这篇 : 既然有HTTP协议,为什么还要有RPC 一、Dubbo 是一款alibaba开源的高性能服务框架: 分布式服务框架高性能和透明化的RPC远程服务调用方案SOA服务治理方案 二、Dubbo基础架构 三、 Dubbo接口测试 1、jme…

MambaMOS:基于激光雷达的三维运动物体分割与运动感知状态空间模型

MambaMOS:基于激光雷达的三维运动物体分割与运动感知状态空间模型 摘要INTRODUCTIONRelated WorkMethod MambaMOS: LiDAR-based 3D Moving Object Segmentation with Motion-aware State Space Model 摘要 激光雷达基于的运动目标分割(MOS)旨在利用之前…

一站式PDF解决方案:如何部署自己的PDF全能工具(Docker部署和群晖部署教程)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 开始部署 📒📝 Docker部署📝 群晖部署📝 本地安装⚓️ 相关链接 ⚓️📖 介绍 📖 在数字化办公的今天,PDF文件几乎成了我们日常工作中不可或缺的一部分。但你是否曾因为PDF文件的编辑、转换、合并等问题而头疼?如果…

Python类方法探秘:从单例模式到版本控制

引言: 在Python编程中,类方法作为一种特殊的实例方法,以其独特的魅力在众多编程范式中脱颖而出。它们不仅提供了无需实例即可调用的便捷性,还在设计模式、版本控制等方面发挥着重要作用。本文将通过几个生动的示例,带您…

STM32——GPIO篇

技术笔记! 1. 什么是GPIO? GPIO是通用输入输出端口(General-purpose input/output)的英文简写,是所有的微控制器必不可少的外设之一,可以由STM32直接驱动从而实现与外部设备通信、控制以及采集和捕获的功…

骨传导耳机哪个品牌值得入手?精选五款高性能骨传导耳机,闭眼入都不踩雷!

随着健康生活的日益普及,运动健身逐渐成为人们生活中的重要组成部分。在这一背景下,骨传导耳机作为一种新型蓝牙耳机,凭借其不堵塞耳道、防水性能强等特性,受到了广大运动爱好者的喜爱。然而,骨传导耳机的热销也吸引了…

海外大带宽服务器的带宽大小是如何定义的?

海外大带宽服务器的带宽大小通常是由提供的数据传输速率来衡量的。Rak部落小编为您整理发布海外大带宽服务器的带宽大小是如何定义的? 带宽的大小决定了服务器能够处理的数据量和传输速度,这对于确保服务器性能至关重要。在详细定义中,带宽可以根据以下…

Flutter笔记:Widgets Easier组件库(9)使用弹窗

Flutter笔记 Widgets Easier组件库(9):使用弹窗 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress o…

每日OJ题_贪心算法三②_力扣553. 最优除法

目录 力扣553. 最优除法 解析代码 力扣553. 最优除法 553. 最优除法 难度 中等 给定一正整数数组 nums,nums 中的相邻整数将进行浮点除法。例如, [2,3,4] -> 2 / 3 / 4 。 例如,nums [2,3,4],我们将求表达式的值 "…

MySQL-笔记-08.数据库编程

目录 8.1 编程基础 8.1.1 基本语法 8.1.2 运算符与表达式 1. 标识符 2. 常量 (1) 字符串常量 (2)日期时间常量 (3)数值常量 (4)布尔值常量 (5)NULL…