Devices

在設備驅動程序程式的上下文中,結構“cdev”和“inode”有什麼區別?

  • April 10, 2022

我目前正在學習作業系統課程中的設備驅動程序,並且對“inode”結構和“cdev”結構之間的區別感到困惑。有人可以澄清這兩種結構之間的區別以及它們要實現的目標嗎?

你的問題沒有提到任何具體的背景;這個答案描述了struct cdevstruct inode

兩者本質上是不同的。

struct cdev代表一個字元設備,可以訪問驅動程序;它指向字元設備支持的各種操作的實現。

struct inode表示一個 inode,以及核心使用它和跟踪它所需的所有資訊。inode 提供對文件的訪問,並包含文件的元數據:它的所有權、權限、ACL、時間戳、大小等。核心需要知道它與哪個文件系統相關聯,它支持的操作的實現在哪裡,它是什麼狀態是等

如果 inode 本身對應於字元設備,則a的實例struct inode可以包含指向 a 的指針(例如,對應於 的 inode ,一旦在核心中實例化,由指向相關字元設備的 a 表示)。struct cdev``/dev/null``struct inode``i_cdev

引用自:https://unix.stackexchange.com/questions/698667