本文主要从设备驱动的概述设备驱动的作用设备驱动的分类三个维度对Linux设备驱动基本概念做下简要的阐述。对于刚入门或刚接触linux设备驱动的开发人员,对Linux设备驱动中的一些基本概念不太了解,因此,本着和大家一起学习的态度,对Linux 设备驱动的基本概念做以下简单介绍,方便大家对Linux设备驱动基本概念有更进一步的了解,希望对大家的工作和学习能有所帮助。

1、设备驱动概述

  设备驱动程序(Device Driver),简称驱动(Driver),它是一个计算机软件和硬件交互的程序。这种程序建立了硬件与硬件或者软件与硬件沟通的界面。依据不同的计算机架构和操作系统不同的平台,驱动程序可以是8位,16位,32位,64位。不同平台的操作系统需要不同的驱动程序。

2、设备驱动的作用

  驱动程序相当于硬件和操作系统的之间的桥梁,它是一种可以是计算机与设备进行通信的特殊长须,相当于向操作系统提供了硬件的接口,并且协调硬件和操作系统二者之间的关系。

3、设备驱动分类

  驱动程序的对象一般是存储器和外部设备,Linux将这些设备分为字符设备,块设备网络设备

  字符设备:字符设备是指那些能一个字节一个字节读取数据的设备,例如LED,键盘和鼠标等。字符设备一般需要在驱动层实现open()、close()、read()、write()、ioctl等函数。内核为字符设备对应一个文件,如字符设备文件/dev/console。对字符设备的操作可以通过字符设备文件/dev/comsole来进行。字符设备一般不支持寻址(不能对硬件中一块寄存器进行随机访问,只能顺序读取),特殊情况下,某些字符设备支持寻址。
  块设备:块设备与字符设备类似,一般是像磁盘一样的设备。在块设备中可以容纳文件系统,并存储大量信息,如U盘,SD卡。在Linux内核中,与字符驱动程序相比,其数据结构更为复杂,块设备驱动程序具有完全不同的API接口。
  网络设备:网络设备主要负责主机之间的数据交换,面向数据包的接收额发送而设计,网络设备有特殊的一种套接字接口,任何网络数据传输都可以通过套接字来完成。

  以上就是对Linux设备驱动基本的概念的一个简单总结,希望对大家有所帮助,如有不足之处,还望大家多多指出。