Linux设备驱动程序概念

来源:互联网 发布:天刀捏脸详细数据 编辑:程序博客网 时间:2024/05/01 04:24

所谓设备驱动程序就是控制与管理硬件设备收发的软件,它是应用程序与硬件设备沟通的桥梁。从本质上讲设备驱动程序主要负责硬件设备的数据读写、参数配置与中断配置。

设备驱动程序时操作系统的一部分,通常运行在内核层。应用层通过系统调用进入内核层,内核层根据系统调用号来调用驱动程序对应的接口函数。图1-1说明了Linux驱动程序的运行原理。

Linux中的大部分驱动程序,是以内核模块的形式编写的。内核模块是Linux内核向外部提供的一个接口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM)。Linux内核本身是一个单内核(monolithic kernel),具有效率高的优点,也具有可扩展性和可维护性差的缺陷。模块机制就是为了弥补这一缺陷而设计的。内核模块可以被单独编译,它在运行时被链接到内核,作为内核的一部分在内核空间运行。要让内核支持可加载模块,需要配置内核的【Enable loadable module support】选项,如图1-2所示。

 图1-2  在内核中增加可加载模块支持



0 0
原创粉丝点击