网络课程设计之网卡linux驱动程序

网络课程设计之网卡linux驱动程序

ID:9872484

大小:481.50 KB

页数:18页

时间:2018-05-13

网络课程设计之网卡linux驱动程序_第1页
网络课程设计之网卡linux驱动程序_第2页
网络课程设计之网卡linux驱动程序_第3页
网络课程设计之网卡linux驱动程序_第4页
网络课程设计之网卡linux驱动程序_第5页
资源描述:

《网络课程设计之网卡linux驱动程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网络课程设计-----linux网卡驱动程序pcnet32目录1.开发环境与开发语言22.Linux操作系统概述22.1.Linux内核简介22.2.Linux设备驱动程序概述32.3.编写网络驱动程序的一些基本概念43.Linux网络栈43.1.网络栈的Internet模型53.2.Linux高级网络栈架构63.2.1.系统调用接口63.2.2.协议无关接口63.2.3.网络协议73.2.4.设备驱动程序74.Pcnet32网卡驱动分析84.1.PCNET32驱动程序的pcnet32_private结构84.2.网卡设备的初始化114.3.网卡数据发送的基本流程124.4.数据报在链路层

2、的发送124.5.网卡数据接收过程简述155.Linux中驱动程序应用155.1.Pcnet32驱动程序编译与生成155.1.1.Makefile文件代码155.1.2.make编译生成驱动程序155.2.pcnet32驱动安装与初始化165.3.Pcnet32驱动程序发送数据176.参考书目177.小组成员及分工188.卷尾语181.开发环境与开发语言开发工具:GCC、CentOslinux操作系统(内核2.6.18)、vi、SourceInsight3.0调试:在linux系统中通过make命令(需要编写相应的makefile文件)进行编译、连接、生成;开发语言:C2.Linux操作系

3、统概述Linux操作系统是UNIX操作系统的一种克隆版本,最早是由芬兰大学的学生LinusTorvalds于1991年开始开发的,并于1991年的10月5日第一次正式向外公布,以后借助于互联网,经过一群遍布于全世界的Internet上的自愿参加的程序员的不懈努力,加上计算机公司的支持,Linux的影响和应用日益广泛,发展成为目前世界上用户最多的一种类UNIX操作系统。Linux目前是计算机技术的一大热点之一,最近几年在我国得到迅猛发展,被广泛应用在嵌入式系统、安全产品、服务器和桌面应用等领域。2.1.Linux内核简介在最开始的时候,Linux系统并没有现在所看到的Linux系统的体积这么

4、庞大,各种免费开放的驱动代码也还没有来得及加入到系统中,所以,之初的Linux实际意义上就是Linux内核。首先来分析一下Linux操作系统的体系结构,可以从两个层次上来考虑操作系统,如下图1所示:GNU/Linux操作系统的基本体系结构图最上面是用户(或应用程序)空间。这是用户应用程序执行的地方。用户空间之下是内核空间,Linux内核正是位于这里。GNU“GNU'sNotUnix”的递归缩写CLibrary(glibc)也在这里,它提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制。这点非常重要,因为内核和用户空间的应用程序使用的是不同的保护地址空间,每个用

5、户空间的进程都使用自己的虚拟地址空间,而内核则占用单独的地址空间。实际上,体系结构可能并不像图1所示的一样清晰。例如,处理系统调用(从用户空间切换到内核空间)的机制可能在各个体系结构上都不相同。Linux系统支持多个进程的并发运行,每个进程都请求系统资源,比如运算、内存、网络连接或其他一些资源等。内核负责处理所有这些请求,根据内核完成任务的不同,我们可以将内核划分成如下图2的功能模块:Linux系统模块及功能图Linux是个人计算机和工作站上的Unix类操作系统,但是,它绝不仅仅是简化的Unix系统。相反,Linux是具有创新意义的Unix类操作系统。它不仅继承了Unix的特征,而且在许多

6、方面超过了Unix。作为Unix类操作系统,Linux内核具有下列基本特征:Linux内核的组织形式为整体式结构、Linux的进程调度方式简单而有效、Linux支持内核线程(或称守护进程)、Linux支持多种平台的虚拟内存管理、虚拟文件系统(VFS)、Linux的模块机制使得内核保持独立而又易于扩充,网络部分采用了面向对象的设计思想,使得Linux内核支持多种协议、多种网卡驱动程序变得更加的容易,为驱动的开发提供了便捷性,减少了工作量,提高了工作效率。1.1.Linux设备驱动程序概述Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加

7、。Linux系统的设备分为字符设备(char device),块设备(block device)和网络设备(net work device)三种。其中网络接口:任何网络事件都是通过一个网络接口形成的,一个网络接口就是一个能够和其他主机交换数据的设备。通常,接口都是硬件设备,但也可能是纯软件设备,比如回环(loopback)接口。网络接口由内核中的网络子系统驱动,负责数据包的接收和发送,但它不需要了解每项事务是如何映射到实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。