Linux文件体系udev

1,什么是udev

udev 是 Linux2.6 内核里的一个功用,它代替了本来的 devfs,成为当时 Linux 默许的设备办理东西。udev 以看护进程的方法运转,经过侦听内核发出来的 uevent 来办理 /dev目录下的设备文件。标签11不像之前的设备办理标签3东西,ude标签5v 在用户空间 (user space) 运转,而不在内标签14核空间 (kernel space) 运转。

咱们都知道,一切的设备在 Linux 里都是以设备文件的方法存在。在前期的 Linux 版别中,/dev目录包括了一切或许呈现的设备的设备文件。很难幻想 Linux 用户怎么标签11在这些许多的设备文件中找到匹配条件的设备文件。现在 udev 只为那些衔接到 Linux 操作系统的设备发生设备文件。而且 标签5udev 能经过界说一个 udev 规矩 (rule) 来发生匹配设备特点的设备文件,这些设备特点可所以内核设备称号、总线途径、厂商称号、类型、序列号或许磁盘巨细等等。

动态办理:当设备增加 / 删去时,udev 的看护进Linux文件系统udev程侦听来自内核的 uevent,以此增加或许删去 /dev下的设备文件,所以 udev 只为现已衔接的设备发生设备Linux文件系统udev文件,而不会在 /dev下发生许多虚Linux文件系统udev无的设备文标签3件。

2,udev的装备文件

udev是一个用户形式程序。它的装备文件是/etc/udev/udev.conf。

3,udev的作业进程

  1. 当内核Linux文件系统udev检测到在系统中呈现了新设备后,内核会在sysfs文件系统中为该新设备生成一项新的记载,一般sysfs文件系统会被mount到 /sys目录中。新记载是以一个或多个文件或目录的方法来表明。每个文件都包括有特定的信息。标签17(信息是怎么表述的,还要别的研讨?)
  2. udev在系统中标签20是以看护进程的方法在运转,检测到新设备的呈现,经过查找设备对应的sysfsLinux文件系统udev中的记载得到设备的一些信息。
  3. udev会标签1依据/etc/udev/udev.conf文件中的udev_rules指定的目录,逐一查看该目录下的文件,这个目录下的文件都是针对某类或某个设备应该实施什么办法的规矩文件。udev读取文件是依照文件名的ASCII字母次序来读取的,假如udev一旦找到了与新参加的设备匹配的规矩,udev就会依据规矩界说的办法对新设备进行装备。一起不标签19再读后续的规矩文件。Linux文件系统udev

4,/dev目录下节点的创立

整个/dev目录的内容,都和内核没有关系,你在任何地方都能够经过mkdir创立目录,然后在里面用mknod创立设备节点。这个目录,在不少嵌入式系统中是手艺创立的,但在大型系统中(比方一般的发行版),基本上都是用udev来创立的,udev经过uevent系统来供给服务,uevent经过kobject子系统供给功用。

内核中,许多对外的资源,都会创立kobject目标,这种目标会经过/sys文件系统露出到用户态,其间一个要害的功用是这些目标发生变化(比方创立或标签1者删Linux文件系统udev除)的时分,一个时间会发送到uevent行列中,uevent行列能够经过sysfs来访问,也能够大局性地经过netlink来接纳。udev进程便是等候在这个通道上,发现有新的目标建立了,然后看看是否是新设备在内核中创立,假如是,就经过mknod为这个设备在/dev目录下创立一个节点