您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于Linux的USB网络设备驱动程序的研究
华中科技大学硕士学位论文基于Linux的USB网络设备驱动程序的研究姓名:李全申请学位级别:硕士专业:软件工程指导教师:陆永忠2010-11-01I华中科技大学硕士学位论文摘要Linux操作系统作为一个免费的开源操作系统,与其它的操作系统相比有着相当明显的优势。特别是嵌入式Linux操作系统,越来越广泛的应用于各种领域。现在到处都可以见到嵌入式产品的踪影,像手机、PDA、路由器以及越来越多的多媒体移动终端,这些产品中有许多使用的是嵌入式Linux系统。因此对Linux操作系统的分析和研究显的越来越重要,而且正是由于Linux系统开源的特性,为我国扭转操作系统技术落后的局面提供了良好的机遇。而设备驱动程序作为进入Linux内核世界的大门,其作用显得尤为重要,它为进入Linux内核世界提供了一条道路。并且随着层出不穷的外围设备的增多,编写设备驱动程序也是一件必不可少的事情,因而对Linux设备驱动程序的研究具有很高的价值。首先简单介绍了Linux内核结构的组成成分以及各个子系统之间的相互关系和它们各自的工作机制,然后针对三类标准的Linux设备分别详细介绍了设备驱动的结构以及编写每一类设备驱动的方法和流程,紧接着提出了编写驱动时应该注意的一些问题和解决方法,最后结合在实习期间所做的项目经历,从完整的Linux源代码定制了一个经过裁剪的小型Linux操作系统,并在此系统的基础上对基于USB的网络设备驱动进行了分析并且实现了一个关于USB的无线网卡的驱动程序。通过所做的工作内容,能够更加深入的了解Linux操作系统的原理和工作方式。同时通过对设备驱动开发过程中遇到的问题的总结,从而对设备驱动模型能够进行更加透彻的理解,可以为操作系统其它的方面的研究和开发提供参考价值,为下一步工作打好基础。关键词:设备驱动LinuxUSB驱动程序无线网卡内核接口网络II华中科技大学硕士学位论文AbstractAsafreeopensourceoperatingsystem,Linuxcomparedwithotheroperatingsystemhasaquiteobviousadvantage.EspeciallyembeddedLinuxoperatingsystemhasbeenusedinvariousfields.Nowtheembeddedproductscanbeseenineverywhere,likemobilephones,pdas,routersandvariousmobileterminals,manyofwhichusetheembeddedLinuxoperatingsystem.ThereforetheresearchandanalysisfortheLinuxoperatingsystemwillbeveryimportant.ThecharacteristicsofLinuxprovidesagoodopportunityforChinareversingthebackwardtechnologyofoperatingsystem.whilethedevicedriversastheenteranceofLinuxworld,theeffectsofwhichisveryimportantandprovideawayforustogointotheLinuxkernelworld.Withendlessperipheraldevicesappearing,writingthedevicedriversisanessentialthing,sotheresearchofLinuxdevicedrivershasahighvalue.Linuxkernelstructurecompositionandtherelationshipbetweenthevarioussubsystemswiththeirworkingmechanismareintroduced.ThedevicedriversstructureandtheapproachsofwritingthedriversaredescribedindetailsforthethreestandarddevicesofLinux,thentheproblemsandsolutionsareproposedwhichshouldbepaiedattentiontointhedevicedriversdevelopment.Anetwork-basedUSBdevicedriverisanalyzedandausbwirelessnetworkcarddriverisimplemented.Withtheworkdoneinthecontentofthisarticle,theprinciplesandwaysofworkingcanbeamorein-depthunderstandedoftheLinuxoperatingsystem.Withsummarizingtheproblemsencountedinthedevicedriverdevelopment,thedevicedrivermodelhasbeenunderstandedindepth,whichcanprovidereferencefortheotherresearchanddevelopmentofLinuxandlaythefoundationforfuturework.Keywords:DeviceDriverLinuxUSBWirelessCardKernelNetwork1华中科技大学硕士学位论文1绪论1.1研究背景与意义Linux操作系统出自于1991年芬兰赫尔辛基大学一位叫做LinusTorvalds的学生之手,但随后迅速作为一个高级操作系统风靡全球。从仅仅支持Intel386处理器的第一个发行版本,在不到20年的时间涌向出一批优秀的Linux发行版本,例如RedHat、ubuntu、FreeBSD等。最初的Linux内核编译后只有几百K的大小,结构和功能都比较单一。但在随后的时间内迅速成长,不仅支持多种硬件体系结构、多处理器硬件,而且具有高性能、高度内聚的特性,并且内核的规模还在以疯狂的速度不断地增长。到目前为止,Linux支持的一些主要的体系结构有x86,IA64,ARM,PowerPC,Alpha,s390,MIPS和SPARC。Linux已经被移植到几百种围绕着这些处理器搭建的平台上,并广泛应用于工业、农业、航天、水利等各个行业。由于互联网的飞速发展和计算机技术的不断进步,Linux的优势日益凸显。与面对市场上商业化的操做系统相比,Linux开放源代码这种自由软件的精神使其不受市场的约束,使用者无需任何花费就可以得到一整套完整的Linux内核源代码,而且可以通过内核的编译选项,根据自己需要的特征的来定制内核,完全自由的阅读、修改源代码。同时在Linux中有非常丰富的开发工具,如基于GUN的工具包。在某种程度上说Linux的诞生是基于GUN项目的发展。正是如此,使得Linux的应用越来越广泛,无论是在服务器还是在嵌入式领域。特别是在嵌入式领域,Linux与其它的操作系统相比有着天然的优势[1]。虽然Linux操作系统日益庞大,但增长的部分主要是新硬件的设备驱动部分,这也是Linux支持越来越多外设的主要原因。Linux设备驱动程序在内核中扮演着重要的角色,编写设备驱动是进入内核世界的入口。对Linux设备驱动的研究能够帮助我们理解Linux内核,同时新设备的开发离不开驱动程序,必须要有配套的驱动程序设备才能更好的运转。因此学习设备驱动的原理和学习编写设备驱动程序才能从根本上理解Linux内核。从国家软件产业发展状况来看,操作系统是传统产业转2华中科技大学硕士学位论文型的关键,而且面对国外商业操作系统垄断的格局,发展自己的操作系统显的尤其重要,它对我国制造业能力的提升,产品的自主创新能力有重要的影响。1.2国内外研究现状正是由于互联网技术的飞速发展,国内外许多个人、组织和企业开发了基于GUN/Linux的发行版本。如最早的就有RedHat公司,但由于RedHat公司之前一直处于亏损状,正统的RedHat发行版本只发行到RedHat9.0,随后公司发布了收费的版本RedHatEnterpriseLinux才将公司扭亏为盈。至此,RedHat分为两个系列:由RedHat公司提供收费版的RHEL和社区提供免费的FedoraCore。SUSE是德国发行的Linux发行版,在全世界收到欢迎。然而最值得一提的是Debian,它算是最遵循GUN规范的Linux发行版本。目前,这些发行版本由各个社区自己组织并维护发行。Linux除了应用于桌面系统外,而且广泛应用于嵌入式系统中。由于嵌入式系统的发展,嵌入式产品渗入各个行业领域,因此越来越多的国家、企业、学校和个人投入到嵌入式操作系统的研究与开发中去,并且出现了很多成熟的嵌入式Linux操作系统。如RT-Linux、ucLinux等。RT-Linux是由美国新墨西哥州大学计算机系开发的。他们将标准的Linux内核进行改造,通过增加一个可抢断的实时内核使标准内核进程可以和应用进程一起被调度,但标准内核进程的优先级最低,这样不仅能够提供Linux的各种服务,也可以实现实时环境。ucLinux是Lineo公司开发的一款优秀的嵌入式Linux版本,它虽然经过各方面的小型化改造,但继承了标准Linux的优良特性,形成了一个高度优化、代码紧凑的嵌入式操作系统。虽然它的体积很小,但保留了Linux的许多优点,有良好的移植性、优秀的网络功能和对各种文件系统的支持,编译后的目标文件只有几百KB的大小。ucLinux目前已经移植到了各种平台上。目前,国内的嵌入式Linux发展的也非常快,受到了各领域的关注,而且许多公司和研究机构也开发了相当成熟的嵌入式Linux系统。其中最出名的就是中科院软件研究所开发的红旗嵌入式Linux操作系统。1.3论文所做的工作本文以在实习期间所参与的项目为基础,并结合自己的知识结构,论文所作的3华中科技大学硕士学位论文主要工作如下:(1)对Linux操作系统内核的工作原理进行简要介绍和分析,主要着重讨论了设备管理的方法和理论。(2)对三类设备的驱动程序进行分析,并详细介绍了三类设备驱动程序的设计方法。(3)结合实习期间所参与的实际项目,介绍了基于Linux系统的USB网络设备的驱动程序实现,并给出了无线网卡驱动的一个实际应用。全文的组织结构如下:第一章绪论主要介绍研究的背景和意义,以及本文所作的工作。第二章主要分析Linux内核中的相关技术,介绍了各个子系统的工作机制,主要是设备管理的工作机制以及编写设备驱动的相关原理和技术。第三章根据实习期间参与的项目经历,分析了USB设备驱动的原理,并实现了一个USB无线网卡的驱动。第四章介绍了如何建立嵌入式环境,并将编写好的网卡驱动移植到嵌入式环境中,并针对测试中出现的问题提出了一个改进后的设备驱动开发模型。第五章对在Linux系统下进行设备驱动开发所遇到的问题和感受进行了总结,并给出了对未来工作的展望。4华中科技大学硕士学位论文2LINUX相关技术分析2.1Linux内核体系结构Linux内核是操作系统的核心,它是物理设备与应用程序的中间层,控制着各种外围设备并为应用程序提供各种服务。现代操作系统内核结构分为整体式的单内核和层次式的微内核两种模式。而Linux内核采用了单内核结构模式,单内核模式的优点是内核代码结构紧凑,各个子系统间功能明确而且易于互相访问,执行速度快,内核效率非常高[2]。1)Linux内核的组成Linux内核主要由5个子系统组成,分别是:进程管理、内存管理、文件系统、设备管理和网络接口。(1)进程管理,进程管理不仅负责进程的创建和销毁,而且采用适当的调度算法对进程进程调度,控制进程对CPU和其它资源的访问。调度算法是进程管理的核心,合适的调度算法使每个进程合理公平的访
本文标题:基于Linux的USB网络设备驱动程序的研究
链接地址:https://www.777doc.com/doc-1310288 .html