- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络课程设计之网卡linux驱动程序
网络课程设计
-----linux网卡驱动程序pcnet32
目录
1. 开发环境与开发语言 2
2. Linux操作系统概述 2
2.1. Linux内核简介 2
2.2. Linux 设备驱动程序概述 3
2.3. 编写网络驱动程序的一些基本概念 4
3. Linux 网络栈 4
3.1. 网络栈的 Internet 模型 5
3.2. Linux 高级网络栈架构 6
3.2.1. 系统调用接口 6
3.2.2. 协议无关接口 6
3.2.3. 网络协议 7
3.2.4. 设备驱动程序 7
4. Pcnet32网卡驱动分析 8
4.1. PCNET32驱动程序的pcnet32_private结构 8
4.2. 网卡设备的初始化 11
4.3. 网卡数据发送的基本流程 12
4.4. 数据报在链路层的发送 12
4.5. 网卡数据接收过程简述 15
5. Linux中驱动程序应用 15
5.1. Pcnet32驱动程序编译与生成 15
5.1.1. Makefile文件代码 15
5.1.2. make编译生成驱动程序 15
5.2. pcnet32驱动安装与初始化 16
5.3. Pcnet32驱动程序发送数据 17
6. 参考书目 17
7. 小组成员及分工 18
8. 卷尾语 18
开发环境与开发语言
开发工具:GCC、CentOs linux操作系统(内核2.6.18)、vi、SourceInsight3.0
调试:在linux系统中通过make命令(需要编写相应的makefile文件)进行编译、连接、生成;
开发语言:C
Linux操作系统概述
Linux操作系统是UNIX操作系统的一种克隆版本,最早是由芬兰大学生Linus Torvalds于1991年开始开发的于1991年的10月5日第一次正式向外公布,以后借助于互联网,经过一群遍布于全世界的Internet上的自愿参加的程序员努力加上计算机公司的支持Linux的影响和应用日益广泛发展成为目前世界上用户最多的一种类UNIX操作系统。Linux 目前是计算机技术的一大热点,最近几年在我国得到迅猛发展,被广泛应用在嵌入式系统、服务器和桌面应用等领域。Linux内核简介来一下Linux操作系统的体系结构可以从两个层次上来考虑操作系统,如图 所示
GNU/Linux 操作系统的基本体系结构最上面是用户(或应用程序)空间。这是用户应用程序执行的地方。用户空间之下是内核空间,Linux 内核正是位于这里。GNU C Library (glibc)也在这里它提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制。这点非常重要,因为内核和用户空间的应用程序使用的是不同的保护地址空间每个用户空间的进程都使用自己的虚拟地址空间,而内核则占用单独的地址空间。实际上,体系结构可能并不像图所示的一样清晰。例如,处理系统调用(从用户空间切换到内核空间)的机制可能在各个体系结构上都不相同。
Linux 系统模块及功能图
Linux是个人计算机和工作站上的Unix类操作系统,但是,它绝不仅仅是简化的Unix系统。相反,Linux是具有创新意义的Unix类操作系统。它不仅继承了Unix的特征,而且在许多方面超过了Unix。作为Unix类操作系统,Linux内核具有下列基本特征:Linux内核的组织形式为整体式结构、Linux的进程调度方式简单而有效、Linux支持内核线程(或称守护进程)、Linux支持多种平台的虚拟内存管理、虚拟文件系统(VFS)、Linux的模块机制使得内核保持独立而又易于扩充,网络部分采用了面向对象的设计思想,使得Linux内核支持多种协议、多种网卡驱动程序变得更加的容易,为驱动的开发提供了便捷性,减少了工作量,提高了工作效率。
Linux 设备驱动程序概述Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加。Linux系统的设备分为字符设备(char?device),块设备(block?device)和网络设备(net?work?device)三种编写网络驱动程序的一些基本概念无论是什么操作系统的驱动程序,都有一些通用的概念。操作系统提供给驱动程序的支持也大致相同。下面简单介绍一下网络设备驱动程序的一些基本。??发送和接收这是一个网络设备最基本的功能。一块网卡所做的无非就是所以驱动程序要告诉系统的发送函数在哪里,系统在有数据要发送时就会调用发送程序。驱动程序由于是直接操纵硬件的,所以网络硬件有数据收到最先能得到这个数据的就是驱动程序,它负责把这些原始数据进行必要的处理然后送给系统。这里,操作系统必须要提供两个机制,一个是找到驱动程序的发送函数,一个是驱动程序把收到的数据
文档评论(0)