设备文件、设备文件节点 、设备 、设备驱动 区别

1.设备
Linux下的设备通常分为三类,字符设备,块设备和网络设备。

见的字符设备有鼠标、键盘、串口、控制台等。

常见的块设备有各种硬盘、flash磁盘、RAM磁盘等。

Linux里一个网络设备也可以叫做一个网络接口,如eth0应用程序是通过Socket而不是设备节点来访问网络设备,在系统里根本就不存在网络设备节点。

网络接口没有像字符设备和块设备一样的设备号,只有一个唯一的名字,如eth0eth1等,而这个名字也不需要与设备文件节点对应

2.主设备号

驱动程序在初始化时,会注册它的驱动及对应主设备号到系统中,这样当应用程序访问设备节点时,系统就知道它所访问的驱动程序了。你可以通过/proc/devices文件来驱动系统设备的主设备号。

3.次设备号

驱动程序遍历设备时,每发现一个它能驱动的设备,就创建一个设备对象,并为其分配一个次设备号以区分不同的设备。这样当应用程序访问设备节点时驱动程序就可以根据次设备号知道它说访问的设备了。

4.设备节点(设备文件)

Linux中设备节点是通过mknod命令来创建的。一个设备节点其实就是一个文件,Linux中称为设备文件。有一点必要说明的是,在Linux中,所有的设备访问都是通过文件的方式,一般的数据文件程序普通文件,设备节点称为设备文件

5.设备驱动

设备驱动程序(device driver),简称驱动程序(driver),是一个允许高级(High level)计算机软件(computer software)与硬件(hardware)交互的程序,这种程序建立了一个硬件与硬件,或硬件与软件沟通的界面,经由主板上的总线(bus)或其它沟通子系统(subsystem)与硬件形成连接的机制,这样的机制使得硬件设备(device)上的数据交换成为可能。

想象平时我们说的写驱动,例如点led灯的驱动,就是简单的io操作。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页