啥是驱动?

2023-05-16

Q&A

  1. 什么是驱动?

驱动本质上是一个软件程序,是内核与硬件之间通信的桥梁,为应用程序屏蔽了硬件细节。

内核可以通过驱动程序去初始化、释放设备,内核可以通过驱动程序与设备做双向的数据交互,驱动程序同时需要检测和处理设备出现的错误。有了驱动,内核可以把硬件当做一个文件去直接操作。

  1. 驱动分为几类?

驱动的分类主要取决于设备的分类,Linux系统将设备分为三种:1. 字符设备;2. 块设备;3. 网络接口设备,与之相对应,驱动分为:1. 字符设备驱动;2. 块设备驱动;3. 网络接口设备驱动。

  • 字符设备驱动

字符设备驱动,顾名思义,即实现内核可以通过字节流的方式访问设备的软件,构建一个只能顺序访问的通道。驱动程序起码需要实现基本的open、close、read、write系统调用。linux系统中可在/dev/下找到设备,以文件的形式存在,同样可以用文件系统节点来访问。例如,终端输出/dev/console,串口/dev/tty0等。

  • 块设备驱动

块设备主要指的是各种存储类的设备,比如flash、硬盘、u盘等。块设备与字符设备类似,内核同样可以通过文件系统节点访问设备,设备同样在/dev/目录下可以找到,Linux上可以读写任意大小的字符而不一定以块为单位。但不同于字符设备的是,块设备可以存放文件系统,且驱动程序对接内核的接口完全不同于字符设备驱动。

  • 网络接口设备

网络接口设备与其他两种设备不同,无法通过系统节点访问,不存在于设备文件系统/dev/中。网络接口驱动为系统的网络操作提供一致的操作来处理数据的接收和发送,屏蔽了各种各样网络设备带来的影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

啥是驱动? 的相关文章

随机推荐

  • 将Docker镜像安全扫描步骤添加到CI/CD管道

    使用GitlabCI和Trivy 介绍 如今 xff0c 镜像安全扫描变得越来越流行 这个想法是分析一个Docker镜像并基于CVE数据库寻找漏洞 这样 xff0c 我们可以在使用镜像之前知道其包含哪些漏洞 xff0c 因此我们只能在生产中
  • 卡尔曼滤波器之经典卡尔曼滤波

    参考文献 xff1a xff11 http www bzarg com p how a kalman filter works in pictures xff12 https blog csdn net u010720661 article
  • 卡尔曼滤波器之扩展卡尔曼滤波

    参考文献 xff1a xff11 https zhuanlan zhihu com p 63641680 目录 xff11 xff0e 非线性模型 xff12 xff0e 非线性模型到线性模型的近似 xff11 xff0e 非线性模型 卡尔
  • VINS fusion软件架构分析(3)--- 输入IMU和相机信息 inputIMU + inputImage

    文章目录 1 输入IMU和相机信息1 1 inputIMU1 1 1 fastPredictIMU1 1 1 1 Utility deltaQ 1 1 2 pubLatestOdometry知识点 pair 1 2 inputImage1
  • VINS fusion软件架构分析(2)---- 从参数文件读取参数

    1 参数配置文件 VINS是利用参数文件yaml统一管理重要的参数 xff0c 主要分为两个参数配置文件 xff0c 如下图 普通参数配置文件 xff0c 如euroc mono imu config yaml相机模型参数配置文件 xff0
  • VINS fusion软件架构分析(5)--- 坐标系转换

    对于VINS代码的解读 xff0c 其中一个重要的知识储备就是理解坐标系间的转换 xff0c 这对于后面代码阅读非常重要 xff0c 因此本章重点解释一下 VINS中有3个坐标系 xff1a 世界坐标系 worldIMU坐标系body相机坐
  • 《算法导论》习题5.3-1 ~ 5.3-7

    算法导论 习题 5 3 1 5 3 7 5 3 5 带星号我抄了一下题目 5 3 6 比较有意思我抄了一下题目 其他的题可以自己对照书 原书第三版 5 3 1 直接考虑第2次循环前 第1次循环后第1个位置的元素是原集合1 n中任意一个元素的
  • ROS:坐标系之间的关系 (map \ odom \ base_link)

    ROS 坐标系之间的关系 map odom base link 在使用ROS进行定位与导航操作时 xff0c 会伴随着各种坐标系 xff0c 并且每种坐标系都有明确的含义 xff0c ros中定义了常见的坐标系 xff0c 并且所有的坐标系
  • 上下拉电阻的作用

    这是在论坛上收集到的一些总结 xff1a 一 OC OD门 xff0c 这种门结构如果不做上拉的话 xff0c 是不能实现电平的高底跳变的 xff0c 不能实现跳变 xff0c 便不能表征数据 二 驱动能力 xff0c 我们看很多的CPU或
  • 实测MySQL 查询结果保留两位小数函数的区别汇总

    MySQL查询结果保留两位小数常用的几个函数的区别 xff0c 使用场景 1 随机函数format x d 2 格式化小数函数format x d 例如 xff1a select format 23456 789 2 或 select fo
  • STLINK怎么与STM32单片机连接

    STLink是ST官方开发的单片机仿真工具 xff0c 可以烧写程序 在线仿真 xff0c 使用非常方便 STLink具有两种接口 xff0c 分别为 1 SWD模式 2 SWIM单总线模式 SWD模式主要针对STM32系列的单片机 xff
  • Ubuntu 18.04系统下创建新用户

    以下介绍在Ubuntu 18 04系统下创建新用户 目录 修改用户权限及删除用户的正确方法 在Ubuntu系统上创建新用户使用 sudo useradd 用户名 命令 xff0c 但只能创建用户 xff0c 不能在 home 中创建用户目录
  • 大数据面试题(一)

    一 hdfs写文件的步骤 答案 xff1a 1 client向NameNode申请上传 xxx txt文件 2 NN向client响应可以上传文件 3 Client向NameNode申请DataNode 4 NN向Client返回DN1 D
  • packages.xml和packages.list全解析

    更多干货 xff0c 欢迎关注微信公众号 tmac lover 今天给大家介绍一下Android系统中保存app信息的两个配置文件 xff0c packages xml和packages list 系统中所有安装的app的基本信息在这里都能
  • linux中vim: command not found

    bash vim command not found 1 查看系统是否安装完整vim 2 安装vim 3 我的解决过程 解决问题步骤 xff1a 1 查看系统是否安装完整vim 执行一下命令 xff1a rpm qa grep vim 如果
  • 【FreeRTOS】任务的创建

    启动流程 LiteOS 和 ucos 第一种和第二种都可以使用 xff0c 由用户选择 xff0c RT Thread 和 FreeRTOS 则默认 创建各个任务 xff0c 然后等待启动调度器创建一个起始任务 xff0c 任务都在这个起始
  • 【FreeRTOS】信号量和互斥量

    二值信号量 同步 xff0c 创建时为空 xff0c 任务1获取 xff08 空 xff09 进入阻塞 xff1b 任务2释放信号量 xff0c 于是任务1获取信号量得以进入就绪状态 资源被获取了 xff0c 信号量值就是 0 xff0c
  • 计算机网络笔记:TCP三次握手和四次挥手过程

    TCP是面向连接的协议 xff0c 连接的建立和释放是每一次面向连接的通信中必不可少的过程 TCP连接的管理就是使连接的建立和释放都能正常地进行 三次握手 TCP连接的建立 三次握手建立TCP连接 若主机A中运行了一个客户进程 xff0c
  • echarts与highcharts学习及区别

    1 echarts用法更广泛 xff0c highcharts更适合特定的某些需求 1 1 echarts和highcharts初始引用 xff0c import as echarts from echarts html要有一个容器 xff
  • 啥是驱动?

    Q amp A 什么是驱动 xff1f 驱动本质上是一个软件程序 xff0c 是内核与硬件之间通信的桥梁 xff0c 为应用程序屏蔽了硬件细节 内核可以通过驱动程序去初始化 释放设备 xff0c 内核可以通过驱动程序与设备做双向的数据交互