linux设备驱动模型
文章平均质量分 90
newdye
30erlisp
展开
-
linux设备驱动模型架构分析(二)——LDDM的底层实现kobject
Linux设备驱动模型体系十分庞大,在不涉及细节的情况下建立顶层图景比较困难,我们采用自底向上的分析方法,首先分析关键的数据结构,然后再建立关键数据结构的关系。在阅读Linux内核源代码时(不仅仅对linux源码适用),通过核心数据结构,即可理解某个模块大部分逻辑,使用面向对象思想的设备模型部分尤为明显。这种思维方法值得刻意地锻炼。(以下内容参考http://www.wowotech.NET/原创 2017-07-28 08:12:24 · 1615 阅读 · 0 评论 -
Linux设备驱动模型框架分析(三)——LDDM的实体bus_type、device和device_driver
在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指原创 2017-08-05 08:33:47 · 2998 阅读 · 0 评论 -
linux设备驱动模型架构分析(一)——概述
概述LDD3中说:“Linux内核需要一个对系统结构的一般性描述。”这个描述就是linux设备驱动模型(下面简称为LDDM)。LDDM不是独立存在,其体系如下图所示:LDDM体系结构对架构的每一部分本文都会开辟独立的章节进行描述。暂且抛开这个架构,首先从总体上了解一下LDDM。LDDM与驱动程序密切相关,而驱动程序处于linux系统中的什么位置呢?我们自顶向原创 2017-07-27 18:21:49 · 3322 阅读 · 2 评论 -
Linux设备驱动模型框架分析(五)——LDDM的展现:sysfs
sysfs是一个基于RAM的文件系统,它和kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。 sysfs目录所包含内容/sys/devices这是内核对系统中所有设备的分层次表达模型,也是 /sys 文件系统管理设备的最重要的目录结构原创 2017-09-01 15:45:17 · 1783 阅读 · 0 评论 -
Linux设备驱动模型框架分析(六)——LDDM的设备管理:uevent,mdev
ueventuevent是kobject的一部分,用于在kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点,更进一步原创 2017-09-01 16:04:51 · 1426 阅读 · 1 评论 -
Linux设备驱动模型框架分析(四)——LDDM的高层视图class
类是一个设备的高层视图,抽象出了底层的实现细节。类允许用户空间使用设备所提供的功能,而不关心设备是如何连接的,和它们是如何工作的。类子系统是向用户空间导出信息的最好方法。类的核心数据结构是class,在分析device中介绍过,这个class不如bus,device,driver好理解,我理解它的主要功能是一是设备管理,二是抽象出一类设备的公共属性。前面分析subsys_private时说原创 2017-08-10 09:51:22 · 1109 阅读 · 0 评论