对 /dev 使用 devtmpfs

use*_*963 31 kernel devices linux-kernel

我注意到内核中有以下选项:CONFIG_DEVTMPFS

Device Drivers -> Generic Driver Options -> Maintain devtmpfs to mount at /dev
Run Code Online (Sandbox Code Playgroud)

我看到它在 Debian 发行版内核中默认启用 3.2.0-4-amd64

我试图了解这个选项带来了什么不同。如果没有此选项,/dev则挂载为tmpfs,使用此选项,则挂载为devtmpfs。除此之外,我看不出有什么不同。

help没有明确对我来说之一:

这会在启动初期创建一个 tmpfs/ramfs 文件系统实例。在此文件系统中,内核驱动程序核心维护设备节点及其默认名称和所有注册设备的权限,这些设备具有分配的主要/次要编号。

它提供了一个功能齐全的 /dev 目录,通常 udev 在上面运行,管理权限并添加有意义的符号链接。

在非常有限的环境中,它可能会在没有任何进一步帮助的情况下提供足够功能的 /dev。它还允许简单的救援系统,并可靠地处理动态的主要/次要号码。

有人可以解释使用CONFIG_DEVTMPFS与标准之间的区别/dev吗?

Ulr*_*gel 30

devtmpfs是一个文件系统,具有由内核填充的自动化设备节点。这意味着您不必让 udev 运行,也不必/dev使用额外的、不需要的和不存在的设备节点创建静态布局。相反,内核会根据已知设备填充适当的信息。

另一方面,标准/dev处理需要udev一个额外的守护进程运行或静态创建设备节点/dev

  • 在大多数情况下,您需要 `udev`。直接从您的报价中,udev 处理“管理权限和添加有意义的符号链接”以及运行外部脚本、通知桌面环境等。 (3认同)
  • 这真的意味着我不需要 udev 吗?帮助中说“它提供了一个功能齐全的/dev目录,通常udev在上面运行,管理权限并添加有意义的符号链接”。如果内核填充了“/dev”,那么“udev”还需要做什么? (2认同)