我是隨身碟 說的是2.6.10的核心
我是Sysfs 說的是2.6.10的核心
戲說USB 說的是2.6.22的核心
我是Hub/UHCI/EHCI 說的是2.6.22.1的核心
====================================================================================
其中我是隨身碟屬於基礎性的.這一階段會遇到一些問題.比如urb提交之後究竟怎麼處理的?使用者空間究竟是如何訪問隨身碟的?DMA究竟怎麼回事.
這之後可以開始看Hub.這一階段你會明白一個usb裝置,比如隨身碟,串連到hub上之後都發生了什麼.
然後是usb core(也就是戲說USB),這一階段是個承上啟下的角色,承的是隨身碟/HUB,啟的是UHCI/EHCI,主要描述一個usb裝置串連到hub上之後,在HUB和UHCI/EHCI之間也就是usb core裡發生的故事.
再然後可以開始看UHCI/EHCI.這一階段會找到上一階段的部分問題的答案.但同時在PCI方面可能會遇到另外一些問題.比如PCI裝置究竟如何被枚舉的?
再然後是PCI匯流排驅動.這一階段會找到上一階段問題的答案.
再然後是scsi disk的驅動.這一階段會找到第一階段的部分問題的答案.即隨身碟是如何以一種磁碟的方式被訪問的.
再然後是scsi core以及block層驅動.到了這一階段基本上就能回答我是隨身碟中所有的困惑了.(其中Block層由於過於複雜和規模龐大,主要是舉例和個別函數分析,主要是輔助另外幾個模組進行分析.)
以上每一階段代碼跳躍性會逐漸增強,即開始會講的細,之後會講的粗.但整體上,各個階段是相互關聯的.
====================================================================================
此外,
我是Sysfs是貫穿所有故事的,sysfs提供了諸多的介面,各個子系統都會用到.可以把它當作參考書.
這個系列可以伴隨著相應的系列一起看,對理解其它各部分都有協助.