07.06.2013 Views

Scsi - Index of

Scsi - Index of

Scsi - Index of

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

楚的,什么判断结构循环结构,包括goto 语句,还是记得的.<br />

所以我就开始看了,正所谓梦想有多远,就能走多远.以前我只是玩CS 玩仙剑的时候能够整<br />

晚整晚不睡,但那个晚上,为了告诉我同学,Linux 下也能看A 片,Linux 下遇到问题更适合<br />

自<br />

己解决,我愣是从一点看到快天亮,终于把drivers/usb/storage/目录下面一万余行的代码<br />

给看了一遍.当然没有看得太仔细,但是很显然把整个原理搞清楚了,问题也很快得以解决.<br />

所以此刻,我整理了一下思路,决定把那晚看的冬冬用文字记录下来.也算为了纪念那个不寻<br />

常的夜晚吧.不过我估计这个篇幅不会短,因为光那一万余行的代码贴出来就得占许许多多<br />

页了,所以这件事情也许会占用我不少时间,然而,还好,每晚有北京不眠夜的陪伴,而且,也许<br />

当我把心思投入到写这个故事的时候,能够把那些压力那些烦恼那种孤独那种郁闷以及那种<br />

对生活的绝望给暂时忘记些许.<br />

小城故事<br />

这个故事中使用的是2.6.10 的内核代码.Linux 内核代码目录中, 所有去设备驱动程序有关的<br />

代<br />

码都在drivers/目录下面,在这个目录中我们用ls 命令可以看到很多子目录.<br />

4<br />

localhost:/usr/src/linux-2.6.10/drivers # ls<br />

Kconfig atm cdrom eisa ide macintosh message net parpo<br />

rt s390 tc w1<br />

Makefile base char fc4 ieee1394 mca misc nubus pci<br />

sbus telephony zorro<br />

acorn block cpufreq firmware input md mmc opr<strong>of</strong>ile pcmci<br />

a scsi usb<br />

acpi bluetooth dio i2c isdn media mtd parisc pnp se<br />

rial video<br />

其中usb 目录包含了所有usb 设备的驱动,而usb 目录下面又有它自己的子目录,进去看一下,<br />

localhost:/usr/src/linux-2.6.10/drivers # cd usb/<br />

locahost:/usr/src/linux-2.6.10/drivers/usb # ls<br />

Kconfig Makefile README atm class core gadget host image input media<br />

misc net serial storage usb-skeleton.c<br />

注意到每一个目录下面都有一个Kconfig 文件和一个Makefile,这很重要.稍后会有介绍.<br />

而我们的故事其实是围绕着drivers/usb/storage这个目录来展开的.实际上这里边的代码清清<br />

楚楚地展示了我们日常频繁接触的U 盘是如何工作的,是如何被驱动起来的.但是这个目录里边<br />

的冬冬并不是生活在世外桃源,他们总是和外面的世界有着千丝万缕的瓜葛.可以继续进来看一<br />

下,<br />

localhost:/usr/src/linux-2.6.10/drivers/usb # cd storage/<br />

localhost:/usr/src/linux-2.6.10/drivers/usb/storage # ls<br />

Kconfig debug.c freecom.c isd200.c protocol.c sddr09.c shuttle_usbat<br />

.c unusual_devs.h<br />

Makefile debug.h freecom.h isd200.h protocol.h sddr09.h shuttle_usba<br />

t.h usb.c<br />

datafab.c dpcm.c initializers.c jumpshot.c scsiglue.c sddr55.c transport.c

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!