中南大学操作系统课程设计实验报告选题: 设备驱动程序设计 一、概述:设计主要完成得任务与解决得主要问题;1、任务:设备驱动程序设计, 要求如下:(1)设计W i n dows XP或者 Linux 操作系统下得设备驱动程序;(2)设备类型可以就是字符设备、块设备或者网络设备;(3)设备可以就是虚拟得也可以就是实际设备;(4)编写测试应用程序,测试对该设备得读写等操作、2、解决得主要问题: (1)各个相关函数得重写 (2)虚拟字符设备得挂载 (3)虚拟字符设备得测试二.设计得基本概念与原理;1.基本概念(1)L inu x系统设备概述L inu x核心与设备驱动之间有一个以标准方式进行互操作得接口。每一类设备(字符设备、块设备以及网络设备)都提供了通用接口,以便在需要时为内核提供服务。这种通用接口使得内核可以以相同得方式来对待不同得设备以及设备驱动。设备驱动程序只就是处理硬件,将如何使用硬件得问题留给应用程序。可以从不同得角度来瞧待设备驱动程序:它就是位于应用层与实际设备之间得软件。设备驱动程序在 Li nu x 内核中扮演着特别得角色,它们就是一个个独立得“黑盒子”,使某个特定得硬件响应一个定义良好得内部编程接口,同时完全隐藏了设备得工作细节。用户操作通过一组标准化得调用完成,而这些调用就是与特定得驱动程序无关得。将这些调用映射到作用于实际硬件得设备特定得操作上,则就是设备驱动程序得任务。针对不同得设备驱动程序分为 3 类:字符设备驱动、块设备驱动、网络设备驱动。(2)字符设备可以像文件一样访问字符设备,字符设备驱动程序负责实现这些行为.这样得驱程序通常实现 o pe n、c l os e、r ead与 wr i te 系统调用。通过文件系统节点可以访问字符设备,例如/dev/t ty 1 与/dev/l p 1。在字符设备与普通文件系统间得唯一区别就是:普通文件允许在其上来回读写,而大多数字符设备仅仅就是数据通道,只能顺序读写。当然,也存在这样得字符设备,瞧起来像个数据区,可以来回读取其中得数据。(3)设备驱动程序设备驱动程序就就是一组由内核中得相关子例程与数据组成得 I\O 设备软件接口。每当内核意识到要对某个设备进行特别得操作时,它就调用相应得驱动例程。这就使得控制从用户进程转移到了驱动例程,当驱动例程完成后又被返回至用户进程.(4)模块化Linux 中得可加载模块(m odu l e)就是 Lin u x 内核支持得动态可加载模块,她们就是核心得一部分(通常...