udev
是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目錄底下的设备节点
。它同时也是用来接替devfs
及hotplug
的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware
时。
udev的最新版本依赖于升级后的Linux kernel 2.6.13的uevent
接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev
参数来禁用udev并使用传统的/dev来进行设备读取。
概要
在传统的Linux系统中,/dev目录下的设备节点为一系列静态存在的文件,而udev则动态提供了在系统中实际存在的设备节点。虽然devfs提供了类似功能,udev的支持者也给出了很多udev实现比devfs好的理由[1]
:
-
udev支持设备的固定命名,而并不依赖于设备插入系统的顺序。默认的udev设置提供了存储设备的固定命名。任何硬盘都根据其唯一的文件系统id、磁盘名称及硬件连接的物理位置来进行识别。
-
udev完全在用户空间
执行,而不是像devfs在内核空间
一样执行。结果就是udev将命名策略从内核中移走,并可以在节点创建前用任意程序在设备属性中为设备命名。
运行方式
udev是一个通用的内核设备管理器。它以守护进程的方式运行于Linux系统,并监听在新设备初始化或设备从系统中移除时内核(通过netlink
socket)发出的uevent。
系统提供了一套规则用于匹配可发现的设备事件和属性的导出值。匹配规则可能命名并创建设备节点,并运行配置程序来对设备进行设置。udev规则可以
匹配像内核子系统、内核设备名称、设备的物理等属性,或设备序列号的属性。规则也可以请求外部程序提供信息来命名设备,或指定一个永远一样的自定义名称来
命名设备,而不管设备什么时候被系统发现。
系统架构
udev系统可以分为三个部分:
-
namedev函数库,处理设备的命名。
-
libsysfs函数库,进行设备信息的读取(080版本后废弃)
-
守护进程udevd,处于用户空间,用于创建虚拟/dev
系统获取内核通过netlink socket发出的信息。早期的版本使用hotplug
,并在/etc/hotplug.d/default添加一个链接到自身来达到目的。
分享到:
相关推荐
在实现上述步骤的过程中,可能会使用到的一些udev相关的命令和工具包括: - udevadm,用于查询和控制udev的行为 - lsblk,用于查看系统上所有可用的块设备 - fdisk或parted,用于分区操作 - dd,用于创建测试文件或...
本文档将详细介绍如何编写 udev 规则,并提供了相关的概念、术语和语法规则。 概念: * devfs:设备文件系统,用于管理设备文件的目录结构。 * sysfs:系统文件系统,用于管理系统的配置和状态信息。 * nodes:...
下面将详细介绍如何进行udev的移植以及涉及到的相关知识点。 1. **udev的基本原理**: - udev运行在用户空间,通过内核提供的udevadm工具与内核交互,监听设备的变化。 - 它通过读取设备属性、执行规则脚本来创建...
【udev管理Linux设备】 在Linux操作系统中,管理设备文件是一个重要的任务,因为设备文件是操作系统与硬件设备交互的桥梁。udev是Linux 2.6内核引入的一个关键组件,它取代了早期的devfs,成为了现代Linux系统中...
例如,`60-net.rules`可能用于设置网络设备的规则,`60-libsane.rules`则可能与扫描仪设备有关。 udev规则文件中的规则由键/值对组成,键可以是匹配键或赋值键。匹配键用于决定规则是否适用于特定设备,如`...
在Linux系统中,udev是设备管理系统的核心组成部分,它负责动态管理和命名硬件设备。当我们插入一个U盘时,udev会自动检测到...通过对这些内容的理解和解析,可以实现自动化处理U盘插入事件,获取并利用U盘的相关信息。
- **sysfs 树**:sysfs 是一个虚拟文件系统,用于存储有关系统硬件和设备的信息。通过浏览 sysfs 树,可以找到关于设备的各种详细信息。 - **udevinfo**:这是一个命令行工具,用于查询和显示 udev 规则的信息。 - *...
下面是相关的知识点: 1. DM Multipath:DM Multipath是Redhat7系统中的一种多路径设备管理机制。它可以将多个物理设备组合成一个逻辑设备,从而提高存储系统的可靠性和性能。 2. Udev:Udev是Linux系统中的设备...
有关udev和libusb移植到arm的执行脚本,前提是必须已经安装arm-linux-gcc交叉编译工具,两文件一个是执行脚本,一个是源代码清单及配置文件,供和我一样爱好嵌入系统的底层开发者参考,希望对大家有帮助。
<mode> [-file=]允许的模式: info或monitor文件应包含匹配器规则(请参阅:“高级用法”部分)信息模式爬网/ sys / devices uevent结构以检测插入的设备: ./go-udev -info监控模式处理所有内核消息以检测有关已...
根据提供的文档内容,本文将详细解析SUSE Linux Enterprise Server (SLES) 11环境下使用udev管理Oracle Automatic Storage Management (ASM)的相关知识点。 ### 一、SUSE Linux Enterprise Server 11简介 SUSE ...
Udev解析有关网络接口的详细信息,如PCI总线上的位置ID和MAC地址,以便对网络设备进行命名和管理。 1.1 在RHEL下重命名NIC 在RHEL系统中,可以使用ifrename工具或udev规则来重命名网络接口。ifrename是一个用于动态...
lsscsi -s显示容量大小。 -c 用全称显示默认的信息。 -d 显示设备主,次设备号。 -g 显示对应的sg设备名。...-H 显示主机控制器列表,-Hl,-Hlv。...-l 显示相关属性,-ll,-lll=-L。...-i 显示udev相关的属性 -w 显示WWN
7. **配置udev服务**:编译并安装udev相关组件,例如`make`、`make udevd`、`make udevadm`,并将编译好的文件复制到相应目录下,如`usr/sbin`。此外还需要通过FTP等方式将udev相关文件传输到目标设备的特定目录中。...
有关 C API 说明,请参阅 。 用法 Udev udev = new Udev(); try { for (String syspath : udev.newEnumeration() .withMatchSubsystem(UdevSubsystem.block)) { UdevDevice device = udev....
5. **设备类**:`struct class *my_class`代表设备类,它是设备的抽象,用于将一组相关的设备组织在一起。在示例中,可能需要使用`class_create()`和`device_create()`函数来创建设备类和设备实例。 6. **udev规则*...
在本文中,我们将深入探讨如何在 CentOS 7.5 环境中安装和配置 Oracle 12c 数据库,以及与之相关的 UDEV 和 ASM 技术。首先,让我们从准备 CentOS 7.6 的虚拟机开始。 VMware 是一个流行的虚拟化平台,用于创建和...
其中,`--host`指定了目标平台,`--prefix`指定了libusb安装位置,`--disable-udev`禁用了与udev相关的功能,而`CC`和`CXX`则指定了用于编译C和C++的交叉编译器。 3. **编译与安装libusb**:使用`make`进行编译,...