关于驱动中device结构体的疑问

发布于 2022-09-30 19:03:11 字数 350 浏览 19 评论 0

最近看到终端设备驱动,有这样几个疑问:

1.终端设备也属于字符设备,字符设备驱动中好像没有关于device结构体的注册,那为何终端设备驱动在注册的时候会需要有一个device结构体的注册呢?

2.既然字符设备驱动没有关于device结构体的注册,那么字符设备驱动就是简单的靠设备文件与设备关联的么?

3.如果第2点的假设成立,那么为何复杂设备驱动,比如PCI设备驱动需要维护一个device结构体的链表呢,为何不在加载了模块以后,也像字符设备一样通过设备文件来关联设备呢?
   仅仅是为了支持热插拔么?

不知道表述清楚没,还望各位大大不吝赐教~~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

云淡月浅 2022-10-07 19:03:12

5L正解,LZ没有理解设备和总线到区别

建议研究一下linux设备模型

linux那些事儿之我是USB里边关于设备模型有详细讲述,个人认为比LDD3里边关于设备模型的讲解更为通俗易懂

真可以说是朗朗上口,声声入耳

温柔女人霸气范 2022-10-07 19:03:12

5L正解,LZ没有理解设备和总线到区别

建议研究一下linux设备模型

linux那些事儿之我是USB里边关于设备 ...
lelee007 发表于 2011-03-30 13:56

非常感谢你的推荐,我仔细阅读了一下,确实很幽默诙谐,但内容上还是讲述的总线,设备,驱动之间的关系。。。

因为我个人比较执着,必须要建立一个宏观的概念,才愿意更深入的探究。

其实我的问题在于,device结构的作用。为什么driver结构一定要和device结构建立一个关系呢?

根据字符设备驱动的表现,仅仅只需要driver结构就行了,而不需要device结构,即是说,只需要通过设备文件就可以访问驱动了。那么其他复杂设备为什么不这样呢?

从上一位的回答中,我觉得应该这样理解,建立这样的关系,仅仅是为了更好的管理设备和驱动,实际表现上来说,仍然是设备文件与驱动的关系。

西瑶 2022-10-07 19:03:12

哈哈,感觉你的思想就像是裸奔的思维,有了device,可以让driver更容易实现更完善的功能 ,而且更成为一个体系

如果没有device,那整个驱动系统就会很混乱,内核就不好维护了

找个人就嫁了吧 2022-10-07 19:03:11

坐等大神解答~~

淡笑忘祈一世凡恋 2022-10-07 19:03:11

结构cdev不是吗?

离不开的别离 2022-10-07 19:03:11

结构cdev不是吗?
Fine_oday 发表于 2011-03-28 21:30

cdev结构了里并没有封装device结构~~说到cdev结构,我又有个问题,cdev结构里 虽然有kobject结构,但追踪字符设备的注册程序cdev_add,

发现根本没有涉及到设备模型的操作,即是说在sysfs文件系统中不存在字符设备的管理么?那cdev结构中的kobject结构,纯粹是为了计数?

沐歌 2022-10-07 19:03:11

device应该是至少有两种: 总线类型device (如PCI, UB,PLATFOM等等)以及
                          设备类型的device(net_device,cdev,等)

复古式 2022-10-07 19:03:11

本帖最后由 wgs13579 于 2011-03-29 14:40 编辑

device应该是至少有两种: 总线类型device (如PCI, UB,PLATFOM等等)以及
                          设 ...
Trigger_Huang 发表于 2011-03-29 12:52

按照我个人的理解 我觉得你的说法也不正确,我觉得只要使用到device结构的设备,比如PCI,BLOCK等,它们都是将device结构进行了封装。

比如你说的第一类的总线pci_dev结构中包含了device结构,你说的第二类中的net_device结构中也包含了device结构,

惟独cdev结构没有~~~

本王不退位尔等都是臣 2022-10-07 19:03:11

回复 1# wgs13579

1. '字符设备',‘块设备’和‘PCI 设备’是正交关系,并非互斥
2. 对于那些只需要‘设备文件’和‘设备’相关联的‘某些’‘字符设备’,因为足够满足需求了。
3. 确实是为了能更好的抽象现代总线的feature,不过不是‘热插拔(hot plug)’,表达为‘即插即用’(plug and play)更准确一些。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文