【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等文件系统

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希希雾里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值