Linux中的/ dev是虚拟的吗?

今天在工作中,一个客户端有rm -rf /dev ,最后删除了/dev/shm中的两个文件,迫使他的站点不再工作。

从我以前学到的/dev不是虚拟的,但同事技术人员build议重新启动服务器,因为/dev是虚拟的/proc 。 果然,我重新启动了服务器和客户端rm -rf'd在那里的文件。

所以,我的问题是, 是/dev虚拟? 它是像/proc那样的虚拟types吗? 有更多的文件吗? 如何在不重新启动服务器的情况下恢复/dev文件?

很长一段时间的答案是“有点”。

目前,Linux设备树由udevpipe理, udev是几年前取代devfs的用户空间设备pipe理器。 udev根据configuration文件中configuration的规则,将系统所需的任何设备节点填充到/ dev中。

在最新的Linux系统上,/ dev位于由devtmpfs提供的临时RAM磁盘中。 你可以调用这些虚拟的。

例:

 devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=6109940k,nr_inodes=1527485,mode=755) 

现在/ dev中的实际设备节点的唯一原因是启动环境,在udev启动之前。 通常在实际的文件系统中只需要/dev/console/dev/null ,这足以达到udev可以启动的地步。 它会提供一切。