Linux网络驱动开发
发布时间
阅读量:
阅读量
1 Linux网络设备驱动程序概述
Linux网络驱动程序遵循统一的接口规范。在设计过程中,采用了面向对象的开发方式。
每一个设备都被视为一个独立的对象(net_device 结构),其内部包含专属的数据成员和操作方法。
对于网络设备而言,最基本的操作方法包括初始化、发送和接收数据。
Linux网络驱动程序的整体架构可被划分为四个层级:
网络协议接口层、网络设备接口层、设备驱动功能层以及网络设备与网络媒介层。
在网络驱动程序中,最为关键的任务是实现设备驱动功能层的功能。在Linux系统中,所有网络设备均被抽象为一个统一的接口,该接口提供了对各类网络设备进行操作的完整集合。这一接口由数据结构struct net_device表示,在内核中用于描述网络设备,即所谓的网络设备接口。它不仅涵盖纯软件形式的网络设备接口,例如环回(Loopback)接口,还包括硬件相关的网络设备接口,如以太网卡等。
所有网络设备由以dev_base作为头指针的链表结构进行集中管理,链表中的每个节点对应一个具体的网络设备接口。
数据结构net_device中包含了大量供系统访问及协议层调用的方法函数,例如用于初始化、开启和关闭网络设备的open与stop函数;负责处理数据包发送过程的hard_start_xmit函数;以及用于中断处理的相关函数等。
在网络系统中,Linux
全部评论 (0)
还没有任何评论哟~
