Linux驱动分类简介

Linux驱动主要具有如下几点作用:

系统调用是应用程序和内核之间的接口,驱动程序是内核和硬件之间的接口;
驱动程序接受上层软件(应用程序、内核)的请求,完成对硬件的操作,屏蔽了硬件的细节;
驱动程序将硬件设备抽象成一个文件,应用程序操作文件即操作硬件,符合Linux“一切皆文件”的思想。

在这里插入图片描述

驱动的分类及特点

计算机硬件系统有CPU、存储器以及外设组成,Linux驱动针对的对象是存储器和外设;Linux将驱动分为三大类:字符设备驱动、块设备驱动以及网络设备驱动。

字符设备驱动:顾名思义,应用程序与驱动程序之间的数据交互是以字符(字节)为单位的,字符设备通常没有中间缓存。常见的字符设备有:led、key、camera、显卡、串口等

块设备驱动:顾名思义,应用程序与驱动程序之间的数据交互是以块为单位的,主要针对的是存储设备,通常设有中间缓存,并且带有文件系统,可以任意位置访问。常见的块设备有:U盘、eMMC、SD卡等

网络设备驱动:网络设备面向数据包的发送而设计,它并不对应于文件系统的节点。即不对应 /dev 目录下的设备文件,应用程序最终通过套接字
socket 完成与网络设备的数据交互。常见的网络设备有网卡(无线网卡、有线网卡)。

Linux驱动有两种存在形式,一种是编译进内核;另一种编译成模块,通过insmod方式安装的。不管是哪一种方式,除了网络设备之外,字符设备驱动和块设备驱动的安装都会在Linux根文件系统的 /dev 目录下创建相对应的设备文件(块设备比较特殊,除了创建设备文件外,还会在根文件系统的某个目录下挂载文件系统),应用程序可以通过 open()、write()、read()、ioctl()、close()系统调用接口访问设备。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值