私は現在、オペレーティングシステムの過程でデバイスドライバについて学んでいますが、「inode」構造と「cdev」構造の違いについて混乱しています。誰かがこれら2つの構造の違いと彼らが達成しようとする目標を明確にすることはできますか?
答え1
あなたの質問には特定の文脈が記載されていません。struct cdev
そしてstruct inode
。
2つの間に本質的な違いがあります。
struct cdev
文字デバイスを表し、ドライバへのアクセスを提供します。これは、文字デバイスでサポートされているさまざまなタスクの実装を表します。
struct inode
inodeとカーネルがそれを使用して追跡するために必要なすべての情報を表します。 inodeはファイルへのアクセスを提供し、ファイルのメタデータ(所有権、権限、ACL、タイムスタンプ、サイズなど)を含みます。カーネルは、自分がバインドされたファイルシステム、サポートするタスクの実装場所、機能が何であるかを知る必要があります。状態は待っています
inode自体が文字デバイスに対応する場合、aのインスタンスにstruct inode
aへのポインタを含めることができます(struct cdev
例えば/dev/null
カーネルでインスタンス化されると、そのinodeは関連する文字デバイスとして表示され、それを指しますstruct inode
。i_cdev