Udev设备管理器

article/2025/9/23 16:33:17

udev 引入

在2.4内核中 引入了 devfs,他支持设备节点的动态创建。devfs提供了在内存中的文件系统中创建设备节点的能力。设备驱动程序能够自主的管理自己的设备文件。而命名节点的任务还是落到了设备驱动程序头上。但是,设备命名策略是可管理的,不应该与内核混在一起,设备命名策略可以位于头文件,模块参数,或者用户空间中。而udev则将设备管理的任务推向了用户空间。

一 udev 是什么

简单讲,udev负责在用户空间,根据用户设置的规则,在监测到设备被插入后,在/dev/下自动创建并命名设备文件节点(实际上只能做一个已存在节点的链接文件),也可以自动设置设备属性。

udev 的工作取决于以下几项:
1 内核中的 sysfs文件系统 支持
2 一套用户空间守护程序 udevd 和 实用工具 udevinfo
3 用户自定的规则,位于 /etc/udev/rules.d/目录中。可以根据对应设备的特点设置规则。

devfs和udev的区别主要有以下几点

1、devfs运行在内核空间(使用devfs_register等API在内核空间注册设备节点)。而udev完全运行在用户空间。

2、当用户访问/dev下的某个节点时,devfs会自动加载对应的驱动;而udev则并不负责自动加载驱动的工作(2.6版本内核,驱动是在设备被插入/移除时被加载/卸载的,而不是设备被访问时就加载驱动)。

3、devfs 是在内核空间命名设备,而 udev是在用户空间命名设备

4、udev 也会处理 热拔插、冷拔插, 事实上 udev承担了管理热拔插的全部责任。

二 udev的功能是什么

对热拔插 与 冷拔插的处理:

udev 完全在用户态工作,利用设备加入或移除时内核所发送的热拔插事件来工作,在运行过程中往系统中插入设备称为“热拔插”,而在系统系统前就已经连接的设备则称为冷拔插。侦测到热拔插事件之后,他们会通过netlink套接字向用户空间派生 uevent。 netlink套接字是一种在内核空间和用户空间透过套接字API进行通信的有效机制,用户空间的 udevd(管理设备节点创建和移除的守护进程)会接收uevent并管理热拔插。

udev也处理冷拔插,由于udev是用户空间的一部分,仅仅在内核启动后才开始运行,所以需要一种特殊的机制针对冷拔插设备模拟热拔插事件。启动时,内核为所有设备在sysfs下创建了一个名为 uevnet的文件,并将冷拔插事件记录于这些文件中。当udev开始运行后,他读取sysfs下所有的uevent文件,并为每个冷拔插设备产生热拔插uevent。

三 udev 怎么用

使用:

假设目前有一个 USB DVD驱动器 或 一个 USB CD-RW。根据热拔插设备顺序的不同,一个被命名为 /dev/sr0,另一个被命名为 /dev/sr1。在没有udev的情况下,必须区分这些名字对应的设备是哪个。但是有了udev之后,不管以什么顺序拔插它们,都能分辨出二者,如 DVD命名为 /dev/usbdvd, CD-RW命名为 /dev/usbdrw。

首先,从sysfs响应的文件中提取产品信息。假定 DVD驱动器被分配的设备节点是 /dev/sr0,CR-RW被分配的设备节点是 /dev/sr1。 使用 udevinfo可以收集设备信息

在这里插入图片描述
然后使用搜集到的产品信息标识设备并且添加udev命名规则,创建 /etc/udev/rules.d/40-cdvd.rules 文件 并添加如下信息:

BUS="usb", SYSFS{idProduct}="0701", SYSFS{idVendor}="05e3",
KERNEL="sr[0-9]*", NAME="%k", SYMLINK="usbdvd"BUS="usb", SYSFS{idProduct}="0302", SYSFS{idVendor}="0dbf",
KERNEL="sr[0-9]*", NAME="%k", SYMLINK="usbdcdrw"

首先 第1条规则告诉 udev,一旦发现一个USB设备的产品ID为0x0701,厂商ID为0x05e3,就增加一个以sr开始的名称,udev将在 /dev 目录下创建一个同名的节点并为之创建一个名为 usbdvd的符号链接。类似的,第2条规则是为 CD-RW驱动器创建一个名为usbcdrw的符号链接。

为了测试新创建的语法错误,可以对 /sys/block/sr*运行udevtest。

为了打开 /var/log/messages中的相关提示信息,可以将 /etc/udev/udev.conf文件中的 udev_log设置为 “yes”

为了在运行过程中的对 /dev 目录应用增加规则,可以运行 udevstart重启udev,此后,你的DVD驱动器在系统中将始终为 /dev/usbdvd,而CD-RW驱动器将总是为/dev/usbcdrw。


http://chatgpt.dhexx.cn/article/vUGfiaC7.shtml

相关文章

linux下udev详解

一.udev简介 udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行,而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备…

[2020.1.14][udev] udev介绍

1 什么是udev udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。 设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。 设备访问控制udev:user …

LINUX下 Udev详解

如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来&#xf…

wmic bug

今天尝试用wmic进行横向移动,老是出现 , - Alias not found,再三确认不是命令的问题,尝试修改域控用户的密码后成功解决,难道这时wmic的bug??? 猜测是因为密码种含有 , . 这样的符号导致命令产生…

wmic命令学习

我目前知道wmic可以查询进程,还可以查询服务。查询进程使用wmic process,如果想知道进程的名字、进程号、执行文件路径可以通过get来获取,还可以根据where筛选进程进行查询。 wmic process get name, processid,executablepath 查询主机进程信息&#xf…

Windows 命令 WMIC 使用详解

WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如S…

wmic java_Java执行wmic命令获取系统环境变量

1.首先编写文件setenv.bat设置系统环境变量: echo %cd% set framework_home%cd% echo %framework_home% wmic ENVIRONMENT create name"framework_home",username"",VariableValue"%framework_home%" Note: 此处假设framework_home为…

wmic命令

友情链接:wmic命令 目录 一、如何获取帮助文档 (1)wmic /? (2)wmic nic /? (3)wmic nic get ##获取网卡所有信息,如下只列出部分列 (4)信息筛…

内网渗透 | powershellwmic详解

文章目录 引子PowerShell0x001基本概念0x002命令格式0x003基本使用0x004常用命令0x005powershell脚本0x006参考文章 WMIC0x001基本概念0x002命令格式0x003常用命令1、目标系统相关2、用户管理 0x004参考文章 引子 之前在内网渗透,免杀中到处能看到powershell和wmic的…

wmic横向

WMI,是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操…

【转】wmic命令

友情链接:wmic命令 目录 一、如何获取帮助文档 (1)wmic /? (2)wmic nic /? (3)wmic nic get ##获取网卡所有信息,如下只列出部分列 (4)信息筛选 二、…

WMIC学习笔记

wmic 是什么 wmic 是计算机管理工具,提供给管理员以命令行的方式管理计算机。在 win10 已经弃用,不过还能用。 执行模式 WMIC 有两种执行模式:交互模式(Interactive mode)和非交互模式(Non-Interactive mode)。 在命令提示符或“运行”窗口…

信息收集--wmic命令

后渗透信息收集之wmic命令的一些使用方法 前言一、关于wmic二、wmic的简单使用三、以进程为例展现wmic的使用四、关于powershell的Get-Wmi 对象 前言 wmic和cmd一样在所有的windows版本中都存在,同时wmic有很多cmd下不方便使用的部分 一、关于wmic WMI命令行(WMIC)实…

Wmic

WMIC(Windows Management InstrumentationCommand Line) windows除了cmd ,powershell以外另一个更为强大的命令执行shell: windows最令网管诟病的地方就是命令行没有unix和linux强大。但这种情况正在不断改观,windows命令行也越来…

比CMD更强大的命令行:WMIC后渗透利用(系统命令)

写在前面的话 在这篇文章中,我们将讨论如何在攻击的后渗透利用阶段使用WMIC(Windows Management InstrumentationCommand Line)。当攻击者在远程PC上拿到meterpreter会话之后,他们就可以枚举大量的系统信息,并利用WMI…

“教务管理系统”ER模型

将ER模型转换成逻辑数据模型 ⑴学生表(学号,姓名,性别,出生日期,专业,籍贯,联系电话,班级编号); ⑵课程表(课程编号,课程名称&#…

【MySQL必知必会】 范式 | ER模型

范式 第一范式 第一范式要求:所有的字段都是基本数据字段,不可进一步拆分。 第二范式 第二范式:在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有字段,都必须完…

ER模型、ER分析介绍

关注公众号【程猿薇茑】 【仅需一次订阅,作者所有专栏都能看】 推荐【消息队列Kafka】https://bigbird.blog.csdn.net/article/details/108770504 推荐【大数据Flink】https://blog.csdn.net/hellozpc/article/details/109413465 推荐【SpringBoot】https://blog.c…

数据库实验—ER模型

E—R图 实体性用举行表示,矩形内写明实体名。 属性用椭圆表示,并用无向边将其与相应的实体性连接起来。 练习用菱形框表示,框内写出联系名称,用无向边分别与有关实体型链接起来,同时要在无向边上注明联系的类型&#x…

数据库系统笔记4: ER模型

基本概念 Entity(实体):对象,如学生、教师,用方形表示Entity Set(实体集):类 一个实体集必须至少有一个非主键的属性或者它是多对一/多对多关系中的“多”Attribute(属性…