我注意到内核中有以下选项: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吗?
它是安全的添加noexec安装选项,同时安装devtmpfs上/dev?我问这个是因为在我的 ubuntu 机器中,默认选项是rw,nosuid,realtime(使用 找到cat /proc/mounts | grep /dev)。有什么理由不noexec默认添加吗?
在安装 Linux 时,我只提到了一个文件系统(/dev/sda1 -> ext4 -> / )。但是对于 dev、run、proc、sys - Linux 正在创建额外的 FS,这可以从mount.
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=12138104k,nr_inodes=3034526,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=2433824k,mode=755)
/dev/sda4 on / type ext4 (rw,relatime,errors=remount-ro)
...
Run Code Online (Sandbox Code Playgroud)
我知道 /proc 是一个虚拟文件系统,位于内存中,而不是在任何 HDD/SSD 上。有人可以解释一下 /dev、/run 和 /sys 的情况吗?它们是否存在于硬盘上(如果存在的话,如果可以有意义地追踪的话,其位置在哪里)。
基于已经问过的问题 -为什么 /dev 和 /run 的 inode 编号与 / 的 inode 编号相同?
mount ×2
devices ×1
ext4 ×1
filesystems ×1
kernel ×1
linux ×1
linux-kernel ×1
proc ×1
security ×1
systemd-run ×1
udev ×1