`

udev相关

阅读更多

udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目錄底下的设备节点 。它同时也是用来接替devfshotplug 的功能,这意味着它要在添加/删除硬件时处理/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添加一个链接到自身来达到目的。

 

分享到:
评论

相关推荐

    Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结文档

    在实现上述步骤的过程中,可能会使用到的一些udev相关的命令和工具包括: - udevadm,用于查询和控制udev的行为 - lsblk,用于查看系统上所有可用的块设备 - fdisk或parted,用于分区操作 - dd,用于创建测试文件或...

    编写udev规则中文版-writing_udev_rules

    本文档将详细介绍如何编写 udev 规则,并提供了相关的概念、术语和语法规则。 概念: * devfs:设备文件系统,用于管理设备文件的目录结构。 * sysfs:系统文件系统,用于管理系统的配置和状态信息。 * nodes:...

    udev移植到arm板上

    下面将详细介绍如何进行udev的移植以及涉及到的相关知识点。 1. **udev的基本原理**: - udev运行在用户空间,通过内核提供的udevadm工具与内核交互,监听设备的变化。 - 它通过读取设备属性、执行规则脚本来创建...

    udev管理linux设备

    【udev管理Linux设备】 在Linux操作系统中,管理设备文件是一个重要的任务,因为设备文件是操作系统与硬件设备交互的桥梁。udev是Linux 2.6内核引入的一个关键组件,它取代了早期的devfs,成为了现代Linux系统中...

    linux用户空间程序udev使用总结

    例如,`60-net.rules`可能用于设置网络设备的规则,`60-libsane.rules`则可能与扫描仪设备有关。 udev规则文件中的规则由键/值对组成,键可以是匹配键或赋值键。匹配键用于决定规则是否适用于特定设备,如`...

    利用udev处理U盘信息,得到U盘路径等

    在Linux系统中,udev是设备管理系统的核心组成部分,它负责动态管理和命名硬件设备。当我们插入一个U盘时,udev会自动检测到...通过对这些内容的理解和解析,可以实现自动化处理U盘插入事件,获取并利用U盘的相关信息。

    Writing-udev-rules

    - **sysfs 树**:sysfs 是一个虚拟文件系统,用于存储有关系统硬件和设备的信息。通过浏览 sysfs 树,可以找到关于设备的各种详细信息。 - **udevinfo**:这是一个命令行工具,用于查询和显示 udev 规则的信息。 - *...

    Redhat7 Udev绑定(DM multipath)多路径设备.docx

    下面是相关的知识点: 1. DM Multipath:DM Multipath是Redhat7系统中的一种多路径设备管理机制。它可以将多个物理设备组合成一个逻辑设备,从而提高存储系统的可靠性和性能。 2. Udev:Udev是Linux系统中的设备...

    udev和usb库移植到ARM脚本

    有关udev和libusb移植到arm的执行脚本,前提是必须已经安装arm-linux-gcc交叉编译工具,两文件一个是执行脚本,一个是源代码清单及配置文件,供和我一样爱好嵌入系统的底层开发者参考,希望对大家有帮助。

    udev 高效、动态地管理 Linux 设备文件.

    2. **相关术语** - **设备文件**:在 `/dev` 目录下,设备文件是与硬件设备通信的接口,可以是字符设备或块设备。 - **devfs**:早期的设备管理系统,已被 udev 替代。 - **sysfs**:一个虚拟文件系统,提供了一...

    go-udev:Golang中简单的udev实现

    <mode> [-file=]允许的模式: info或monitor文件应包含匹配器规则(请参阅:“高级用法”部分)信息模式爬网/ sys / devices uevent结构以检测插入的设备: ./go-udev -info监控模式处理所有内核消息以检测有关已...

    suse使用udev管理asm.docx

    根据提供的文档内容,本文将详细解析SUSE Linux Enterprise Server (SLES) 11环境下使用udev管理Oracle Automatic Storage Management (ASM)的相关知识点。 ### 一、SUSE Linux Enterprise Server 11简介 SUSE ...

    Rename NIC on RHEL

    Udev解析有关网络接口的详细信息,如PCI总线上的位置ID和MAC地址,以便对网络设备进行命名和管理。 1.1 在RHEL下重命名NIC 在RHEL系统中,可以使用ifrename工具或udev规则来重命名网络接口。ifrename是一个用于动态...

    linux查看系统硬件设备信息命令安装包

    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相关文件传输到目标设备的特定目录中。...

    udev4j:Java 绑定到 libudev

    有关 C API 说明,请参阅 。 用法 Udev udev = new Udev(); try { for (String syspath : udev.newEnumeration() .withMatchSubsystem(UdevSubsystem.block)) { UdevDevice device = udev....

    嵌入式系统/ARM技术中的利用udev、sys动态创建linux设备结点

    5. **设备类**:`struct class *my_class`代表设备类,它是设备的抽象,用于将一组相关的设备组织在一起。在示例中,可能需要使用`class_create()`和`device_create()`函数来创建设备类和设备实例。 6. **udev规则*...

    CentOS7.5+Oracle 12c+UDEV+ASM.pdf

    在本文中,我们将深入探讨如何在 CentOS 7.5 环境中安装和配置 Oracle 12c 数据库,以及与之相关的 UDEV 和 ASM 技术。首先,让我们从准备 CentOS 7.6 的虚拟机开始。 VMware 是一个流行的虚拟化平台,用于创建和...

    arm环境交叉编译方法gcc-linaro-7.5.0-2019.12-x86-64-aarch64-linux-gnu

    其中,`--host`指定了目标平台,`--prefix`指定了libusb安装位置,`--disable-udev`禁用了与udev相关的功能,而`CC`和`CXX`则指定了用于编译C和C++的交叉编译器。 3. **编译与安装libusb**:使用`make`进行编译,...

Global site tag (gtag.js) - Google Analytics