- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
USB驱动器分析
USB驱动分析 一
这个故事中使用的是2.6.10的内核代码.Linux内核代码目录中, 所有去设备驱动程序有关的代码都在drivers/目录下面,在这个目录中我们用ls命令可以看到很多子目录.localhost:/usr/src/linux-2.6.10/drivers # lsKconfig? ?atm? ?? ???cdrom? ? eisa? ?? ?ide? ?? ? macintosh??message??net? ?? ? parport??s390? ? tc? ?? ?? ?w1Makefile??base? ?? ? char? ???fc4? ?? ? ieee1394??mca? ?? ???misc? ???nubus? ???pci? ?? ?sbus? ? telephony??zorroacorn? ???block? ?? ?cpufreq??firmware??input? ???md? ?? ?? ?mmc? ?? ?oprofile??pcmcia? ?scsi? ? usbacpi? ?? ?bluetooth??dio? ?? ?i2c? ?? ? isdn? ?? ?media? ?? ?mtd? ?? ?parisc? ? pnp? ?? ?serial??video其中usb目录包含了所有usb设备的驱动,而usb目录下面又有它自己的子目录,进去看一下,localhost:/usr/src/linux-2.6.10/drivers # cd usb/locahost:/usr/src/linux-2.6.10/drivers/usb # lsKconfig??Makefile??README??atm??class??core??gadget??host??image??input??media??misc??net??serial??storage??usb-skeleton.c注意到每一个目录下面都有一个Kconfig文件和一个Makefile,这很重要.稍后会有介绍.而我们的故事其实是围绕着drivers/usb/storage这个目录来展开的.实际上这里边的代码清清楚楚地展示了我们日常频繁接触的U盘是如何工作的,是如何被驱动起来的.但是这个目录里边的冬冬并不是生活在世外桃源,他们总是和外面的世界有着千丝万缕的瓜葛.可以继续进来看一下,localhost:/usr/src/linux-2.6.10/drivers/usb # cd storage/localhost:/usr/src/linux-2.6.10/drivers/usb/storage # lsKconfig? ? debug.c??freecom.c? ?? ? isd200.c? ? protocol.c??sddr09.c??shuttle_usbat.c??unusual_devs.hMakefile? ?debug.h??freecom.h? ?? ? isd200.h? ? protocol.h??sddr09.h??shuttle_usbat.h??usb.cdatafab.c??dpcm.c? ?initializers.c??jumpshot.c??scsiglue.c??sddr55.c??transport.c? ?? ?usb.hdatafab.h??dpcm.h? ?initializers.h??jumpshot.h??scsiglue.h??sddr55.h??transport.h咋一看,着实吓了一跳,用`wc -l *`这个命令统计一下,12076行,晕死...wc [??-c |??-m ] [??-l ] [??-w ] [文件] 或者wc??-k [??-c ] [??-l ] [??-w ] [文件]注:缺省情况下,wc 命令对 File 参数指定的文件中的行数、字数和字节数进行计数。这个命令将换行符数、字数和字节数写到标准输出并为所有指定的文件保留一个总数。当使用 File 参数时, wc 命令显示文件名以及请求的计数。如果没有给 File 参数指定一个文件名,wc 命令使用标准输入。wc 命令受 LANG、LC_ALL、LC_CTYPE 和 LC_MESSAGES 环境变量影响。wc 命令将一个字看作是被一个空格(如空白和跳格)分隔的非零长度字符串。-c 统计字节数,除非指定 -k 标志。如果指定 -k 标志,wc 命令统计字符数。 -k 统计字符数。指定 -k 标志等同于指定 -klwc 标志。如果将 -k 标志同其他标志一起使用,那么必须包含 -c 标志。否则,将会忽略 -k 标志。 注:这个标志在将来
文档评论(0)