Linux 内核:设备驱动模型 学习总结
背景
其实之前就转载过别人针对Linux的设备驱动模型(Linux Device Driver Model,LDDM)的文章,但是受限于自身的能力,因此花了点时间重新学习了一下。
前人写的文章很好,我很受用。因此,我也尝试通过我自己的方式来整理了一下。
基于 Linux 内核 v3.14。
目录
标题 | 说明 |
---|---|
1、sysfs与kobject基类 | 介绍了搭建设备驱动模型的基石,kobject这个基类与sysfs的关系。 |
2、driver-bus-device与probe | 介绍设备 --总线 --驱动 框架,以及probe流程。 |
3、class与device | 介绍设备类如何组织在sysfs中的device |
4、uevent与热插拔 | 介绍probe时发送uevent到用户空间,以及用户空间是如何处理的 |
5、平台设备驱动 | 介绍platform设备框架,以加深对设备 --总线 --驱动 框架 |
6、设备资源管理 | 介绍内核如何解决设备驱动中的资源管理问题 |
附录:Linux 内核:sysfs 有关的API | sysfs api |
首先对sysfs的核心数据kobject,kset等数据结构做出了分析,正是通过它们才能向用户空间呈现出设备驱动模型。
接着,以/sys/bus目录的建立为例,来说明如何通过kobject和kset来建立该bus目录。随后,介绍了驱动模型中表示总线,设备和驱动的三个数据结构。
然后,补充了uevent
的一些知识。
最后介绍了platform总线(bus/platform)的注册,再介绍了虚拟的platform设备(devices/platform)的添加过程。
如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。
若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
博客地址:https://www.cnblogs.com/schips/
若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
博客地址:https://www.cnblogs.com/schips/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2020-06-20 Freertos学习:03-任务