一.前言
做linux开发也有一段时间了,对整个系统已经熟悉了很多,linux是一个非常大的系统,现在对常见的驱动做一个总结,以此来加深记忆和理解。
二.常见驱动及其子系统分类
1.Linux设备分类
linux系统抽象出的设备可以分为三类:char_dev,block_dev,net_dev。字符设备是产品开发用的最多的设备,其总类繁多,所以linux抽象出了许多子系统来适配不同设备,大大减少了代码量。
2.设备模型
设备模型通过几个数据结构来反映当前系统中总线、设备以及驱动的工作状况,提出了以下几个重要概念。
设备(device) :
挂载在某个总线的物理设备;
驱动(driver) :
与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式;
总线(bus) :
负责管理挂载对应总线的设备以及驱动;在“/sys/bus”目录下的每个子目录都是注册好了的总线类型,每个总线类型下包含两个子目录——devices和drivers文件夹;其中devices下是该总线类型下的所有设备(符号链接),它们分别指向真正的设备在"/sys/devices/"下;而drivers下是所有注册在这个总线上的驱动,每个driver子目录下 是一些可以观察和修改的driver参数。常见的总线类型参考如下:
类(class) :
对于具有相同功能的设备,归结到一种类别,进行分类管理;/sys/class目录下则是包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备模型, 我们知道每种设备都具有自己特定的功能,比如:鼠标的功能是作为人机交互的输入,按照设备功能分类无论它 挂载在哪条总线上都是归类到/sys/class/input下。
参考:https://blog.csdn.net/qq_42283749/article/details/138075759
标签:总结,总线,dev,sys,linux,驱动,设备 From: https://www.cnblogs.com/Charles-Hui/p/18363174