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驱动之KobjectKset uevent mdev
linux input输入子系统分析《四》:input子系统整体流程全面分析