免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: MagicBoy2010
打印 上一主题 下一主题

《深入Linux设备驱动程序内核机制》第2章 字符设备驱动 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2012-03-25 21:37 |只看该作者
MagicBoy2010 发表于 2012-03-22 21:27
已阅,转拆迁办酌情处理。。。


M兄,相对于拆迁办,我更倾向于去发改委

论坛徽章:
0
52 [报告]
发表于 2012-03-25 21:58 |只看该作者
M兄前辈,我在阅读这本书的第九章的关于sysfs这一节的时候有些问题。我们知道,现在的内核中取消了ioctl功能,我不太明白取消它的原因,以前一直以为它占用了大内核锁,看了你写的说是可以通过sysfs文件的一个命令可以取代ioctl功能。难道这就是取消ioctl功能的原因吗?

论坛徽章:
0
53 [报告]
发表于 2012-03-26 11:22 |只看该作者
1. 个人意见
示例代码的文件名不要用<>来表示,我觉得用C的注释表示为好,
如<demo_chr_dev.c>改为//demo_chr_dev.c 或/* demo_chr_dev.c */

2. 设备号0为什么不能使用呢?是内核用于特殊用途?

3. alloc_chrdev_region
动态分配设备号,为什么限制在1~254。
虽然chardevs是只有255个,但是既然手工可以随意指定设备号,为什么动态申请要做限制呢?
这个是否有什么缘故?

论坛徽章:
0
54 [报告]
发表于 2012-03-26 12:54 |只看该作者
M兄前辈,我在阅读这本书的第九章的关于sysfs这一节的时候有些问题。我们知道,现在的内核中取消了ioctl功能,我不太明白取消它的原因,以前一直以为它占用了大内核锁,看了你写的说是可以通过sysfs文件的一个命令可以取代ioctl功能。难道这就是取消ioctl功能的原因吗?
==============================================

ioctl没有取消,只不过换了个马甲出现,现在是unlocked_ioctl和compat_ioctl,BKL是彻底被取消了,这个在新版vfs_ioctl代码中可以看得很清楚了,当时原书引用的代码里还有lock_kernel,Linux代码更新太快。sysfs目前还不会取代ioctl,相信它还会存活一段时间,因为必须要考虑现在已经有的代码。。。。

论坛徽章:
0
55 [报告]
发表于 2012-03-26 12:59 |只看该作者
1. 个人意见
示例代码的文件名不要用<>来表示,我觉得用C的注释表示为好,
如<demo_chr_dev.c>改为//demo_chr_dev.c 或/* demo_chr_dev.c */

2. 设备号0为什么不能使用呢?是内核用于特殊用途?

3. alloc_chrdev_region
动态分配设备号,为什么限制在1~254。
虽然chardevs是只有255个,但是既然手工可以随意指定设备号,为什么动态申请要做限制呢?
这个是否有什么缘故?

========================================

其实2.3是一个问题, 动态分配不用0,主要是目前代码实现是把0作为静态指定和动态分配的一个标志,如果你喜欢,可以用另一种方式来区分静态指定和动态分配的分界点,这样major 0就可以解放出来了(需要提交一个patch,不过内核社区很大的可能性不会接纳,因为这个属于实现的一种改动,除非有特别的好处)。至于动态申请的限制,我想应该没有什么特殊限制,只不过实现起来要麻烦一点,目前代码当然可以改进。

论坛徽章:
0
56 [报告]
发表于 2012-03-26 14:02 |只看该作者
回复 58# MagicBoy2010

其实2.3是一个问题, 动态分配不用0,主要是目前代码实现是把0作为静态指定和动态分配的一个标志,如果你喜欢,可以用另一种方式来区分静态指定和动态分配的分界点,这样major 0就可以解放出来了(需要提交一个patch,不过内核社区很大的可能性不会接纳,因为这个属于实现的一种改动,除非有特别的好处)。至于动态申请的限制,我想应该没有什么特殊限制,只不过实现起来要麻烦一点,目前代码当然可以改进。

==========================================

明白了。但是区分静态和动态指定,有什么好处呢?或者区分它们的目的是为了什么?

论坛徽章:
0
57 [报告]
发表于 2012-03-26 19:22 |只看该作者
GFree_Wind 发表于 2012-03-26 14:02
回复 58# MagicBoy2010

其实2.3是一个问题, 动态分配不用0,主要是目前代码实现是把0作为静态指定和动 ...


好处是什么呢?让你多一个选择,懒人让系统帮着分配,否则自己指定。

论坛徽章:
0
58 [报告]
发表于 2012-03-26 20:32 |只看该作者
MagicBoy2010 发表于 2012-03-26 19:22
好处是什么呢?让你多一个选择,懒人让系统帮着分配,否则自己指定。


试着自己理解一下,就是让那个带头盔的多几个美女(其中既有狂野型的,也有淑女型的)供他选择,估计就是这个意思

论坛徽章:
0
59 [报告]
发表于 2012-03-26 21:51 |只看该作者
回复 60# MagicBoy2010

我不是问动态分配的好处。
而是问区分静态和动态有什么好处呢?或者目的是什么

论坛徽章:
0
60 [报告]
发表于 2012-03-26 22:13 |只看该作者
GFree_Wind 发表于 2012-03-26 21:51
回复 60# MagicBoy2010

我不是问动态分配的好处。


好处已经说了啊,多一个选择。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP