Linux网络设驱动程序介绍07205040203.docVIP

  • 3
  • 0
  • 约2.47万字
  • 约 13页
  • 2016-10-09 发布于贵州
  • 举报
Linux网络设驱动程序介绍07205040203

Linux网络设备驱动程序介绍 07205040203, (安徽建筑工业学院 电子与信息工程学院 通信工程2班) 摘 要: Linux网络设备驱动程序是Linux网络应用的重要组成部分。本文详细分析了Linux内核中网络设备驱动程序的运行机理,并着重介绍了实现Linux网络驱动程序的关键过程,最后给出了一种实现模式和具体实例。 关键词: Linux操作系统;网络设备驱动程序;内核;模块 Linux network device driver description 07205040203, (07 Communication Engineering 2 Course,,Electronic and Information Engineering,Anhui University of Architecture,230031, China) Abstract: Linux Network Linux network device driver is an important part of the application. This paper analyzes the Linux kernel network device driver running mechanism, with an emphasis on Linux network drivers to achieve the key processes, and finally an implementation model and given specific examples. Key words: Linux operating system; network device driver; kernel; module 0 引言 1驱动程序设计原理 1.1体系结构 1.2初始化 1.3数据包的发送与接收 2实现模式 3 LINUX系统下的设备驱动程序 3.1入口点结构 3.2入口点位置 3.3 LINUX系统下的具体实现 4应用实例 4.1模块加载和卸载 4.2网络接口初始化 4.3网络接口设备的打开和关闭 4.4数据包的接收和发送 5 结束语 0引言 Linux网络设备驱动程序是Linux网络应用中一个重要的组成部分,分析其运行机理,对于设计Linux网络应用程序很有帮助。因为有时需要我们在网络驱动程序这一层次做应用开发,例如,设计Linux防火墙和网络入侵检测系统时,可以在网络驱动程序的基础上拦截网络数据包,继而对其进行分析。本文将就Linux内核中的网络设备驱动程序部分进行讨论,并介绍实现Linux网络设备驱动程序的方法。 1. 1体系结构 Linux网络驱动程序的体系结构可以划分为四层(参见图1),从上到下分别为网络协议接口层、网络设备接口层、提供实际功能的设备驱动功能层,以及网络设备和网络媒介层。我们在设计网络驱动程序时,最主要的工作就是完成设备驱动功能层,使其满足我们所需的功能。在Linux中所有网络设备都抽象为一个接口,这个接口提供了对所有网络设备的操作集合。由数据结构 struct device来表示网络设备在内核中的运行情况,即网络设备接口。它既包括纯软件网络设备接口,如环路(Loopback),也包括硬件网络设备接口,如以太网卡。而由以dev_base为头指针的设备链表来集体管理所有网络设备,该设备链表中的每个元素代表一个网络设备接口。数据结构device中有很多供系统访问和协议层调用的设备方法,包括供设备初始化和系统注册用的init函数,打开和关闭网络设备的open和stop函数,处理数据包发送的hard_start_xmit函数,以及中断处理函数等。有关device数据结构(在内核中就是net_device)的详细内容,可以参看/linux/include/linux/netdevice.h。 2 初始化 网络设备的初始化主要由device数据结构中的init函数指针所指向的初始化函数来完成,当内核启动或加载网络驱动模块的时候,就会调用这个初始化函数。在初始化函数中通过检测物理设备的硬件特征来侦测网络物理设备是否存在,然后再对设备进行资源配置,接下来构造设备的device数据结构,并用检测到的数据对device中的变量初始化,最后向Linux内核注册该设备并申请内存空间。 数据包的发送与接收 数据包的发送和接收是实现Linux网络驱动程序中两个最关键的过程,对这两个过程处理的好坏将直接影响到驱动程序的整体运行质量。 在网络设备驱动加载时,通过device域中的init函数指针调用网络设备的初始化函数对设备进行初始化,如果操作成功再通过device域中的open函数指针调用网络

文档评论(0)

1亿VIP精品文档

相关文档