《Linux内核修炼之道》精华分享与讨论(6)——分析内核源码如何入手?(上)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-23
透过现象看本质,兽兽门无非就是一些人体艺术展示.同样往本质里看过去,学习内核,就是学习内核的源代码,任何内核有关的书籍都是基于内核,而又不高于内核的.
既然要学习内核源码,就要经常对内核代码进行分析,而内核代码千千万,还前仆后继的不断往里加,这就让大部分人都有种雾里看花花不见的无助感.不过不要怕,孔老夫子早就留给我们了应对之策:敏于事而慎于言,就有道而正焉,可谓好学也已.这就是说,做事要踏实才是好学生好同志,要遵循严谨的态度,去理解每一段代码的实现,多问多想多记.如果抱着走马观花,得过且过的态度,结果极有可能就是一边看一边丢,没有多大的收获.
假设全国房价上涨1.5%,假设80后局长是农民子弟,⋯⋯,既然我们的人生充满了假设,那么我在这里假设你现在就迫不及待的希望研究内核中USB子系统的实现,应该没有意见吧?那好,下面就以USB子系统的实现分析为标本看看分析内核源码应该如何入手.
分析README 内核中USB子系统的代码位于目录drivers/usb,这个结论并不需要假设.于是我们进入到该目录,执行命令ls,结果显示如下: atm class core gadget host image misc mon serial storage Kconfig Makefile README usb-skeleton.c 目录drivers/usb共包含有10个子目录和4个文件,usb-skeleton.c是一个简单的USB driver的框架,感兴趣的可以去看看,目前来说,它还吸引不了我们的眼球.那么应该关注什么?如果迎面走来一个ppmm,你会看脸、脚还是其它?当然答案依据每个人的癖好会有所不同.不过这里的问题应该只有一个答案,那就是Kconfig、Makefile、README. README里有关于这个目录下内容的一般性描述,它不是关键,只是帮助你了解.再说了,面对“read我吧read我吧”这么热情奔放的呼唤,善良的我们是不可能无动于衷的,先来看看里面都有些什么内容. 23 Here is a list of what each subdirectory here is, and what is contained in 24 them. 25 26 core/ - This is for the core USB host code, including the 27 usbfs files and the hub class driver ("khubd"). 28 29 host/ - This is for USB host controller drivers. This 30 includes UHCI, OHCI, EHCI, and others that might 31 be used with more specialized "embedded" systems. 32 33 gadget/ - This is for USB peripheral controller drivers and 34 the various gadget drivers which talk to them. 35 36 37 Individual USB driver directories. A new driver should be added to the 38 first subdirectory in the list below that it fits into. 39 40 image/ - This is for still image drivers, like scanners or 41 digital cameras. 42 input/ - This is for any driver that uses the input subsystem, 43 like keyboard, mice, touchscreens, tablets, etc. 44 media/ - This is for multimedia drivers, like video cameras, 45 radios, and any other drivers that talk to the v4l 46 subsystem. 47 net/ - This is for network drivers. 48 serial/ - This is for USB to serial drivers. 49 storage/ - This is for USB mass-storage drivers. 50 class/ - This is for all USB device drivers that do not fit 51 into any of the above categories, and work for a range 52 of USB Class specified devices. 53 misc/ - This is |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于《Linux内核修炼之道》精华分享与讨论(6)——分析内核源码如何入手?(上)的所有评论