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

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

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

        linux体系架构:

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

:

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

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

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

         linux模块化设计:

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

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

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

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

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

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

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

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

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

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

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

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

相关文章:

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

驱动可以分为广义上的和狭义上的驱动。广义上的驱动是用于操作硬件的代码,而狭义上的驱动为基于内核系统之上让硬件去被操作的逻辑方法。 linux体系架构: 1.分层思想 :在OS中间还会有许多层。 : 2.驱动的上面是系统调用(API&…...

金融领域中的敏感性分析和期权价值计算相关的操作

代码主要进行了金融领域中的敏感性分析和期权价值计算相关的操作。首先通过一系列方程求解S3和S2的值,然后基于这些值以及给定的参数计算一些中间变量(a1、a2、a3、b1、b2、b3),最后利用多元正态分布函数(mvncdf)和一元正态分布函数(normcdf)计算期权价值C、净现值(NP…...

GraphQL系列 - 第1讲 GraphQL语法入门

目录 一、介绍GraphQL二、GraphQL基本使用方法三、Schema 定义语言 (SDL)3.1 类型定义1)对象类型2)标量类型3)枚举类型4)输入类型5)列表类型6)非空类型7)接口类型8)联合类型 3.2 查询…...

015:地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework安装教程

摘要:本文详细介绍地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework的安装流程。 一、软件介绍 ArcGIS Engine 10.2是由Esri公司开发的一款强大的GIS(地理信息系统)开发平台。该软件基于ArcGIS 10.2 fo…...

Android——显式/隐式Intent

概述 在Android中,Intent是各个组件之间信息通信的桥梁,它用于Android各组件的通信。 Intent 的组成部分 一、显式 Intent 第一种方式 Intent intent new Intent(this, ActFinishActivity.class);startActivity(intent);第二种方式 Intent intent …...

【鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式教程详解】

鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式详解 在使用uniapp打包的鸿蒙项目的过程中,由于生成的是app文件,而hdc传给鸿蒙HarmonyOS系统需要的是hap文…...

一篇文章入门傅里叶变换

文章目录 傅里叶变换欧拉公式傅里叶变换绕圈记录法质心记录法傅里叶变换公式第一步:旋转的表示第二步:缠绕的表示第三步:质心的表示最终步:整理积分限和系数 参考文献 傅里叶变换 在学习傅里叶变换之前,我们先来了解一…...

基于python的语音识别与蓝牙通信的温控系统

基于python的语音识别与蓝牙通信的温控系统毕设项目 大家好,我是陈辰学长,一名在 Java 圈辛勤劳作的码农。今日,要和大家分享的是一款基于python的语音识别与蓝牙通信的温控系统毕设项目。项目源码以及部署相关事宜,请联系陈辰学…...

Pandas Series学习

1.Series简介 Pandas Series类似表格的列(column),类似于一维数组,可以保存任何数据类型,具有标签(索引),使得数据在处理分析时更具灵活性。Series数据结构是非常有用的,…...

为什么要探索太空?这对我们有什么好处?

几个世纪以来,人类一直着迷于宇宙的奥秘,这驱使我们冒险离开地球,去探索太阳系之外的未知环境。在当今世界,我们为什么要进行太空探索之旅这个问题,远不止出于单纯的好奇。 归根结底,太空探索是一种必要之…...

uniapp开发【选择地址-省市区功能】,直接套用即可

一、效果展示 二、代码 <template><view><view class="user_info"><view class="item"...

3个模型的交互式多模型IMM,基于EKF的目标跟踪实例(附MATLAB代码)

文章目录 3个模型的IMM源代码运行结果代码介绍总结 3个模型的IMM 代码实现了基于 I M M IMM IMM&#xff08;Interacting Multiple Model&#xff09;算法的目标跟踪。它使用三种不同的运动模型&#xff08;匀速直线运动、左转弯和右转弯&#xff09;来预测目标的位置&#x…...

利用游戏引擎的优势

大家好&#xff0c;我是小蜗牛。 在当今快速发展的游戏产业中&#xff0c;选择合适的游戏引擎对开发者来说至关重要。Cocos Creator作为一款功能强大且灵活的游戏引擎&#xff0c;为开发者提供了丰富的工具和资源&#xff0c;使他们能够高效地开发出优秀的游戏。本文将探讨如何…...

一致角色的视频且唇形同步中文配音和免费音效添加

现在AI可以免费生成不带水印、不限时长的视频了&#xff0c;并且视频里的角色可以进行唇形同步配音。最重要的是&#xff0c;我还会分享给大家&#xff0c;怎么生成角色一致的动画场景&#xff0c;怎么使用场景图片生成完整的视频&#xff0c;并且我还会介绍一款&#xff0c;我…...

Spring学习笔记_14——@Qualifier

Qualifier 1. 解释 当Spring中存在多个类型相同但是名称不同的Bean时&#xff0c;使用Autowired注解向类的构造方法、方法、参数、字段中注入Bean对象时&#xff0c;首先会根据Bean的类型注入&#xff0c;如果存在多个类型相同的Bean时&#xff0c;会根据Bean的名称注入&…...

高级SQL技巧详解与实例

在数据处理与分析领域&#xff0c;高级SQL技巧是提升效率与准确性的关键。本文将结合参考资料&#xff0c;对高级SQL技巧进行系统的整理与解读&#xff0c;并通过实例展示其应用。 一、窗口函数 窗口函数是一种在SQL中执行复杂计算的强大工具&#xff0c;它们允许用户在一组行…...

实现PC端和安卓手机的局域网内文件共享

文章目录 一、准备工作1.1 笔记本(Win10)的设置&#xff08;主要可分为3大部分&#xff1a;更改共享设置、创建本地用户、选择共享文件&#xff09;1.2 台式机(Win7)的设置 二、实现共享文件夹的访问2.1 笔记本(Win10)访问台式机(Win7)2.2 台式机(Win7)访问笔记本(Win10)(一定要…...

腾讯云云开发深度解读:云数据库、云模板与AI生成引用的魅力

腾讯云云开发平台为开发者和潜在用户提供了丰富的解决方案&#xff0c;其中的云数据库、云模板和AI生成引用等产品尤为引人注目。这篇文件是我个人对这些产品的能力、应用场景、业务价值、技术原理的介绍和深度解读&#xff0c;最后也简单写一下新手如何进行相关产品的初步使用…...

预览 PDF 文档

引言 在现代Web应用中&#xff0c;文件预览功能是非常常见的需求之一。特别是在企业级应用中&#xff0c;用户经常需要查看各种类型的文件&#xff0c;如 PDF、Word、Excel 等。本文将详细介绍如何在Vue项目中实现 PDF 文档的预览功能。 实现原理 后端API 后端需要提供一个…...

Chromium 在WebContents中添加自定义数据c++

为了能在WebContents中添加自定义数据先看下几个关键类的介绍。 一、WebContents 介绍&#xff1a; WebContents是content模块核心&#xff0c;是呈现 Web 内容&#xff08;通常为 HTML&#xff09;位于矩形区域中。 最直观的是一个浏览器标签对应一个WebContents&#xff0c…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...