デバイスドライバプログラミングの「cdev」と「inode」構造の違いは何ですか?

デバイスドライバプログラミングの「cdev」と「inode」構造の違いは何ですか?

私は現在、オペレーティングシステムの過程でデバイスドライバについて学んでいますが、「inode」構造と「cdev」構造の違いについて混乱しています。誰かがこれら2つの構造の違いと彼らが達成しようとする目標を明確にすることはできますか?

答え1

あなたの質問には特定の文脈が記載されていません。struct cdevそしてstruct inode

2つの間に本質的な違いがあります。

struct cdev文字デバイスを表し、ドライバへのアクセスを提供します。これは、文字デバイスでサポートされているさまざまなタスクの実装を表します。

struct inodeinodeとカーネルがそれを使用して追跡するために必要なすべての情報を表します。 inodeはファイルへのアクセスを提供し、ファイルのメタデータ(所有権、権限、ACL、タイムスタンプ、サイズなど)を含みます。カーネルは、自分がバインドされたファイルシステム、サポートするタスクの実装場所、機能が何であるかを知る必要があります。状態は待っています

inode自体が文字デバイスに対応する場合、aのインスタンスにstruct inodeaへのポインタを含めることができます(struct cdev例えば/dev/nullカーネルでインスタンス化されると、そのinodeは関連する文字デバイスとして表示され、それを指しますstruct inodei_cdev

関連情報