在运行带有自定义 BSP 的 GNU/Linux 的嵌入式设备上,当我键入
df /dev
Run Code Online (Sandbox Code Playgroud)
在文件系统列中我得到
devtmpfs
Run Code Online (Sandbox Code Playgroud)
ps -A | grep udev
Run Code Online (Sandbox Code Playgroud)
给出
224 ? 00:00:00 systemd-udevd
Run Code Online (Sandbox Code Playgroud)
在运行 Ubuntu 22.04 的 PC 中,相同的命令给出
udev
Run Code Online (Sandbox Code Playgroud)
和
744 ? 00:00:02 systemd-udevd
Run Code Online (Sandbox Code Playgroud)
分别。
我的理解是,嵌入式设备使用 devtmpfs 创建设备节点 + systemd-udevd 管理所有权和权限的组合。因此 devtmpfs 作为 /dev 的文件系统类型。另一方面,Ubuntu 使用专用的 udev 伪文件系统类型运行 udev。
否(见下文)。
\ndf
显示安装设备;伪文件系统没有\xe2\x80\x99t,并且它们的名称是任意的。如果运行mount
you\xe2\x80\x99,将会看到实际的文件系统类型,devtmpfs
Ubuntu 上也是如此。
udev
过去使用通用tmpfs
,但自从devtmpfs
2009 年创建 \xe2\x80\x99 以来,/dev
使用后者。