それらは単なる(特別な)ファイルです。それらは、実際のデバイスへの「ポインター」としてのみ機能します。 (つまり、カーネル内のドライバー モジュール。)
何らかのコマンド/サービスが既にそのファイルを開いている場合、デバイスへのハンドルが既にあり、引き続き動作します。
コマンド/サービスが新しい接続を開こうとすると、そのファイルにアクセスしようとして、「ファイルが見つかりません」という理由で失敗します。
通常、これらのファイルは udev
によって生成されます 、システムの起動時や USB デバイスの接続などの特別なイベントで自動的に作成されますが、 mknod
を使用して手動で作成することもできます .
デバイス ファイルは、実際には、カーネルのデバイス テーブル内のエントリのファイル システム エイリアスです。 「ls -l」で /dev ファイルを見ると、メジャー デバイス番号とマイナー デバイス番号があることがわかります。ファイルシステムからファイルを削除した場合は、適切なツールを使用して特別なファイルをカーネルデバイステーブルのエントリに再リンクすることで、いつでもファイルを再作成できます -- mknod(1) を参照してください。
その瞬間から、それらのデバイスをすでに開いているプログラムからのみアクセスできます。したがって、ファイルシステムをアンマウントする方法はありません。また、udev を使用すると、再起動するとこれらのデバイスが復元される場合があります。 Unix を学ぶ奇妙な方法。