复旦大学教授肖林甫先生给学生们解说的linux操作系统的一些硬件驱动开发的事儿。
我是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提供了诸多的接口,各个子系统都会用到.可以把它当作参考书.
这个系列可以伴随着相应的系列一起看,对理解其它各部分都有帮助.
Linux那些事儿之我是Block层.pdf
Linux那些事儿之我是EHCI主机控制器.pdf
Linux那些事儿之我是HUB.pdf
Linux那些事儿之我是PCI.pdf
Linux那些事儿之我是SCSI硬盘.pdf
Linux那些事儿之我是Sysfs.pdf
Linux那些事儿之我是UHCI.pdf
Linux那些事儿之我是USB Core.pdf
Linux那些事儿之我是U盘.pdf
引子
小城故事
M AKEFILE不是M AKE L OVE
变态的模块机制
想到达明天现在就要启程
未曾开始却似结束
狂欢是一群人的孤单
总线, 设备, 和驱动(上)
总线, 设备, 和驱动(下)
我是谁的他?
从协议中来, 到协议中去( 上)
从协议中来, 到协议中去( 中)
从协议中来, 到协议中去( 下)
梦开始的地方
设备花名册
冰冻三尺非一日之寒
冬天来了, 春天还会远吗?( 一)
冬天来了, 春天还会远吗?( 二)
冬天来了, 春天还会远吗?( 三)
冬天来了, 春天还会远吗( 四)
冬天来了, 春天还会远吗?( 五)
通往春天的管道
传说中的URB
心锁
第一次亲密接触(一)
第一次亲密接触(二)
第一次亲密接触(三)
第一次亲密接触(四)
将控制传输进行到底
横空出世的SCSI
谁是最变态的结构体
S CSI 数据结构-像雾像雨又像风
彼岸花的传说(一)
彼岸花的传说(二)
彼岸花的传说(三)
彼岸花的传说(四)
彼岸花的传说(五)
彼岸花的传说(六)
彼岸花的传说(七)
彼岸花的传说(八)
彼岸花的传说(T HE E ND)
SCSI命令之我型我秀
迷雾重重的BULK 传输( 一)
迷雾重重的BULK传输( 二)
迷雾重重的BULK传输( 三)
迷雾重重的BULK传输( 四)
迷雾重重的BULK传输( 五)
迷雾重重的BULK传输( 六)
跟着感觉走( 一)
跟着感觉走( 二)
光荣属于苹果, 属于诺基亚, 属于摩托罗拉, 属于索尼爱立信!
有多少爱可以胡来?( 一)
有多少爱可以胡来?( 二)
当梦醒了天晴了
其实世上本有路, 走的人多了, 也便没了路