44

Kernel Module Programming Guideからキャラクターデバイスドライバーの書き方を学んでおり、ドライバーと通信mknodするためのノードを作成していました/dev

rmnodただし、マンページを確認し、それが存在しないコマンドであることを確認した後、それを削除する明白な方法を見つけることができません。

の影響を逆にして、 でmknod作成されたノードを安全に削除する正しい方法は何/devですか?

4

2 に答える 2

48

正しいコマンドは次のとおりですrm:)

によって作成されたデバイス ノードmknodは、デバイスのメジャー番号とマイナー番号を含む単なるファイルです。そのファイルに初めてアクセスすると、Linux はそのメジャー/マイナーをアドバタイズしてロードするドライバーを探します。ドライバーは、そのファイルですべての I/O を処理します。

デバイス ノードを削除すると、通常の Un*x ファイルの動作が適用されます。Linux は、ファイルへの参照がなくなるまで待機し、その後ディスクから削除されます。

あなたの運転手は、これについて何も気づいていません。Linux はモジュールを自動的にアンロードしません。あなたのドライバーは、何も要求されなくなります。ただし、誰かがデバイス ノードを再作成した場合に備えて準備ができています。

于 2014-08-10T09:53:21.550 に答える