Linux の /dev は仮想ですか?

Linux の /dev は仮想ですか?

今日、仕事中にクライアントがrm -rf /dev2 つのファイルを削除してしまい、/dev/shmサイトが機能しなくなりました。

以前私が学んだところによると、は仮想ではありませんが、は仮想のようなものな/devので、同僚の技術者がサーバーを再起動することを提案していました。確かにサーバーを再起動すると、クライアントが rm -rf したファイルがそこにありました。/dev/proc

それで、私の質問は、仮想ですか/dev? のような種類の仮想ですか? これに関する詳細なドキュメントはありますか?サーバーを再起動せずにファイル/procを復元するにはどうすればよいですか?/dev

答え1

長い間、その答えは「ある程度」でした。

現在、Linuxデバイスツリーは、udev数年前に devfs に代わるユーザー空間デバイス マネージャーです。udev は、構成ファイルで設定されたルールに応じて、システムに必要なデバイス ノードを /dev に追加します。

最新のLinuxシステムでは、/devは、devtmpfsこれらは仮想的なものと呼べるでしょう。

例:

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

現在、/dev に実際のデバイス ノードが存在する唯一の理由は、udev が起動する前のブート環境のためです。通常、実際のファイル システムに必要なのは と のみで/dev/console/dev/nulludev を起動できる状態に到達するにはこれで十分です。その後、他のすべてが提供されます。

関連情報