设备驱动模型与sysfs

本文介绍了Linux 2.6版本引入的设备驱动模型,包括类、总线、设备和驱动的概念,以及sysfs的基本概念。sysfs通过/sys目录展示了驱动模型的层次结构,便于用户空间查看和操作。总线作为连接设备和驱动的纽带,允许设备和驱动分开注册,以实现驱动的独立性和适应性。文章探讨了为何要通过总线来匹配驱动和设备的原因。

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

设备驱动模型与sysfs

Linux在2.6版本引入了设备驱动模型,设备驱动模型负责统一实现和维护一些特性,诸如:热插拔、对象生命周期、用户空间和驱动空间的交互等基础设施

1.设备驱动模型基本概念

设备驱动模型主要包含:类(class)、总线(bus)、设备(device)、驱动(driver),它们的本质都是内核中的几种数据结构的“实例”

  • 类的本质是class结构体类型,各种不同的类其实就是class的各种实例
  • 总线的本质是bus_type结构体类型,各种不同的总线其实就是bus_type的各种实例
  • 设备的本质是device结构体类型,各种不同的设备其实就是device的各种实例
  • 驱动的本质是device_driver结构体类型,各种不同的驱动其实就是device_driver的各种实例

2.sysfs基本概念

sysfs其实就是/sys目录,其主要作用就是:展示设备驱动模型中各组件的层次关系,并将各组件的本体——内核中的数据结构以文件形式呈现,方便用户层查看及操作

3./sys目录结构与设备驱动模型

  • /sys目录结构很好的展示了驱动设备模型,如图:
    这里写图片描述
  • 注意:同一个设备可能在/sys中存在多个设备文件,比如一颗led的设备文件可能在/sys/bus/platform/devices/led1,同时还有一个在/sys/class/leds/led1。虽然他们都是同一颗led的设备文件,但是他们的来源、机制、原理都是不同的,不能混为一谈

4.各组件的特性与联系

  • kobject:设备驱动模型各实例的最基本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值