- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux用户态内核态通讯分析-11.11linux用户态内核态通讯分析-11.11
Linux 内核态与用户态通信程序的分析与应用:
多数的 Linux 内核态程序都需要和用户空间的进程交
换数据,但 Linux 内核态无法对传统的 Linux 进程间同步
和通信的方法提供足够的支持。netlink是一种很好的解决
机制。
在 Linux 2.4 版以后版本的内核中,几乎全部的中断
过程与用户态进程的通信都是使用 netlink 套接字实现的
,例如iprote2网络管理工具,它与内核的交互就全部使用
了netlink ,著名的内核包过滤框架Netfilter在与用户空间
的通信,也在必威体育精装版版本中改变为netlink。
netlink socket ;
• netlink socekt是一种用于在内核态和用户态进程之间进行数据传输的
特殊的IPC。它通过为内核模块提供一组特殊的API ,并为用户程序提
供了一组标准的socket 接口的方式,实现了一种全双工的通讯连接。
类似于TCP/IP中使用AF_INET地址族一样,netlink socket使用地址
族AF_NETLINK。
• 下面是netlink socket 目前的特性集合以及它支持的协议类型:
• NETLINK_ROUTE 用户空间的路由守护程序之间的通讯通道,比如
BGP,OSPF,RIP以及内核数据转发模块。用户态的路由守护程序通过
此类型的协议来更新内核中的路由表。
• NETLINK_FIREWALL:接收IPV4防火墙代码发送的数据包。
• NETLINK_NFLOG:用户态的iptables管理工具和内核中的netfilter模块
之间通讯的通道。
• NETLINK_ARPD:用来从用户空间管理内核中的ARP表
用户态进程和内核态进程通信的方法:
1、系统调用。
2、ioctl接口。
3、proc文件系统。
4、netlink socket等等。
为什么使用netlink socket ?
1、为新的特性添加一个新的系统调用,ioctls或者一个proc文件的做法并
不是很容易的一件事情,因为我们要冒着污染内核代码并且可能破坏
系统稳定性的风险去完成这件事情。
2、内核中实现系统调用的代码都是在编译时静态链接到内核的,因此,
在动态加载模块中去包含一个系统调用的做法是不合适的。
3、它支持多点传送。一个进程可以把消息传输给一个netlink组地址,然
后任意多个进程都可以监听那个组地址(并且接收消息)。
4、系统调用和ioctl都属于单工方式的IPC ,也就是说,这种IPC会话的发
起者只能是用户态程序。Netlink 通过允许内核初始化会话的方式完
美的解决了此问题,我们称之为netlink socket的双工特性。
problem:
• 用户态应用使用什么接口与内核通讯(用户态接口和内核
态接口)
• 用户态程序和内核态程序使用何种方式实现消息的发送和
接收
• 内核程序如何设计成模块以及如何动态加载
/thread-2029813-
1-1.html
ways:
• 查看netlink内核原代码并进行代码分析,分析了解到用户态应用使用标
准的socket与内核通讯。用户空间的netlink API接口:socket()、
bind()、 sendmsg()、 recvmsg() 和 close()等接口。这些很容易地应
用到 netlink socket ;内核空间的netlink API接口:
netlink_kernel_create ()、input()、skb_recv_datagram()、
wake_up_interruptible ()等。熟悉并使用这些接口。使用socket()
函数创建一个socket ,输入:
eg: int socket(int domain, int type, int protocol)
socket域(地址族)是AF_NETLINK,socket的类型是SOCK_RAW或
者SOCK_DGRAM,因为netlink是一种面向数据包的服务
• netlink通信依据是一个对应于进程的标识,一般定为该进程的 ID。当
通信的一端处于中断过程时,该标识为 0。当使用 netlink 套接字进行
通信,通信的双方都是用户态进程,则使用方法类似于消息队列。
netl
您可能关注的文档
- Hook API之修改指令方法Hook API之修改指令方法.pdf
- How bad do you want success(NBA励志大师源于勤奋)How bad do you want success(NBA励志大师源于勤奋).ppt
- How to manage money关于大学生怎样管理金钱How to manage money关于大学生怎样管理金钱.ppt
- How-often-do-you-exercise---新目标How-often-do-you-exercise---新目标.ppt
- Honeywell霍尼韦尔扫描器全系列产品手册Honeywell霍尼韦尔扫描器全系列产品手册.pdf
- HP 传真机说明书HP 传真机说明书.pdf
- HR七年之痒,刺痛民族涂料信仰HR七年之痒,刺痛民族涂料信仰.doc
- HR三支柱模型HR三支柱模型.pdf
- HDL舞台灯光产品(2013-A)HDL舞台灯光产品(2013-A).pdf
- HR实战训练营介绍HR实战训练营介绍.pdf
- 【课件】测量液体和固体的密度课件+2025-2026学年人教版八年级上册物理.pptx
- 【公开课】速度的测量+(课件)2024-2025学年人教版(2024)八年级物理上册.pptx
- 【课件】解一元一次方程课件2025-2026学年++人教版七年级数学上册++.pptx
- 【课件】行程问题+课件++2025-2026学年人教版七年级数学上册+.pptx
- 【课件】直线、射线、线段+课件+2025--2026学年人教版七年级数学上册.pptx
- 【课件】透镜课件--+2025-2026学年人教版八年级上册物理.pptx
- 【课件】陪伴成长共同进步 课件--2024-2025学年高一下学期期末家长会.pptx
- 2025年中考化学总复习考点梳理讲解与训练(全).pdf
- 2025年中考道德与法治总复习专题六选择题答题方法指导与训练.pptx
- 形容词副词比较级.pptx
文档评论(0)