看了一篇有关内核零拷贝技术的文章--火大

今天去研究了下内核零拷贝技术,没碰到内核态怎么实现,倒是碰到了一个讲用户态怎么使用的,看了就火大,浪费时间,浪费心情,一副长篇大论就得出一个结论用sendfile这个函数就能实现“零拷贝”,我怀疑那是个白痴,就那点技术水平也拿出来献真是,浪费了不少感情。你man sendfile,手册里就明确指出了这要比send和write快,因为sendfile没有切换到用户态。
先帖出原文地址,这人的文章垃圾的很。归根结底还是采用的是DMA技术,哪是所谓的零拷贝。最恨那些老外今天发明个概念,明天发明个概念,让你捉摸不透,捉摸透了,其实也不过是一种技术的另一种叫法。
那人还说要出个内核态的讲解,这个只是用户态的,文章是2003年的,但翻译过来时是2007年的,唉,去搜了搜,现在2008了就没出了他对内核态的讲解,这还用说,跟本就不用它讲,要将也只是讲DMA的实现。你说他为什么非得把DMA改成叫内核零拷贝,前两天我翻译了个PF_RING的,其实也是用DMA的,这老外真是喜欢故弄玄虚。
当然有我们中国人的译文,对翻译的作者我们还是表示感谢的,要不然,看完英文才知道作者的那丁点技术,还不是郁闷死。下面给出链接
下面给出一个可以看到图片的链接,上面的那个文章没图片
这就是我从一个帖子上发现一个人的评论说完全没得意思得技术。下面是帖子地址。感谢他能够正确直到一下大家,可惜未被重视。
 
最后再帖一个有关sendfile性能测试的文章,作者仿佛没有感受到这个有多大的性能的提升。
真正的零拷贝技术应该包括两方面,
1,驱动程序和内核之间的零拷贝,这可以通过事先分配可DMA的sk_buff,
并让网卡直接将数据包接收到该sk_buff。
2,内核和进程之间的零拷贝,这可以将相应的sk_buff的数据
mmap到进程的内存空间。
这个PF_RING就是这个思路,只不过它的缓冲区是个环形缓冲区而已。
所以PF_RING跟内核零拷贝思路是一致的,而实现PF_RING的这个人才算是真正的技术牛人。
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(775) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-04-16 01:00:41

我的email: wirelesser[at]hotmail.com,有机会回复以下 我看pf_ring 也没有实现zero-copy吧,当然他支持一个叫DNA的设备,那个有没实现我不清楚,对于常规的网卡它内核里肯定要做一次skb->用户空间内存的copy

评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值