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

转载 2018年04月17日 15:38:43

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操作。

《Linux驱动》混杂设备与设备节点

#include #include /*驱动注册的头文件,包含驱动的结构体和注册和卸载的函数*/ #include /*注册杂项设备头文件*/ #include /*注册设备节点的文件结构体*/...
  • HERGhost
  • HERGhost
  • 2016-05-12 12:56:03
  • 800

linux中设备驱动和设备文件

可能是以前的驱动太多简单,也可能是我看书的时候不够仔细,一直以为ko写好以后,insmod成功以后就能在/dev下直接引用。其实不然。 对于misc类型的驱动,可能确实如此(没有系统的考证过)。但是对...
  • hopshine
  • hopshine
  • 2014-02-17 13:03:07
  • 1267

Linux杂项设备驱动

一、Linux杂项设备驱动简介 Linux杂项驱动出现的意义在于:有很多简单的外围字符设备,它们功能相对简单,一个设备占用一个主设备号对于内核资源来说太浪费。 所以对于这些简单的字符设备它们共用一...
  • hongwazi_2010
  • hongwazi_2010
  • 2013-10-23 21:42:40
  • 1901

linux的混杂设备驱动

介绍混杂设备 驱动
  • qqliyunpeng
  • qqliyunpeng
  • 2016-10-20 17:28:14
  • 735

Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型

提到 sysfs 文件系统 ,必须先需要了解的是Linux设备模型,什么事Linux设备模型呢? 一、Linux 设备模型 1、设备模型概述      从2.6版本开始,Linux开发团队便为内核建立...
  • zqixiao_09
  • zqixiao_09
  • 2016-03-12 12:19:28
  • 3258

设备、设备文件和设备驱动

1.设备 Linux下的设备通常分为三类,字符设备,块设备和网络设备。 见的字符设备有鼠标、键盘、串口、控制台等。 常见的块设备有各种硬盘、flash磁盘、RAM磁盘等。 在Lin...
  • Aguangg_6655_la
  • Aguangg_6655_la
  • 2017-03-11 21:57:54
  • 132

代码:编写一个简单的字符设备驱动(自动创建设备文件)

说明: (1)该篇在上篇的基础上实现了自动创建设备文件的功能; (2)自动创建文件主要用到了class_create()、device_create()两个函数,声明在inclue/linux/dev...
  • liuqinglong_along
  • liuqinglong_along
  • 2016-07-01 17:22:07
  • 1054

linux RTC设备驱动

一. RTC设备结构体 struct rtc_device { struct device dev; //设备文件 struct module *owner; //模块所有者 int...
  • paomadi
  • paomadi
  • 2012-12-19 14:06:04
  • 1526

Linux字符设备驱动和杂项设备驱动对比

初学Linux驱动程序的时候,可能对什么是字符设备驱动(char device)和杂项设备驱动(misc device)并不是很了解,更谈不上如何区分了。我自己当初在学习Linux字符设备驱动的时候,...
  • JansonZhe
  • JansonZhe
  • 2016-01-22 16:43:25
  • 2438

linux设备驱动模型之总线、设备、驱动三者的关系

总线、设备、驱动,也就是bus、device、driver,在内核里都有对应的结构体,在include/linux/device.h 里定义。 Device.h (linux-3.4.2\inclu...
  • fengyuwuzu0519
  • fengyuwuzu0519
  • 2017-07-05 22:46:36
  • 768
收藏助手
不良信息举报
您举报文章:设备文件、设备文件节点 、设备 、设备驱动 区别
举报原因:
原因补充:

(最多只允许输入30个字)