[精选]第10章设备管理(ppt 62).pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[精选]第10章设备管理(ppt 62).pptx》由会员分享,可在线阅读,更多相关《[精选]第10章设备管理(ppt 62).pptx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章设备管理设备管理第第10章章 主要内容主要内容 本章主要介绍了设备管理方面的有关知识:本章主要介绍了设备管理方面的有关知识:系统管理设备的方式。系统管理设备的方式。驱动程序运作过程。驱动程序运作过程。驱动程序的具体实例。驱动程序的具体实例。第第10章章 目录目录 10.1 设备管理结构设备管理结构 10.2 驱动程序驱动程序 10.3 驱动程序编写实例驱动程序编写实例第第10章章 目录目录 10.1 设备管理结构设备管理结构 10.2 驱动程序驱动程序 10.3 驱动程序编写实例驱动程序编写实例10.1 设备管理结构:设备管理即输入输出子系统,分为上下两局部:1.上层的上层的,与设
2、备无关的,这局部根据输入输出请求,通过特定的设备驱动程序接口,来与设备进行通信。2.下层的下层的,与设备有关的,常称为设备驱动程序,它直接与相应设备打交道,并且向上层提供一组访问接口。概述概述10.1 设备管理结构:设备管理的目标是对所有的外接设备进行良好的读、写、控制等操作。待解决问题:待解决问题:怎样将任意的一个设备的所有操作进行归纳,设计出统一的接口。内核常常使用设备类型、主设备号和次设备号来标识一个具体的设备。概述概述10.1 设备管理结构:概述概述 Linux中的设备管理应用了设备文件设备文件这个概念来统一设备的访问接口。简单的说,系统试图使它对所有各类设备的输入、输出看起来就好似对
3、普通文件的输入、输出一样。如图10-1所示,应用程序通过Linux的系统调用与内核通信。10.1 设备管理结构:概述 由于Linux中将设备当作文件来处理,所以对设备进行操作的系统调用和对文件操作的类似,主要包括open、read、write、ioctl、close等。应用程序发出系统调用指令以后,会从用户态转换到内核态,通过内核将open这样的系统调用转换成对物理设备的操作。10.1 设备管理结构:字符设备以字节为单位进行数据处理字符设备以字节为单位进行数据处理。字符设备通常只允许按顺序访问,一般不使用缓存技术。如鼠标,声卡等。块设备以块为单位进行处理块设备以块为单位进行处理,块的大小通常为
4、0.5KB到32KB等。字符设备与块设备字符设备与块设备10.1 设备管理结构:字符设备与块设备 大多数块设备允许随机访问,而且常常采用缓存技术。块设备有硬盘、光盘驱动器等。可以查看文件/proc/devices获得。这里主要讨论字符设备,有兴趣的读者可参考其它书籍中有关块设备的内容。10.1 设备管理结构:设备管理中,除了设备类型字符设备或块设备以外,内核还需要一对称做主、主、次设备号次设备号的参数,才能唯一表示设备。主设备号和次设备号主设备号和次设备号10.1 设备管理结构:主设备号和次设备号主设备号和次设备号 主设备号major number相同的设备使用相同的驱动程序,而次设备号 mi
5、nor number 用来区分具体设备的实例。例如例如:第一IDE接口上的所有磁盘及其分区共用同一主设备号3,而次设备号则为0,1,2,3。10.1 设备管理结构:Linux习惯上将设备文件放在目录/dev或其子目录之下。设备文件命名通常由两局部组成规则为:第一局部通常较短,可能只有2或3个字母组成,用来表示设备大类。例如例如:普通硬盘如IDE接口的为“hd,软盘为“fd。Linux设备命名习惯设备命名习惯10.1 设备管理结构:Linux设备命名习惯设备命名习惯 第二局部通常为数字或字母用来区别设备实例。例如例如:/dev/hda、/dev/hdb、/dev/hdc表示第一、二、三块硬盘;而
6、 dev/hda1、/dev/hda2、/dev/hda3则表示第一硬盘的第一、二、三分区。第第10章章 目录目录 10.1 设备管理结构设备管理结构 10.2 驱动程序驱动程序 10.3 驱动程序编写实例驱动程序编写实例10.2 驱动程序:在Linux操作系统中驱动程序是操作系统内核与硬件设备之间的桥梁,它屏蔽了硬件的细节 如总线协议、DMA操作等,在应用程序看来硬件设备只是一个特殊的文件。驱动程序基本功能驱动程序基本功能10.2 驱动程序:驱动程序基本功能驱动程序基本功能 1.对设备初始化和释放。如对音频设备而言包括向内核注册设备,设置音频的输入输出参数 如采样频率、采样宽度等、分配音频设
7、备使用的内核内存等工作。2.对设备进行管理。包括实时参数设置以及提供对设备的操作接口。驱动程序的基本功能为:10.2 驱动程序:驱动程序基本功能驱动程序基本功能 3.读取应用程序传送给设备文件的数据并回送应用程序请求的数据。这需要在用户空间、内核空间、总线及外设之间传输数据。4.检测和处理设备出现的错误。10.2 驱动程序:驱动程序的运作过程驱动程序的运作过程 当一个程序读/dev/tty文件此为键盘时,就会执行系统调用sys_read在fs/read_write.c中,该系统调用在判别出所读文件是一个字符设备文件时,即会调用rw_char函数在fs/char_dev.c中,该函数则会根据所读
8、设备的设备类型,主、次设备号等参数,由字符设备读写函数表设备开关表调用rw_tty,最终调用到这里的终端读操作函数tty_read 10.2 驱动程序:驱动程序的运作过程驱动程序的运作过程 当用户在键盘上键入了一个字符时,会引起键盘中断响应,此时键盘中断处理程序就会从键盘控制器读入对应的键盘扫描码,然后根据使用的键盘扫描码映射表译成相应字符,放入tty读队列read_q中。10.2 驱动程序:驱动程序的运作过程驱动程序的运作过程 然后调用中断处理程序的do_tty_interrupt函数,它又直接调用行规则函数copy_to_cooked对该字符进行过滤处理,并放入tty辅助队列seconda
9、ry中,供上述tty_read读取。10.2 驱动程序:驱动程序的运作过程驱动程序的运作过程 同时把该字符放入tty写写队列write_q中,并调用写控制台函数con_write。此时如果该终端的回显echo属性是设置的,则该字符会显示到屏幕上注:do_tty_interrupt和copy_to_cooked函数在tty_io.c中实现。10.2 驱动程序:open:翻开设备,并初始化设备准备进行操作。可以为NULL,这样每次翻开设备总会成功,而且不通知设备驱动程序。read:从设备中读数据,需要提供字符串指针。write:向字符设备写数据,需要提供所写内容指针。ioctl:控制设备,例如控制
10、光盘的弹出等。需要提供符合设备预先定义的命令字。常用接口介绍常用接口介绍10.2 驱动程序:常用接口介绍常用接口介绍 llseek:重新定位读、写位置,需要提供偏移量参数。flush:去除内容。release:关闭设备,并释放资源等。mmap:将设备内存映射到进程地址空间。通常只有块设备驱动程序使用。10.2 驱动程序:struct file_operations struct module*owner;loff_t*llseek struct file*,loff_t,int;ssize_t*read struct file*,char*,size_t,loff_t*;ssize_t*wri
11、testruct file*,const char *,size_t,loff_t*;int*readdirstruct file*,void*,filldir_t;常用函数原型常用函数原型1.设备操作函数原形 unsigned int*pollstruct file*,struct poll_table_struct*;int*ioctlstruct inode*,struct file*,unsigned int,unsigned long;int mmapstruct file*,struct vm_area_struct*;int*openstruct inode*,struct fi
12、le*;int*flushstruct file*;int*releasestruct inode*,struct file*;10.2 驱动程序:常用函数原型 int*fsync struct file,struct dentry*,int datasync;int*fasync int,struct file*,int;int*lockstruct file*,int struct file_lock*;ssize_t*readvstruct file*,const struct iovec*,unsigned long,loff_t*;ssize_t*writevstruct file*
13、,const struct iovec*,unsigned long,loff_t*;10.2 驱动程序:常用函数原型int register_chrdevunsigned int major,const char*name,struct file_operations*fopsif major=0 write_lock&chrdevs_lock;2向系统注册的函数原形10.2 驱动程序:常用函数原型 formajor=MAX_CHRDEV-1;major0;major-if chrdevsmajor.fops=NULL chrdevsmajor.name=name;chrdevsmajor.
14、fops=fops;write_unlock&chrdevs_lock;return major;10.2 驱动程序:常用函数原型 write_unlock&chrdevs_lock;return-EBUSY;ifmajorMAX_CHRDEV return-EINVAL;write_lock&chrdevs_lock;10.2 驱动程序:常用函数原型 ifchrdevsmajor.fops&chrdevsmajor.fops!=fopswrite_unlock&chrdevs_lock;return-EBUSY;chrdevsmajor.name=name;chrdevsmajor.fops
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 精选第10章设备管理ppt 62 10 设备管理 ppt 62
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内