首页 > 代码库 > Linux设备驱动的整体结构

Linux设备驱动的整体结构

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

技术分享

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

技术分享

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

Linux设备驱动的整体结构