• 驱动初识==Linux驱动开发1


    一、什么是驱动

    1、理解驱动的概念

    • (1)驱动一词的字面意义、物理上的驱动、硬件中的驱动。
    • (2)Linux 内核驱动:即软件层面上的驱动,指的是这段代码操作了硬件使其动起来,所以叫硬件的驱动程序(本质上是电力提供了动力,而驱动程序提供了操作的逻辑方法)。

    2、Linux 体系架构

    • (1)分层思想:大致可以分为两层,上层是应用,下层是操作系统,驱动、文件系统等程 序包含于 OS 中,上层应用通过 API 调用 OS 中的驱动程序。
    • (2)驱动上面是系统调用 API,下面是硬件。
    • (3)驱动自己本身也是分层的

    二、模块化设计

    1、微内核和宏内核

    • (1)宏内核:又称为单内核,将内核从总体上作为一个大过程实现,运行在一个独立的地 址空间,所有内核服务都在一个地址空间运行,相互之间直接调用函数,简 单高效。
    • (2)微内核:各个功能被划分成独立的进程,进程间通过 IPC 通信,模块化程度高,一个 服务失效不会影响另一个服务,典型的如 Windows。

    2、Linux 本质上是宏内核,但是又吸收了微内核的模块化特性,体现在两个层面

    • (1)静态模块化:在编译时实现可裁减,特征是想要裁剪功能必须重新编译。
    • (2)动态模块化:zImage 可以不重新编译烧录,甚至可以不关机重启就能实现模块的安装 和卸载。==前提在系统启动后,你得手动挂载

    三、Linux 设备驱动分类

    1、驱动分类

    • (1)3 类:字符设备、块设备、网络设备。
    • (2)分类原则:设备本身读写操作的特征差异

    2、三类驱动程序详细对比分析

    • (1)字符设备:准确的说应该叫“字节设备”,即软件操作设备时是以字节为单位进行的, 典型的有 LCD、键盘、鼠标、串口、LED、蜂鸣器、触摸屏。
    • (2)块设备:软件操作时是以块(多个字节组成块)为单位进行的,设备的块大小是设备 本身定义好的,软件无法修改,不同设备的块大小不一样。常见的块设备都 是存储类设备:如硬盘、U 盘、光盘、NandFlash、iNand、SD 卡。
    • (3)网络设备:是专为网卡设计的驱动模型,Linux 中的网络设备驱动主要是为了支持 API 中 socket 相关的函数。

    3、为什么字符设备最重要

    • (1)常见的大量设备都属于字符设备。
    • (2)除了以上列举的标准字符设备,通常还有一些非标准类型字符设备驱动,如将一块产 生特定波形的 FPGA 当做一个字符设备来控制的驱动程序。

    四、驱动程序的安全性要求

    1、驱动程序是内核的一部分

    • (1)驱动程序已经成为内核中最庞大的组成部分,且内核会直接以调用函数的方式调用驱动程序。
    • (2)驱动程序的动态安装和卸载都会“更改”内核

    2、驱动对内核的影响

    • (1)驱动程序崩溃甚至会导致系统崩溃。
    • (2)驱动程序的效率会影响内核的整体效率。
    • (3)驱动的漏洞会造成内核安全漏洞。

    3、常见的驱动安全性问题

    • (1)未初始化指针。
    • (2)恶意用户程序。
    • (3)缓冲区溢出。
    • (4)竞争状态。

    五、驱动应该怎么学

    1.先学好 C 语言

    2.掌握相关预备知识

    • (1)硬件操作相关知识
    • (2)应用层 API

    3、驱动学习阶段

    • (1)注重实践,一步一步写驱动。
    • (2)框架思维,多考虑整体和上下层。
    • (3)先通过简单设备学习 Linux 驱动框架。
    • (4)学会总结、记录。
  • 相关阅读:
    TikTok矩阵系统功能怎么写?常用源代码是什么?
    可扩展易配置,快来揭秘新一代自监督学习开源框架
    Redis+Lua解决库存超卖
    Spring IOC容器的这些扩展点你都了解吗?
    低功耗、高性能处理器RK3326、RK3308、RK2206、RK2108芯片可广泛应用于各种产品领域。
    【OSTEP】分页: 快速地址转换(TLB) | TLB命中处理 | ASID 与页共享 | TLB替换策略: LRU策略与随机策略 | Culler定律
    自定义View
    pyspark分布式部署随机森林算法
    jwt的使用概念工具类与切入spa项目
    httprunner3.x总结23 - 解决批量执行中重复登陆的问题
  • 原文地址:https://blog.csdn.net/weixin_47397155/article/details/125949214