1

rubini、corbet、hartmen の Linux デバイス ドライバーの本を読んでいます。メジャー デバイス番号とマイナー デバイス番号の動的な割り当てについて疑問があります。

動的割り当ての欠点は、デバイス ノードを事前に作成できないことです。これは、モジュールに割り当てられるメジャー番号が異なるためです。ドライバの通常の使用では、これはほとんど問題になりません。番号が割り当てられると、 /proc/devices から読み取ることができます。

1) ここでの事前とはどういう意味ですか?

2) 関数alloc_chrdev_regionがそれに送信される引数でメジャー番号とマイナー番号を提供する場合、/proc/devices からメジャー番号とマイナー番号を読み取る必要があるのはなぜですか?

前もって感謝します

4

2 に答える 2

2

1) 動的割り当ては、ドライバーがロードされる前にデバイス ノードを作成できないことを意味します。代わりに、今度はそれらのメジャー番号とマイナー番号が何であるかを発見して初めて作成できます。

2) ドライバーはメジャー番号とマイナー番号を認識している可能性がありますが、デバイス ノードはユーザー空間内の何かによって作成される必要があります。彼らは、この情報を事前にカーネル ドライバーとユーザー空間の両方に並行して提供できない場合、ユーザー空間は実行時に /proc/devices などからそれを検出する必要があることを示唆しています。

于 2012-06-22T05:12:57.273 に答える