Linux设备驱动程序模型



第1章  Linux设备驱动程序模型

Linux系统中包含字符设备、块设备、网路设备三类基本的设备驱动程序。随着技术的不断进步,Linux驱动程序体系的拓扑结构越来越复杂,Linux 2.4内核已经不能适应这种形势的需求。为此2.6内核开发了全新的设备模型,它采用Sysfs文件系统,该文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户态程序提供详细的内核数据结构信息。该模型在智能电源管理、热插拔以及与用户空间交互等方面具有明显的优势。本章主要介绍Linux内核中的驱动程序模型,包括三类设备的驱动程序、proc文件系统、Sysfs文件系统、Kobject等内容。

1.1  设备驱动程序基础

1.1.1  驱动程序的概念

所谓设备驱动程序就是控制与管理硬件设备数据收发的软件,它是应用程序与硬件设备沟通的桥梁。从本质上讲设备驱动程序主要负责硬件设备的数据读写、参数配置与中断处理。设备驱动程序是操作系统的一部分,通常运行在内核层。应用层通过系统调用进入内核层,内核层根据系统调用号来调用驱动程序对应的接口函数。图1-1说明了Linux驱动程序的运行原理。

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值