基于linux下网卡驱动分析及实现技术研究.rar

RAR格式版权申诉手机打开展开

基于linux下网卡驱动分析及实现技术研究,摘 要linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统、服务器、网络系统、安全等领域。从而使得掌握在 linux环境下的开发技术,成为了计算机行业中引人注目的焦点。linux 作为在网络中诞生的操作系统,网络设备是其不可缺少的重要组成部分。本文首先介绍了linu...
编号:50-216475大小:1.45M
分类: 论文>计算机论文

该文档为压缩文件,包含的文件列表如下:

内容介绍

原文档由会员 下天行龙 发布

摘    要

Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统、服务器、网络系统、安全等领域。从而使得掌握在 Linux环境下的开发技术,成为了计算机行业中引人注目的焦点。
Linux 作为在网络中诞生的操作系统,网络设备是其不可缺少的重要组成部分。本文首先介绍了Linux下设备驱动程序设计的基本知识,其中包括对Linux的发展历程、内核、特性的概述,Linux设备的分类及编写驱动程序的一些基本概念等,以及模块的加载和卸载。介绍了AMD 79C970网卡驱动程序开发的硬件环境和软件环境。阐述了该驱动程序在开发时的需求分析。结合网卡驱动程序对Linux环境下网卡驱动程序的设计与实现作了理论上的探讨,重点从网卡驱动模块的加载、网络设备的初始化、设备打开与关闭、数据的发送与接收、信息统计、网卡驱动模块的卸载等方面按步骤的进行了详细的讨论。最后介绍了在驱动程序开发设计过程中所遇到的问题和困难以及是如何去克服这些困难的,并提出了今后的努力方向。


关键词:Linux 模块 网卡设备 网卡驱动程序 网络栈协议

 

 

注:本设计(论文)题目来源于自拟题目。

 

 

Analysis and the implementation technology research
of NIC driver based on linux

Abstract
Linux technology is a hot spot among computer technology nowadays, and it developes at high speed not only in our country but also in the whole world, and it has applied widely in embedded system, server, network system, security area and so on. So it makes that grasping the development technology under the Linux environment is more and more noticeable in computer industry.
As the operating system,linux was born in the network , and the network equipment is the indispensable important component .This thesis firstly introduces the fundamental knowledge about design of linux device driver, which generally includes the development procedure, kernel, and characteristic of linux. Meanwhile, the categorization of linux device, elemental terminology of exploiting network interface card driver, and loading and unloading the driver module are also mentioned in this thesis. This thesis also presents both the hardware and software environment of the driver development, and the requirement specification of driver development are elaborated here. Combined with the driver of AMD 79C970 chip, this thesis discusses the design and realization of the network interface card driver in theory, especially makes more detailed discussions step by step, such as loading the driver module, initialization of the device, starting and stopping of the device, transmission and receiving of data, information statistics, unloading the driver module, etc. Finally, this thesis lists all the problems and difficulties met during the whole process of designing driver, and how to conquer them and advanced direction of future study are also recounted.

Keywords: linux module, NIC,NIC Driver,Network stack protocol
 
目    录
1 绪论 1
1.1选题背景及意义 1
1.2国内外研究现状 1
2 概述 2
2.1 Linux系统简介 2
2.2 Linux内核简介 2
2.3 网卡简介 4
2.4 Linux网络栈协议 4
2.4.1 网络栈的 Internet 模型 4
2.4.2 Linux 高级网络栈架构 5
2.5 Linux 设备驱动程序 8
2.6 Linux网络驱动程序 8
2.7 基本概念 9
2.7.1 设备文件 9
2.7.2 Linux硬件驱动架构 10
2.7.3 发送和接收 10
2.7.4 中断 11
2.7.5 时钟 11
2.8 开发环境 11
2.9 调试环境 11
3 程序分析 12
3.1 可行性分析 12
3.1.1 技术可行性 12
3.1.2 经济可行性 12
3.2 需求分析 12
3.3 开发过程分析 13
4 程序设计 14
4.1模块设计 14
4.2基本数据结构 15
4.2.1数据包结构 15
4.2.2数据包操作函数 20
4.2.3其他关键数据结构 21
4.3网络驱动程序的基本方法 28
4.3.1初始化设置 30
4.3.2打开 31
4.3.3关闭 32
4.3.4数据包传输 32
4.3.5接收 33
4.3.6硬件帧头 34
4.3.7参数设置和数据统计 35
4.4编写中需要注意的问题 35
4.4.1中断共享 35
4.4.2硬件发送忙时处理 36
4.4.3流量控制 36
4.4.4模块化和非模块化设计 37
5 程序实现 38
5.1初始化策略 38
5.2函数调用关系 39
5.3核心启动初始化具体流程 40
5.4网卡设备的初始化 44
5.5网卡数据发送的基本流程 48
5.5.1中断过程 48
5.5.2发送过程 49
5.5.3数据报在链路层的发送 50
5.6网卡数据接收的基本流程 51
5.6.1数据报在链路层的接收 53
6 程序测试 55
6.1 驱动程序编译与生成 55
6.2 驱动程序信息 55
6.3 驱动安装与初始化 55
6.4 网络基本功能测试步骤 56
6.5 数据报协议解析 57
6.6 驱动程序统计信息 58
7 结论 60
参考文献 61
致 谢 62