免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5142 | 回复: 15
打印 上一主题 下一主题

[通信方式] 经典面试之二:netlink有什么好处? [复制链接]

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-23 16:55 |只看该作者 |正序浏览
本帖最后由 Godbach 于 2012-05-24 10:41 编辑

求赐教

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
16 [报告]
发表于 2012-11-27 10:21 |只看该作者
但问题是netlink老需要挂在某dev 设备上,这个恶心的问题如何解决?另外一个是数据包缓存/清除问题。

论坛徽章:
0
15 [报告]
发表于 2012-11-27 09:24 |只看该作者
netlink相对于系统调用,ioctl以及/proc文件系统而言焗油以下优点:
1、为了使用netlink,用户仅需要在include/linux/netlink.h中添加一个新类型的netlink协议定义即可,如#define NETLINK_MYTEST 17,然后,内核和用户态应用就可以通过socket API使用该netlink协议类型进行数据交换。但系统调用需要增加新的系统调用,ioctl则需要增加设备或文件,那需要不少代码,/proc文件系统则需要在/proc下添加新的文件或目录,那将使本来就混乱的proc更加混乱。
2、netlink是一种异步通信机制,在内核用户态应用之间传递的消息保存在socket缓存中,发送消息只是把消息保存在接受者的socket的接收队列,而不需要等待接收者收到消息,但系统调用与ioctl则是同步通信机制,如果传递的数据太长,将影响调度粒度。
3、使用netlink的内核部分可以采用模块的方式实现,使用netlink的应用部分和内核部分没有编译依赖,但系统调用就有依赖,而且新的系统调用的实现必须静态地连接到内核中,它无法在模块中实现,使用新的系统调用的应用在编译时需要依赖内核。
4、netlink支持多播,ioctl和系统调用只是单播。
5、内核可以使用netlink首先发起会话,但系统调用和ioctl只能由用户发起调用。
6、netlink使用标准的socket API,因此很容易使用。

论坛徽章:
0
14 [报告]
发表于 2012-08-25 17:29 |只看该作者
作为内核和用户空间通信的方式之一,好像主要是网络参数的配置和查询用得比较多吧,呵呵。

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
13 [报告]
发表于 2012-08-24 19:36 |只看该作者
回复 12# androidfried1
面试和相亲很相似:乘兴而去, 败兴而归

   

论坛徽章:
0
12 [报告]
发表于 2012-08-23 16:44 |只看该作者
1. duplex.
2. multicast
3. asynchronous
4. buffered IO
?

I hate such questions. Just like a teacher VS student.

论坛徽章:
0
11 [报告]
发表于 2012-08-22 23:11 |只看该作者
回复 4# Godbach


    在实际应用中,netlink非常普遍,至少网络这一块儿基本都是使用netlink实现的,

论坛徽章:
0
10 [报告]
发表于 2012-08-22 10:54 |只看该作者
smalloc 发表于 2012-05-24 12:04
。怎么把我的帖子分内改了。!。
当时我想,最最最要紧最重点的一句搞定吧,于是说,能在中断上下文发包并 ...


因为对于netlink不是太了解,但“能在中断上下文发包”,有点疑问。如果使用kernel里面发送uevent包的方法(kobject_uevent_env/kobject_uevent),里面均有不少睡眠的函数存在,请问,大神们一般是怎么使用这个netlink的?

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
9 [报告]
发表于 2012-05-25 10:16 |只看该作者

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
8 [报告]
发表于 2012-05-25 09:39 |只看该作者
回复 7# Godbach


    我说想不到其他好处了(本意是想说没有其他值得说的好处了)。然后被BS。于是我反问,那还有什么其他好处了,面试官轻摇头笑而不语。
我回来就纠结了。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP