gpt4 book ai didi

Linux 内核设备模型 - 哪些设备遵循它?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:16 24 4
gpt4 key购买 nike

我的问题是关于 linux 设备模型的。我在源代码中做了一些挖掘,发现设备模型围绕许多结构工作,其中一些是:

  1. 构造装置
  2. 构造设备驱动程序
  3. 结构总线类型
  4. 还有更多与电源管理相关的。

但是当我查看 linux 内核中实现的 char 驱动程序时(或者如果我实现自己的 char 驱动程序),linux 内核仅实现“struct device”,所有其他结构都只是 NULL。我已经通过一些调试和友好的邻居 API printk() 对此进行了检查。

那么我的问题是,为什么字符驱动程序不完全遵循设备模型?

还有哪些驱动程序完全遵循 linux 设备模型?

最佳答案

Linux 设备模型使用 kobject 作为它的基础,作为将它结合在一起的粘合剂。

您提到的结构位于 kobject 之上的一层。

因此,我们可以说 kobject 是您(几乎)永远不会遇到的东西,但它仍然嵌入在各处。

字符驱动程序不是借口:

struct cdev {
struct kobject kobj;
struct module *owner;
const struct file_operations *ops;
struct list_head list;
dev_t dev;
unsigned int count;
};

即使您不知道,所有驱动程序都遵循设备模型,因此字符驱动程序也不异常(exception)。

查看 cdev_add() 的实现,您会得到答案。

我建议你通过这个 article并再次挖掘 LDM 代码。

关于Linux 内核设备模型 - 哪些设备遵循它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15360130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com