【轉】linux usb 子系統

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

我是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提供了諸多的接口,各個子系統都會用到.可以把它當作參考書.

這個系列可以伴隨着相應的系列一起看,對理解其它各部分都有幫助.
————————————————
版權聲明:本文爲CSDN博主「fudan_abc」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fudan_abc/article/details/1810000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章