技术开发 频道

史上最经典的Linux内核学习方法论

  我们响应了README的热情呼唤,它便给予了我们想要的,通过它我们了解了USB目录里的那些文件夹都有着什么样的角色。到现在为止,就只剩下内核的地图——Kconfig与Makefile两个文件了。

  有地图在手,对于在内核中游荡的我们来说,是件很愉悦的事情,不过,因为我们的目的是研究内核对USB子系统的实现,而不是特定设备或host controller的驱动,所以这里的定位很明显,USB Core就是我们需要关注的对象,那么接下来就是要对core目录中的内容进行定位了。

  分析Kconfig和Makefile

  进入到drivers/usb/core目录,执行命令ls,结果显示如下:

  Kconfig Makefile buffer.c config.c devices.c devio.c driver.c
  endpoint.c file.c generic.c hcd
-pci.c hcd.c hcd.h hub.c hub.h
  inode.c message.c notify.c otg_whitelist.h quirks.c sysfs.c urb.c
  usb.c usb.h

  然后执行wc命令,如下所示。

# wc –l ./*

148 buffer.c

607 config.c

706 devices.c

1677 devio.c

1569 driver.c

357 endpoint.c

248 file.c

238 generic.c

1759 hcd.c

458 hcd.h

433 hcd-pci.c

3046 hub.c

195 hub.h

758 inode.c

144 Kconfig

21 Makefile

1732 message.c

68 notify.c

112 otg_whitelist.h

161 quirks.c

710 sysfs.c

589 urb.c

984 usb.c

160 usb.h

16880 total

  drivers/usb/core目录共包括24个文件,16880行代码。core不愧是core,为大家默默的做这么多事。不过这么多文件里不一定都是我们所需要关注的,先拿咱们的地图来看看接下来该怎么走。

6
相关文章