ブロックデバイスドライバが使用するマイナー番号の目的は何ですか?

ブロックデバイスドライバが使用するマイナー番号の目的は何ですか?

「Linuxカーネルについて」の本では、ブロックデバイスドライバの章を読んだ後、マイナー番号の使用について少し混乱しました。
私は以前、メジャーとマイナーの数字とその使用法を読んだことがあります。したがって、メジャー番号は、物理ハードディスクI / O要求を処理するために使用されるドライバを識別します。マイナー番号は、複数のハードドライブとパーティションを識別するためにドライバ自体でのみ使用されます。私が見つけたほとんどすべての説明はこのように説明されています。
上記の本の章では、著者は、初期化中にドライバが既存のハードディスクごとにZenDisk構造を作成します。
したがって、ハードディスクにアクセスする前に、カーネルの共通ブロック層は、パーティション内の相対セクタ番号をハードディスク内の絶対セクタ番号に変換する。したがって、デバイスドライバはパーティションを気にする必要はありません。
私が想像できる唯一の目的は、パーティション以外のハードドライブを区別することです。私は間違っていると思うし、誰かが真実を知っていればいいでしょう。

ベストアンサー1

私が想像できる唯一の目的は、パーティション以外のハードドライブを区別することです。

いいですね。

多くのブロックデバイスドライバとさまざまな種類のパーティションがあります。基本ブロックデバイスドライバは、サポートされるパーティション数を設定する以外のパーティション処理を実装する必要はない。

例外を使用する主な目的は、LVMなどのデバイスでパーティションのサポートを妨げることではありません。このようなデバイスには通常必要ないからです。

(もしあなたならするLVMにサブパーティションを提供するためにカーネルが必要な場合は、kpartxそれを使用して、デバイス名が通常のパーティション名パターンと似ている可能性がある新しいデバイスマッパーデバイスを作成できます。

おすすめ記事