驱动基础01:Linux设备驱动概述 |
您所在的位置:网站首页 › oj平台怎么做 › 驱动基础01:Linux设备驱动概述 |
目录 一、设备驱动的角色 二、有无操作系统时的设备驱动 (1)无操作系统时 (2)有操作系统时 三、Linux设备分类 (1)字符设备 (2)块设备 (3)网络设备 四、Linux设备驱动在整个系统的关系 一、设备驱动的角色①充当硬件和应用软件之间的桥梁 ②具体任务:读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射。 ③应用软件调用驱动,驱使硬件完成要求的任务。 二、有无操作系统时的设备驱动 (1)无操作系统时一般是以.h和.c来定义一个软件模块,这里应用软件直接访问设备驱动的接口。 (2)有操作系统时①无操作系统时的硬件操作还是必需的 ②将驱动融入内核,设计面向操作系统内核的接口,对外呈现为操作系统的API,不再提供接口。 注:应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。驱动为连接硬件和内核的桥梁。 ③操作系统的作用:处理多并发的任务以及存储管理方面的问题。 内核和设备系统之间关系详解图如下: 三、Linux设备分类计算机系统的硬件主要由CPU、存储器和外设组成。Linux将存储器和外设分为三个基础大类,字符设备、块设备以及网络设备。 (1)字符设备①串行顺序依次进行访问的设备。 ②块设备不经过系统的快速缓冲 ③触摸屏、磁带驱动器、鼠标等 (2)块设备①可以按照任意顺序进行访问,以块为单位进行操作 ②硬盘、eMMC等块设备上可以构建文件系统 ③块设备经过系统的快速缓冲 (3)网络设备①面向数据包的接收和发送而设计 ②内核与网络设备的通信,主要还是用套接字接口。 四、Linux设备驱动在整个系统的关系(1)除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,可以通过文件系统的系统调用接口(open/close/read/write) (2)访问块设备有两种方式,如图一种原始方式,一种构建文件系统(FAT/EXT4/BTRFS)后通过文件访问。 (3)Linux块子系统 & MTD系统 ①Linux块子系统面向磁盘 & MMC/SD工作,在其上可建立FAT/EXT等文件系统 ②MTD系统面向Nor & Nand Flash工作,在其上可建立YAFFS2等文件系统 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |