中国高校课件下载中心 》 教学资源 》 大学文库

《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第九章 设备驱动

文档信息
资源类别:文库
文档格式:PPT
文档页数:22
文件大小:534.5KB
团购合买:点击进入团购
内容简介
《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第九章 设备驱动
刷新页面文档预览

第九章设备驱动设备驱动概述设备驱动程序专用I/O端口字符设备驱动程序块设备驱动程序

第九章 设备驱动 设备驱动概述 设备驱动程序 专用I/O端口 字符设备驱动程序 块设备驱动程序

设备驱动概述计算机中三个最基本的物质基础是CPU、内存和输入输出(I/O)设备,文件操作是对设备操作的组织和抽象,而设备操作则是对文件操作的最终实现rLinux操作系统把设备纳入文件系统的范畴来管理每个设备都对应一个文件名,在内核中也就对应一个索引节点对文件操作的系统调用大都适用于设备文件从应用程序的角度看,设备文件逻辑上的空间是一个线性空间(起始地址为0,每读取一个字节加1)。从这个逻辑空间到具体设备物理空间(如磁盘的磁道、扇区)的映射则是由内核提供,并被划分为文件操作和设备驱动两个层次

❖ Linux操作系统把设备纳入文件系统的范畴来管理 ❖ 每个设备都对应一个文件名,在内核中也就对应一个索 引节点 ❖ 对文件操作的系统调用大都适用于设备文件 ❖ 从应用程序的角度看,设备文件逻辑上的空间是一个线 性空间(起始地址为0,每读取一个字节加1)。从这个 逻辑空间到具体设备物理空间(如磁盘的磁道、扇区) 的映射则是由内核提供,并被划分为文件操作和设备驱 动两个层次 计算机中三个最基本的物质基础是CPU、内存和输入输出 (I/O)设备,文件操作是对设备操作的组织和抽象,而 设备操作则是对文件操作的最终实现 设备驱动概述

设备驱动概述对于一个具体的设备而言,文件操作和设备驱动是一个事物的不同层次。从这种观点出发,从概念上可以把一个系统划分为应用、文件系统和设备驱动三个层次r*Linux将设备分成两大类。一类是像磁盘那样以块或扇区为单位,成块进行输入/输出的设备,称为块设备;另一类像键盘那样以字符(字节)为单位,逐个字符进行输入/输出的设备,称为字符设备。心文件系统通常都建立在块设备上K>

❖ 对于一个具体的设备而言,文件操作和设 备驱动是一个事物的不同层次。从这种观点 出发,从概念上可以把一个系统划分为应用、 文件系统和设备驱动三个层次 ❖ Linux将设备分成两大类。一类是像磁盘那 样以块或扇区为单位,成块进行输入/输出 的设备,称为块设备;另一类像键盘那样以 字符(字节)为单位,逐个字符进行输入/ 输出的设备,称为字符设备。 ❖ 文件系统通常都建立在块设备上 设备驱动概述

进程应用层File结构File结构File结构普通文件设备文件O008000文件系统层从普通文件的逻辑空间到设备逻辑空间的映射从设备逻辑空间从设备逻辑空间到设备到设备物理空间设备驱动层物理空间的映射的映射设备1设备2设备n

        从普通文件的逻辑空间到 设备逻辑空间的映射 从设备逻辑空间到设备 物理空间的映射 从设备逻辑空间 到设备物理空间 的映射 设备1 设备2 设备n 进程 File结构 File结构 File结构 普通文件 文件系统层 设备文件 设备驱动层 应用层

设备驱动概述心为什么要把繁杂的设备归为“块设备”和“字符设备”两大类?代表着设备的索引节点中记载着与特定设备建立连接所需的信息:文件(包括设备)的类型、主r设备号和次设备号*要使一项设备可以被应用程序访问,首先要在系统中建立一个代表此设备的设备文件,这是通过系统调用mknode(实现的。此外,更重要的是在设备驱动层要有这种设备的驱动程序。心设备驱动层直接与物理设备打交道,在实际的实现中则因系统的结构和具体设备的物理特性不同而有不同的驱动方式<>

❖ 为什么要把繁杂的设备归为“块设备”和“字符 设备”两大类? ❖ 代表着设备的索引节点中记载着与特定设备建立 连接所需的信息:文件(包括设备)的类型、主 设备号和次设备号 ❖ 要使一项设备可以被应用程序访问,首先要在系 统中建立一个代表此设备的设备文件,这是通过 系统调用mknode()实现的。此外,更重要的是在 设备驱动层要有这种设备的驱动程序。 ❖ 设备驱动层直接与物理设备打交道,在实际的实 现中则因系统的结构和具体设备的物理特性不同 而有不同的驱动方式 设备驱动概述

设备驱动程序基础心设备驱动程序:处理和管理硬件控制器的软件Linux内核的设备管理是由一组运行在特权级上,驻留在内存以及对底层硬件进行处理的共r享库的驱动程序来完成的心设备管理的一个基本特征是设备处理的抽象性,即所有硬件设备都被看成普通文件,可以通过用操纵普通文件相同的系统调用来打开、关闭、读取和写入设备心系统中每个设备都用一种设备文件来表示>0O0

❖ 设备驱动程序:处理和管理硬件控制器的软件 ❖ Linux 内核的设备管理是由一组运行在特权级 上,驻留在内存以及对底层硬件进行处理的共 享库的驱动程序来完成的 ❖ 设备管理的一个基本特征是设备处理的抽象性, 即所有硬件设备都被看成普通文件,可以通过 用操纵普通文件相同的系统调用来打开、关闭、 读取和写入设备 ❖ 系统中每个设备都用一种设备文件来表示 设备驱动程序基础

设备驱动程序基础用户进程★文件系统/O端口设备驱动程序设备文件中断处理设备控制器+设备驱动程序框架设备本身图9.2用户进程请求设备V服务的流程

图9.2 用户进程请求设备 服务的流程 设备驱动程序基础 I/O端口 设备文件 中断处理 设备驱动程序框架

I/0端口心设备驱动程序要直接访问外设或其接口卡上的物理电路,通常以寄存器的形式出现心外设寄存器也称为I/0端口,通常包括控制寄存器、状态寄存器和数据寄存器三类“内存映射(Memory-mapped)”方式:心寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行*“I/O映射(I/0-mapped)”方式:&将外设的寄存器看成一个独立的地址空间,为对外设寄存器的读/写设置专用指令AM

I/O 端口 ❖设备驱动程序要直接访问外设或其接口卡 上的物理电路,通常以寄存器的形式出现 ❖外设寄存器也称为I/O端口,通常包括控 制寄存器、状态寄存器和数据寄存器三类 ❖“内存映射(Memory-mapped)”方式: ❖寄存器参与内存统一编址,访问寄存器就通 过访问一般的内存指令进行 ❖“I/O映射(I/O-mapped)”方式: ❖将外设的寄存器看成一个独立的地址空间, 为对外设寄存器的读/写设置专用指令

I/0端口r系统设计者为了对I/O编程提供统一的方法,每个设备的I/0端口都被组织成如图9.3控制寄所示的一组专用寄存器。设备存器cI/0心为了降低成本,通常把同一P接口状态寄U存器I/0端口用于不同目的*内核使用iotable表来记录分输入寄存器配给每个硬件设备的I/0端口输出寄存器图9.3专用1/0端口K

❖ 系统设计者为了对I/O编程提 供统一的方法,每个设备的 I/O 端口都被组织成如图9.3 所示的一组专用寄存器。 ❖ 为了降低成本,通常把同一 I/O端口用于不同目的 ❖ 内核使用iotable表来记录分 配给每个硬件设备的I/O端口 I/O 端口 控制寄 存器 状态寄 存器 输入寄 存器 输出寄 存器 C P U 设备 I/O 接口 图9.3 专用I/O端口

设备文件设备文件用来表示Linux所支持的大多数设备每个设备文件除了设备名外,还有类型、主设备号、次设备号这三个属性设备文件是通过mknod系统调用创建的。其原r型为:mknod(const char *filename,intmode, dev t dev)心同一主设备号既可以标识字符设备,也可以标识块设备一个设备文件通常与一个硬件设备相关联,或硬件设备的某一物理或逻辑分区。但有时设备文件不会和任何实际的硬件关联,而是表示一个虚拟的逻辑设备。KV100

设备文件 ❖ 设备文件用来表示Linux所支持的大多数设备, 每个设备文件除了设备名外,还有类型、主设 备号、次设备号这三个属性 ❖ 设备文件是通过mknod系统调用创建的。其原 型为:mknod(const char * filename, int mode, dev_t dev) ❖ 同一主设备号既可以标识字符设备,也可以标 识块设备 ❖ 一个设备文件通常与一个硬件设备相关联, 或硬件设备的某一物理或逻辑分区。但有时, 设备文件不会和任何实际的硬件关联,而是表 示一个虚拟的逻辑设备

共22页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档