Linux设备驱动的整体结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux设备驱动的整体结构相关的知识,希望对你有一定的参考价值。

这个话题其实很大,只需有大致了解即可,如果详细分析难度很大,粗略讲,一个操作系统的组成包括:进程调度、内存管理、设备驱动、文件系统、网络,其中进程调度需要cpu、内存管理需要ram、文件系统访问需要存储器(比如硬盘、nand flash等)、网络访问需要网卡,linux系统从下到下整体如图:

技术分享

对于一个应用程序,如果涉及到硬件操作,那么依次会按照上图进行操作,首先在应用层会调用C库提供的函数(比如open、read、write),然后这些操作会触发软中断(swi中断)从而进入内核空间(Kernel Space),由于内核提供的VFS(vitual file system)的接口,依次会调用设备驱动,从而实现对硬件的操作,以应用层操作led硬件为例,依次会进行下面操作:

技术分享

后续会根据代码详细分析这个过程,这里就不说了

以上是关于Linux设备驱动的整体结构的主要内容,如果未能解决你的问题,请参考以下文章

Linux驱动分析之RTC框架

Linux驱动之KobjectKset uevent mdev

linux input输入子系统分析《四》:input子系统整体流程全面分析

linux 音频子系统代码分析

Linux驱动之KobjectKset uevent mdev ktype type

Linux gpio驱动子系统剖析 | 01 - gpio子系统整体实现架构