6
"Linuxデバイスドライバ、第3版"と読んでいて、わかりません。第3.2章でどのように2つのデバイスが同じメジャーマイナーデバイス番号を共有していますか?
、著者は言った:
は、それから私は、私は珍しいいくつかのことを発見し、外観を持っているの "ls -l/devの" を試してみました - マイナーですが、名前とタイプは異なります。私は著者が「 のメジャー番号はデバイスクラスを意味し、マイナー番号はデバイスインデックスを意味する」と主張していたと思います。伝統的に、メジャー番号は、デバイスに関連付けられたドライバを識別する。 マイナー番号は、どのデバイスが参照されているかを正確に判断するためにカーネルが使用します。同じメジャーで
brw-rw---- 1 root disk 1, 1 2011-08-23 23:52 ram1 brw-rw---- 1 root disk 1, 2 2011-08-23 23:52 ram2 brw-rw---- 1 root disk 1, 3 2011-08-23 23:52 ram3 brw-rw---- 1 root disk 1, 4 2011-08-23 23:52 ram4 brw-rw---- 1 root disk 1, 5 2011-08-23 23:52 ram5 ... crw-r----- 1 root kmem 1, 1 2011-08-23 23:52 mem crw-r----- 1 root kmem 1, 4 2011-08-23 23:52 port crw-rw-rw- 1 root root 1, 3 2011-08-23 23:52 null crw-rw-rw- 1 root root 1, 5 2011-08-23 23:52 zero
これらのデバイス(RAM1-RAM5)すべてのクローンを持っている、:
私は混乱しています。どのように2つのデバイスが同じメジャーマイナーを共有することができますか?正確にデバイス番号は何ですか?
私が間違っていた場合は正解してください。事前に感謝します。 (c
リストで始まるによって証明されるように)
したがって、differntデバイスを関連付ける全く異なるファイルですか?私はLDD3でこれを見つけました」「現代のLinuxカーネルでは複数のドライバが大多数の番号を共有できますが、表示されるほとんどのデバイスは1つのメジャー1つのドライバの原則で編成されています**:カーネルはデバイスの正しいドライバをどのように選択できますか? – kumo
@Shello、まず、これは時代遅れですが、最近は動的割り当てが一般的です。第二に、1つのメジャー・アンド・タイプのペア・ワン・ドライバー(つまり、そのタイプをメジャーの一部と見なすことができます) – bdonlan