当前位置: 首页 > news >正文

笔记整理—linux驱动开发部分(1)驱动梗概

        驱动可以分为广义上的和狭义上的驱动。广义上的驱动是用于操作硬件的代码,而狭义上的驱动为基于内核系统之上让硬件去被操作的逻辑方法。

        linux体系架构:

        1.分层思想 :在OS中间还会有许多层。

:

        2.驱动的上面是系统调用(API)。

        3.驱动的下面是硬件,是寄存器。

        4.驱动自己也分层次(有谁去调用设的分层)。

         linux模块化设计:

        宏内核:单内核,将内核作为一个大的个体,独立运行在一个单独的运行空间中(地址空间),相互之间可以相互调用函数——紧耦合+高集成,简单高效但谁也别出事,一旦出问题就完啦~。

        微内核:内核功能被分为独立的过程,过程中IPC(进程间通信)通信,高度内核化,一个服务失效不会影响别的功能,但效率低,如Windows。

        linux是非典型宏内核,又在微内核上做了吸收,有松耦合性。

        静态模块化,编译时可裁剪,但想升级就要重新编译。

        动态模块化,不用重新烧录,不用挂机重启,就能实现安装与卸载。

        驱动设备分类,字符设备、块设备、网络设备。以本身读写操作的特征进行区分。

        字符设备,读写以字节为单位,如LCD、串口、LED、蜂鸣器、touch。

        块设备,相对于字符设备定义,操作以块为设备(多字节组成),读多少块不是由软件决定的(Nandflash)以块为单位寻址。如硬盘、Nandflash、iNand、SD设备等。

        网络设备,准专为网卡设计的驱动模型,因为网络通信有专用接口。linux中网络设备主要就是为了去支持API中的socket相关函数工作。

        驱动是内核的一部分,且成为了内核中最大的一部分。

        内核以直接函数调用方法调用驱动,所以驱动的位置很重要,驱动的动态安装与卸载都会改变内核。驱动崩溃,可能会使内核崩溃;驱动效率会影响内核效率;驱动漏洞会成为内核漏洞。

        常见的驱动安全问题,野指针、恶意用户程序、缓冲区溢出、竞争专状态。

http://www.lryc.cn/news/472250.html

相关文章:

  • 金融领域中的敏感性分析和期权价值计算相关的操作
  • GraphQL系列 - 第1讲 GraphQL语法入门
  • 015:地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework安装教程
  • Android——显式/隐式Intent
  • 【鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式教程详解】
  • 一篇文章入门傅里叶变换
  • 基于python的语音识别与蓝牙通信的温控系统
  • Pandas Series学习
  • 为什么要探索太空?这对我们有什么好处?
  • uniapp开发【选择地址-省市区功能】,直接套用即可
  • 3个模型的交互式多模型IMM,基于EKF的目标跟踪实例(附MATLAB代码)
  • 利用游戏引擎的优势
  • 一致角色的视频且唇形同步中文配音和免费音效添加
  • Spring学习笔记_14——@Qualifier
  • 高级SQL技巧详解与实例
  • 实现PC端和安卓手机的局域网内文件共享
  • 腾讯云云开发深度解读:云数据库、云模板与AI生成引用的魅力
  • 预览 PDF 文档
  • Chromium 在WebContents中添加自定义数据c++
  • 【Apache Zookeeper】
  • 13.音乐管理系统(基于SpringBoot + Vue)
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?
  • C语言中的位操作
  • Spring之HTTP客户端--RestTemplate的使用
  • vscode和pycharm在当前工作目录的不同|python获取当前文件目录和当前工作目录
  • 速盾:海外高防CDN有哪些优势?
  • OpenCV视觉分析之目标跟踪(4)目标跟踪类TrackerDaSiamRPN的使用
  • 自动对焦爬山算法原理
  • Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势
  • 「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理