Linux设备模型

本文介绍了Linux设备模型,包括Bus、Class、Device和Driver四个关键概念。Bus是CPU与设备之间的信息交互通道,Class将相似功能的设备归类,Device描述硬件设备信息,Driver则是设备的驱动程序。Linux设备模型支持即插即用,通过Device和Driver数据结构实现,并以"Bus——>Device"树状结构管理设备依赖。Class引入面向对象思想,减少驱动开发的重复工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式系统常见的硬件拓扑

硬件拓扑描述Linux设备模型中的四个重要概念中的三个:Bus、Class、Device(Driver)

Bus(总线):CPU和一个或多个设备之间信息交互的通道,所有的设备都连接在总线上

Class(分类):类似面向对象中的Class(类),集合了具有相似功能或属性的设备并抽象出一套可以在多个设备之间共用的数据结构和接口函数。所以拥有相同class的设备驱动程序可以直接从Class中继承。

Device(设备):系统中所有的的硬件设备,描述它的名字、属性、从属的Bus、从属的Class等信息。

Driver(驱动):硬件设备的驱动程序,包含了设备初始化、电源管理相关的接口实现。

注:在计算机中有这样一类设备,它们通过各自的设备控制器,直接和CPU连接,CPU可以通过常规的寻址操作访问它们。这种连接方式并不属于传统意义上的总线连接。但设备模型应具备普适性,所以Linux虚构了一条Platfrom Bus供这些设备挂靠。

Linux设备模型的核心思想:

1、用Device和driver两个数据结构来描述硬件设备,统一了编写设备驱动的格式。

2、使用Device和driver两个数据结构实现硬件设备的即插即用(热插拔)

在Linux内核中,只要任何Device和Driver具有相同名字,内核就会执行Driver结构中的初始化函数(probe),该函数初始化设备。

对于大多数热插拔的设备而言,Driver一直存在于内核中。当设备没有插入时,其Device结构不存在,所以Driver也就不会进行初始化操作。当设备插入时,内核会创建一个Device结构(名字与Driver一样),此时就会触发Driver的执行。这就是即插即用。

3、通过“Bus——>Device”类型的树状结构解决设备之间的依赖。启动某一个设备前,内核会检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值