《Linux那些事儿之我是USB》我是U盘(1)小城故事
2010-08-08 21:58
405 查看
这个故事中使用的是2.6.22的内核代码。在Linux内核代码目录中,所有与设备驱动程序有关的代码都在drivers/目录下面,在这个目录中用ls命令可以看到很多子目录:
lfg1:/usr/src/linux-2.6.22/drivers # ls
Kconfig
acpi atm block char
cpufreq dma fc4 hid ide
input leds
md mfd mtd oprofile pci ps3
s390 serial spi
usb zorro
Makefile amba auxdisplay bluetooth
clocksource crypto
edac
firewire hwmon ieee1394 isdn
macintosh media misc net
parisc pcmcia
rapidio sbus sh tc video acorn ata
base cdrom connector dio
eisa firmware i2c infiniband
kvm mca message mmc nubus
parport pnp rtc scsi sn
telephony
w1
其中usb目录包含了所有USB设备的驱动,而usb目录下面又有它自己的子目录,进去看一下,
lfg1:/usr/src/linux-2.6.22/drivers # cd usb/
lfg1:/usr/src/linux-2.6.22/drivers/usb # ls
Kconfig Makefile README atm class core
gadget host image misc mon
serial
storage usb-skeleton.c
注意到每一个目录下面都有一个Kconfig文件和Makefile,这很重要。稍后会有介绍。
而我们的故事其实是围绕着drivers/usb/storage这个目录来展开的。实际上这里边的代码清清楚楚地展示了
我们日常频繁接触的U盘是如何工作的,是如何被驱动起来的。但是这个目录里边的代码并不是生活在世外桃源,它们总是和外面的世界有着千丝万缕的瓜葛。可以
继续进来看一下:
lfg1:/usr/src/linux-2.6.22/drivers/usb # cd
storage/
lfg1:/usr/src/linux-2.6.22/drivers/usb/storage # ls
Kconfig alauda.h debug.c dpcm.h initializers.c isd200.h
karma.c
onetouch.c
protocol.h sddr09.c sddr55.h transport.c usb.c
Makefile
datafab.c debug.h freecom.c initializers.h
jumpshot.c
karma.h onetouch.h scsiglue.c sddr09.h
shuttle_usbat.c transport.h
usb.h alauda.c datafab.h dpcm.c
freecom.h isd200.c
jumpshot.h
libusual.c
protocol.c scsiglue.h sddr55.c shuttle_usbat.h
unusual_devs.h
乍一看,着实吓了一跳,用`wc
-l *`这个命令统计一下,15455行!但是,也许,生活中总是充满了跌宕起伏。
认真看了一下Makefile和Kconfig之后,心情明显好了许多。
********************************************
lfg1:/usr/src/linux-2.6.22/drivers # ls
Kconfig
acpi atm block char
cpufreq dma fc4 hid ide
input leds
md mfd mtd oprofile pci ps3
s390 serial spi
usb zorro
Makefile amba auxdisplay bluetooth
clocksource crypto
edac
firewire hwmon ieee1394 isdn
macintosh media misc net
parisc pcmcia
rapidio sbus sh tc video acorn ata
base cdrom connector dio
eisa firmware i2c infiniband
kvm mca message mmc nubus
parport pnp rtc scsi sn
telephony
w1
其中usb目录包含了所有USB设备的驱动,而usb目录下面又有它自己的子目录,进去看一下,
lfg1:/usr/src/linux-2.6.22/drivers # cd usb/
lfg1:/usr/src/linux-2.6.22/drivers/usb # ls
Kconfig Makefile README atm class core
gadget host image misc mon
serial
storage usb-skeleton.c
注意到每一个目录下面都有一个Kconfig文件和Makefile,这很重要。稍后会有介绍。
而我们的故事其实是围绕着drivers/usb/storage这个目录来展开的。实际上这里边的代码清清楚楚地展示了
我们日常频繁接触的U盘是如何工作的,是如何被驱动起来的。但是这个目录里边的代码并不是生活在世外桃源,它们总是和外面的世界有着千丝万缕的瓜葛。可以
继续进来看一下:
lfg1:/usr/src/linux-2.6.22/drivers/usb # cd
storage/
lfg1:/usr/src/linux-2.6.22/drivers/usb/storage # ls
Kconfig alauda.h debug.c dpcm.h initializers.c isd200.h
karma.c
onetouch.c
protocol.h sddr09.c sddr55.h transport.c usb.c
Makefile
datafab.c debug.h freecom.c initializers.h
jumpshot.c
karma.h onetouch.h scsiglue.c sddr09.h
shuttle_usbat.c transport.h
usb.h alauda.c datafab.h dpcm.c
freecom.h isd200.c
jumpshot.h
libusual.c
protocol.c scsiglue.h sddr55.c shuttle_usbat.h
unusual_devs.h
乍一看,着实吓了一跳,用`wc
-l *`这个命令统计一下,15455行!但是,也许,生活中总是充满了跌宕起伏。
认真看了一下Makefile和Kconfig之后,心情明显好了许多。
********************************************
相关文章推荐
- 《Linux那些事儿之我是USB》我是U盘(1)小城故事
- 【转】Linux那些事儿之我是U盘(1)小城故事
- Linux那些事儿之我是U盘(1)小城故事
- 《Linux那些事儿之我是USB》我是U盘(18)冬天来了,春天还会远吗?(四)
- 《Linux那些事儿之我是USB》我是U盘(25)彼岸花的传说(四)
- 我的U盘故事1
- 《Linux那些事儿之我是USB》我是U盘(37)迷雾重重的批量传输(六)
- 小城故事多
- 《Linux那些事儿之我是USB》我是U盘(10)我是谁的他?
- 《Linux那些事儿之我是USB》我是U盘(16)冬天来了,春天还会远吗?(二)
- 《Linux那些事儿之我是USB》我是U盘(20)通往春天的管道
- 《Linux那些事儿之我是USB》我是U盘(32)迷雾重重的批量传输(一)
- 我的U盘故事2
- U盘的故事
- 小城故事
- 《Linux那些事儿之我是USB》我是U盘(15)冬天来了,春天还会远吗?(一)
- 《Linux那些事儿之我是USB》我是U盘(24)彼岸花的传说(三)
- 《Linux那些事儿之我是USB》我是U盘(4)想到达明天现在就要启程
- 《Linux那些事儿之我是USB》我是U盘(17)冬天来了,春天还会远吗?(三)
- 《Linux那些事儿之我是USB》我是U盘(26)彼岸花的传说(五)