首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
分布式数据库
›
驱动开发硬核特训 · Day 21(上篇) 抽象明白 Linux 子 ...
返回列表
发新帖
驱动开发硬核特训 · Day 21(上篇) 抽象明白 Linux 子体系:内核工程师的视角
[复制链接]
发表于 2025-9-22 06:01:03
|
显示全部楼层
|
阅读模式
📘:
本文为两篇系列文章的上篇,站在内核架构师的高度,体系梳理 Linux 子体系的概念、布局特征与内核中的通用实现方式,为后续深入分析 PCA9450 PMIC 驱动源码奠基理论底子。
一、什么是 Linux 子体系?
在 Linux 内核开发中,“子体系(subsystem)”并不是一个具象的布局体或
API
,而是一种
内核架构组织情势
,通常指的是:
围绕某类
功能
或硬件抽象构建的一组驱动框架与接口聚集,具备同一的布局、驱动注册模子和核心
API
逻辑。
✅ 平凡明白:
文件体系子体系(如 ext4)管理数据读写与挂载
网络子体系(如 net/ipv4)负责 TCP/IP 协议栈
电源管理子体系(如 regulator)抽象各种供电装备
图形体现子体系(如 DRM)同一 GPU 体现管线
这些子体系在
代码
上,通常体现为:
drivers/ 下的独立子目录(如 drivers/gpu/)
独立的内核
文档
与维护人
明白的 class、bus_type、device_driver 布局分别
二、子体系的共性特征
特征分析
同一接口布局体
如 regulator_ops、input_dev、net_device_ops 等,界说驱动对外本事
驱动注册模子
支持 driver_register()、device_register() 等同一绑定流程
支持装备树匹配
通过 of_match_table 与 compatible 完成装备绑定
支持用户空间接口
通常挂载在 /sys/class/、/dev/、/proc/ 等目录
模块化架构
可动态加载/卸载驱动模块,便于扩展与维护
上卑鄙解耦
子体系负责抽象与同一,业务驱动仅依靠标准接口这些特征并非欺压要求,但现代子体系大多具备这些本事,确保在 SoC 硬件复杂性快速增长的今天,仍能保持精良的布局稳固性和可维护性。
三、子体系 ≠ 总线,但密切相干
子体系每每基于“总线(bus)”来实现装备与驱动的管理,常见的组合关系有:
总线范例挂载子体系platformregulator、input、sound 等多数 SoC 外设子体系i2c / spisensor、pmic、触摸等低速外设子体系pci / usbnet、storage 等高速外设子体系子体系提供
功能
抽象和同一接口,
总线提供匹配机制与生命周期管理
。
四、内核工程师怎样判定“这是不是个子体系”?
一个履历标准是:
是否有自己的驱动目录、同一接口、上层依靠调用、装备注册机制,并被内核其他模块利用。
比方:
regulator 是电源管理子体系(同一电压输出抽象)
input 是输入装备子体系(键盘、触控等)
gpu/drm 是图形体现子体系(抽象复杂体现 pipeline)
而 drivers/base/ 固然
功能
重要,但重要是模子支持模块,不被视作业务子体系。
五、regulator 子体系的特点
regulator 是一个非常标准的子体系范例,它满意以下条件:
独立目录:drivers/regulator/
同一接口:struct regulator_ops
通用数据布局:struct regulator_desc
标准注册函数:devm_regulator_register()
支持装备树:regulators { buck1: BUCK1 { ... } }
支持上层调用:如 regulator_get()
自动挂载 sysfs:如 /sys/class/regulator/BUCK1/
regulator 子体系的计划初衷是
将电压控制从 SoC 驱动中解耦
,同一交由 PMIC 驱动来实现,是现代平台化架构中的关键构成部分。
六、总结:为什么要明白子体系?
对于驱动工程师而言,明白子体系能带来:
更快定位驱动布局与题目归属
明白模块职责与功能分别
编写符合内核规范的高质量驱动
更容易阅读和复用主线
代码
下一篇中,我们将以 PCA9450 PMIC 为例,从装备树到驱动 probe,逐行剖析其怎样接入 regulator 子体系,怎样注册电源通道、相应电压设置,并展示“子体系+驱动”的完备融合过程。
📎 下篇预告:
《驱动开发硬核特训 · Day 21(下篇):深入剖析 PCA9450 驱动怎样接入 regulator 子体系》
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
浏览过的版块
Java
铁佛
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表