这方面的资料很多,就不在此一一介绍了。参考资料如下:《Linux 系统内核空间与用户空间通信的实现与分析》--http://www-128.ibm.com/developerworks/cn/linux/l-netlink/?ca=dwcn-newsletter-linux 《在 Linux 下用户空间与内核空间数据交换的方式》--http://www-128.ibm.com/developerworks/cn/linux/l-kerns-usrs/ 《netlink socket编程之why & how》--http://linux.chinaunix.net/bbs/thread-1031932...
by yanghoo - Linux文档专区 - 2008-11-12 16:35:24 阅读(1111) 回复(0)
开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯的呢? 答案就是通过各种各样的用户...
开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代 码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的 防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯的呢? 答案就是通过各种各样...
netlink socket可以使用select函数么 我在应用程序中创建了一个netlink socket, 用想用select(fd + 1, &fdRead, 0, 0, &tv)来看当前有没有从内核发来消息,有的话再用recvmsg()函数接收,但是我发现select函数始终不能返回正数。直接用recvmsg()可以收到消息,但是我不想程序被阻塞。 哪位高手有好的解决方法,谢了先
用netlink socket编写向内核中增加路由程序的时候,子网掩码和物理接口怎么加入? 在rta_type中只有RTA_DST,RTA_SRC,RTA_GATEWAY, 没有子网掩码的rta_type. 请教各位大虾.
用netlink socket编写向内核中增加路由程序的时候,子网掩码和物理接口怎么加入? 在rta_type中只有RTA_DST,RTA_SRC,RTA_GATEWAY, 没有子网掩码的rta_type. 请教各位大虾.
请问我们在运用netlink socket可以完成用户空间与内核的通信。可是我们知道linux的网络结构就是应用层属于用户空间,其余层次的属于内核范畴,在运用BSD socket就可以完成网络通信,但是其仍然是完成用户空间与内核的交互嘛,毕竟数据包要经过应用层传输到内核后发送到网络上。但是,不是说要完成用户空间与内核的交互只能运用netlink嘛,我搞昏了,麻烦各位指点一下,谢过!!
2007-12-11 [Copy] Why and How to Use netlink socket 关键字: netlink 作者:Kevin He,2005-01-05 原文地址: http://www.linuxjournal.com/article/7356 译者:Love. Katherine,2007-03-23 译文地址: http://blog.csdn.net/lovekatherine/archive/2007/03/23/1539267.aspx 转载时务必以超链接形式标明文章原始出处及作者、译者信息。 ...
两年前看到这篇入门文章,这几天看书遇到netlink socket,就又读了一遍,顺便翻译了一篇放上来,对原文中例子代码的一些 小问题进行了修改,如果译文有不清楚或者错误的地方,敬请指出!! 顺带附上了原文地址,大家可以参考E文。 另外,word文档打印成PDF也作为附件提供下载,方便大家离线阅读。 =============================== 做了个简单的应用,整理成第二篇 http://bbs.chinaunix.net/viewthread.php?tid=1274437&pid=932887...
我自己写了一个模块,就是当neifilter接受到ICMP包的时候就放入NET_QUEUE队列,然后在用户层使用netlink机制进行接受这样的包,但是我的用户层怎么会失败,当我用ip_queue模块的时候就可以,不知道怎么回事,下面的user.zip是用户层的源代码,module是那个我写的icmp模块,麻烦大家看下
netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(netlink_ROUTE),1-wire 子系统(netlink_W1),用户态 socket 协议(netlink_USERSOCK),防火墙(netlink_FIREWALL),socket 监视(netlink_INET_DIAG),netfilter 日志(netlink_NFLOG),ipsec 安全策略(netlink_XF...