在实际的项目中,最难缠的问题就是内存泄漏,当然还有panic之类的,内存泄漏分为两部分用户空间的和内核空间的.我们就分别从这两个层面分析一下.     &nb...
阅读(10) 评论(0)
    对于常规的iptables match或者target扩展肯定不能满足我们的需要,并且默认iptables也只识别到五元组,在深入识别已经很吃力了.显然在实际的需求面前,我们不会止步于此.下面就讲讲...
阅读(21) 评论(0)
     说起DMA我们并不陌生,但是实际编程中去用的人不多吧,最多就是网卡驱动里的环形buffer,再有就是设备的dma,下面我们就分析分析.    DMA用来在设备内存和...
阅读(70) 评论(0)
       对于内核的内存管理,像kmalloc,vmalloc,kmap,ioremap等比较熟悉。而对用户层的管理机制不是很熟悉,下面就从malloc的实现入手.( 这里不探讨li...
阅读(44) 评论(0)
     搞过网络的人,一般都会用到抓包分析工具,在windows下一般就是wireshark,在linux下面一般系统自带tcpdump. 这里我们就说说tcpdump,对于它的如何使用,请看资...
阅读(110) 评论(0)
   上一节只是说了关于网桥的接收处理,这里分析下网桥模块的初始化工作. 对于桥的用户空间配置工具一般来说有brctl和ebtables.   参考内核 2.6.32.61   ker...
阅读(64) 评论(0)
      关于桥的知识,网上有很多文章,网桥从开始的硬件设备,到现在linux内核的软实现,包括后来的vlan,switch芯片.这里也是参考了《深入理解linux网络内幕》中桥的部分...
阅读(185) 评论(0)
    关于帧的接收,其实在前面Napi机制中,我们已经能够明白大致流程,或者网卡驱动的流程. 但是这里仍要在说一下,注意一些细节,和系统的勾画一下画面.    其实这个流程...
阅读(45) 评论(0)
   在做驱动的时候,写网卡驱动,最多会用到register_netdev , alloc_netdev这些常用的接口,然后就是结构体的初始化.至于注册进入内核后,是一个怎么样的流程,一直是一个觉...
阅读(83) 评论(0)
   在看网络设备初始化一节时,有个特殊的宏没有讲,static int __init net_dev_init(void) 即 粗体字__init ,如果经常看驱动或者内核代码人,会经常看到,当然在驱动模...
阅读(65) 评论(0)
       对于热插拔,当然网上有很多资料,包括刚开始我也简单的讲过usb 热插拔. 当时说道2.6以后的内核都用uevent机制来代替老的机制.(具体从那个版本改变的可以看linux...
阅读(58) 评论(0)
    由于做网络通信设备,所以平时在测试时候,需要调试设备的网络性能,而测试当然需要工具 ,用的最多,也比较专业的就是smartbits. 下面做一个简单介绍(当然查资料的^^)   &nbs...
阅读(173) 评论(0)
    虽然做了很久的网卡驱动,熟悉npai机制,但是一直没有底气去深入内核学习,作为学习的引导书《深入理解linux网络内幕》,写点学习心得. 参考内核 linux   2.6.32...
阅读(273) 评论(0)