【很好的学习Linux驱动的教材】Linux那些事儿系列[全][pdf]
由复旦fudan_abc写的,风趣的文笔,深入浅出地讲解了Linux内核相关模块,主要涉及了USB相关的模块,但是同样也解析了Linux驱动模型相关的知识,
很值得一读。
读过《linux那些事儿之我是U盘》的人,都知道其风格,我就不多说了。
网上多数只有《linux那些事儿之我是U盘》,或者是hu200298整理的系列之1:
linux那些事儿之我是U盘
linux那些事儿之我是USB Core
linux那些事儿之我是HUB
linux那些事儿之我是UHCI
linux那些事儿之我是Sysfs
此处,我加上刚整理的:
Linux那些事儿之我是Block层.pdf
Linux那些事儿之我是EHCI主机控制器.pdf
Linux那些事儿之我是PCI.pdf
Linux那些事儿之我是SCSI硬盘.pdf
另外附上作者的关于此几个模块间的阅读顺序的建议:
博客导读.txt
全部放到一起,方便感兴趣的看了。
汗刚发现,无法上传这么大的附件,只有一个个传了。。。
一个个传的,结果发表帖子等了半天后,显示错误无法发表。。。li
[ 本帖最后由 crifan 于 2009-5-31 22:21 编辑 ] 占楼,上传
[ 本帖最后由 crifan 于 2009-5-31 22:53 编辑 ] 网络不好,传几个小文件都能累死。。。
附上作者的:
博客导读
我是U盘 说的是2.6.10的内核
我是Sysfs 说的是2.6.10的内核
戏说USB 说的是2.6.22的内核
我是Hub/UHCI/EHCI 说的是2.6.22.1的内核
====================================================================================
其中我是U盘属于基础性的.这一阶段会遇到一些问题.比如urb提交之后究竟怎么处理的?用户空间究竟是如何访问U盘的?DMA究竟怎么回事.
这之后可以开始看Hub.这一阶段你会明白一个usb设备,比如U盘,连接到hub上之后都发生了什么.
然后是usb core(也就是戏说USB),这一阶段是个承上启下的角色,承的是U盘/HUB,启的是UHCI/EHCI,主要描述一个usb设备连接到hub上之后,在HUB和UHCI/EHCI之间也就是usb core里发生的故事.
再然后可以开始看UHCI/EHCI.这一阶段会找到上一阶段的部分问题的答案.但同时在PCI方面可能会遇到另外一些问题.比如PCI设备究竟如何被枚举的?
再然后是PCI总线驱动.这一阶段会找到上一阶段问题的答案.
再然后是scsi disk的驱动.这一阶段会找到第一阶段的部分问题的答案.即U盘是如何以一种磁盘的方式被访问的.
再然后是scsi core以及block层驱动.到了这一阶段基本上就能回答我是U盘中所有的困惑了.(其中Block层由于过于复杂和规模庞大,主要是举例和个别函数分析,主要是辅助另外几个模块进行分析.)
以上每一阶段代码跳跃性会逐渐增强,即开始会讲的细,之后会讲的粗.但整体上,各个阶段是相互关联的.
====================================================================================
此外,
我是Sysfs是贯穿所有故事的,sysfs提供了诸多的接口,各个子系统都会用到.可以把它当作参考书.
这个系列可以伴随着相应的系列一起看,对理解其它各部分都有帮助.
[ 本帖最后由 crifan 于 2009-5-31 22:55 编辑 ] 感觉复旦就是出牛人,像去年OSDI有个Haibo Chen,呵呵
回复 #3 crifan 的帖子
是很好,可惜一年多不更新 了 fudan_abc的文章确实让人很受益。 搞usb睡眠唤醒的时候 看过hub和core中的一些内容受益匪浅不过 印象中大部分文章是复旦甲写的比较幽默 比如hub core sysfs等是abc写的 稍微严肃一些 正在学习中,谢谢总结这么全面 XIEXIE