第一图书网

Linux那些事儿之我是USB

任桥伟 等编著 电子工业出版社
出版时间:

2012-3  

出版社:

电子工业出版社  

作者:

任桥伟 等编著  

页数:

441  

Tag标签:

无  

前言

前言从写Linux那些事儿系列内容开始,到如今已有四年多了,而从整理出版第1版到现在也已经一载有余了。期间不断有认识或不认识的朋友问我,怎么会想起写这么多如此可爱的文字,我的回答都是:娱乐自己,娱乐大家而已!或许,大家早已经默认技术本是一个沉重或者枯燥的话题,我们无法用一种娱乐的心态去看待它,甚至说很多人早已丧失了从中获取乐趣的能力。但是,一切本不该如此的,对于不管什么原因踏入这个行业的我们,愿意或不愿意,技术都已经是我们生命不可分割的一部分。既如此,又何不放轻松些,把它当成朋友,用我们自己的方式去与它交流,而不是仅仅把它当成一堆堆死气沉沉的代码,亦或一些枯燥的名词。而针对这本书的内容,我要说的就是:把内核当朋友。笑来老师有本书,叫《把时间当做朋友》,告诉我们只有把时间当做朋友,才能更好地利用自己的时间做些有益的事情。眼睛一闭一睁,一天就过去了;眼睛一闭不睁,一辈子就过去了。只有善待时间,时间才能善待我们。同样,我们只有把内核当朋友,当成一个有生命的实体,把它放在对等的地位上,我们才能够更好地认识和理解到它的精髓。具体到这本书,您可以把它当成一本内核源码分析的书,甚至仅仅当成内核USB实现源码分析的书,但是我更希望您把它当成展现如何学习Linux内核,展现如何与内核进行平等交流的一个范例,起码它体现了我们应该用什么样的态度去对待Linux内核源码。也就是说,分析内核源码,态度决定一切。我们很多人或许有这样的困惑,也分析浏览了很多内核的源码,可总是觉得分析、浏览后,脑子里还是空空的,并没有感觉到多大的收获。这个时候我们或许可以去看看是不是自己在分析代码时的态度出现了问题。我们在分析内核源码时,只有遵循严谨的态度,而不是抱着走马观花、得过且过的态度,最终才会有很大的收获。然后还有一句曾小范围流传的话:技术水平的高低不是决定于C,或者C++等用得有多么熟练,而是决定于你掌握的资源有多少。所以,我们还要以内核源码为中心,坚持学习资源建设。在我们学习内核的过程中,内核源码本身就是最好的参考资料,其他任何经典或非经典的书最多只是起辅助作用,不能也不应该取代内核代码在我们学习过程中的主导地位。但是这些辅助的作用也是不可忽视的,我们需要以内核源码为中心,坚持各种学习资源的长期建设不动摇。再次感谢孙学瑛编辑,没有她的努力,这本书的内容将会一直偏居网络一隅,将不可能被出版,从而去帮助更多需要的人。

内容概要

  本书基于2.6.22内核,对USB子系统的大部分源代码逐行进行分析,系统地阐释了Linux内核中USB子系统是如何运转的,子系统内部的各个模块之间是如何互相协作、配合的。本次改版修改了第1版中出现的错误,增加了一个附录,主要内容是关于Linux内核的学习方法,是作者的经验总结,值得一读。
  本书使用幽默诙谐的笔调对Linux内核中的USB子系统源代码进行了分析,形象且详尽地介绍了USB在Linux中的实现。本书从U盘、Hub、USB
Core到主机控制器覆盖了USB实现的方方面面,被一些网友誉为USB开发的“圣经”。

书籍目录

第1篇 Linux那些事儿之我是USB Core
 1.引子
 2.它从哪里来
 3.PK
 4.漫漫辛酸路
 5.我型我秀
 6.我是一棵树
 7.我是谁
 8.好戏开始了
 9.不一样的Core
 10.从这里开始
 11.面纱
 12.模型,又见模型
 13.繁华落尽
 14.接口是设备的接口
 15.设置是接口的设置
 16.端点
 17.设备
 18.配置
 19.向左走,向右走
 20.设备的生命线(一)
 21.设备的生命线(二)
 22.设备的生命线(三)
 23.设备的生命线(四)
 24.设备的生命线(五)
 25.设备的生命线(六)
 26.设备的生命线(七)
 27.设备的生命线(八)
 28.设备的生命线(九)
 29.设备的生命线(十)
 30.设备的生命线(十一)
 31.驱动的生命线(一)
 32.驱动的生命线(二)
 33.驱动的生命线(三)
 34.驱动的生命线(四)
 35.字符串描述符
 36.接口的驱动
 37.还是那个match
 38.结束语
第2篇 Linux那些事儿之我是HUB
 1.引子
 2.跟我走吧,现在就出发
 3.特别的爱给特别的Root Hub
 4.一样的精灵,不一样的API
 5.那些队列,那些队列操作函数
 6.等待,只因曾经承诺
 7.最熟悉的陌生人——probe
 8.蝴蝶效应
 9.While You Were Sleeping(一)
 10.While You Were Sleeping(二)
 11.While You Were Sleeping(三)
 12.While You Were Sleeping(四)
 13.再向虎山行
 14.树,是什么样的树
 15.没完没了的判断
 16.一个都不能少
 17.盖茨家对Linux代码的影响
 18.八大重量级函数闪亮登场(一)
 19.八大重量级函数闪亮登场(二)
 20.八大重量级函数闪亮登场(三)
 21.八大重量级函数闪亮登场(四)
 22.八大重量级函数闪亮登场(五)
 23.是月亮惹的祸还是spec的错
 24.所谓的热插拔
 25.不说代码说理论
 26.看代码的理由
 27.电源管理的四大消息
 28.将suspend分析到底
 29.梦醒时分
 30.挂起自动化
第3篇 Linux那些事儿之我是U盘
 1.小城故事
 2.Makefile
 3.变态的模块机制
 4.想到达明天现在就要启程
 5.外面的世界很精彩
 6.未曾开始却似结束
 7.狂欢是一群人的孤单
 8.总线、设备和驱动(上)
 9.总线、设备和驱动(下)
 10.我是谁的他
 11.从协议中来,到协议中去(上)
 12.从协议中来,到协议中去(中)
 13.从协议中来,到协议中去(下)
 14.梦开始的地方
 15.设备花名册
 16.冰冻三尺非一日之寒
 17.冬天来了,春天还会远吗?(一)
 18.冬天来了,春天还会远吗?(二)
 19.冬天来了,春天还会远吗?(三)
 20.冬天来了,春天还会远吗?(四)
 21.冬天来了,春天还会远吗?(五)
 22.通往春天的管道
 23.传说中的URB
 24.彼岸花的传说(一)
 25.彼岸花的传说(二)
 26.彼岸花的传说(三)
 27.彼岸花的传说(四)
 28.彼岸花的传说(五)
 29.彼岸花的传说(六)
 30.彼岸花的传说(七)
 31.彼岸花的传说(八)
 32.彼岸花的传说(The End)
 33.SCSI命令之我型我秀
 34.迷雾重重的批量传输(一)
 35.迷雾重重的批量传输(二)
 36.迷雾重重的批量传输(三)
 37.迷雾重重的批量传输(四)
 38.迷雾重重的批量传输(五)
 39.迷雾重重的批量传输(六)
 40.迷雾重重的批量传输(七)
 41.跟着感觉走(一)
 42.跟着感觉走(二)
 43.有多少爱可以胡来?(一)
 44.有多少爱可以胡来?(二)
 45.当梦醒了天晴了
 46.其实世上本有路,走的人多了,也便没了路
附录A Linux那些事儿之我是sysfs
 A.1 sysfs初探
 A.2 设备模型
 A.2.1 设备底层模型
 A.2.2 设备模型上层容器
 A.2.3 示例一:usb子系统
 A.2.4 示例二:usb storage驱动
 A.3 sysfs文件系统
 A.3.1 文件系统
 A.3.2 sysfs
 A.3.3 file_oprations
附录B 学习内核和驱动的方法
 B.1 高效学习Linux内核
 B.2 Kernel地图:Kconfig与Makefile
 B.3 分析内核源码如何入手
 B.3.1 分析README
 B.3.2 分析Kconfig和Makefile
 B.3.3 态度决定一切:从初始化函数开始
 B.4 内核学习的心理问题
 B.5 高效学习Linux驱动开发
 B.6 设备模型(上)
 B.7 设备模型(下)
 B.7.1 内核中USB子系统的结构
 B.7.2 USB子系统与设备模型
 B.8 驱动开发三件宝

章节摘录

版权页:插图:

媒体关注与评论

牛人,谈罢你们的文字 ,对Linux顿感兴趣。  ——网友 uspark这么多优秀文章,真是让我吃了N顿饱餐啊哈,可惜发现得太晚,要是在3年前就看到多好。  ——网友 sunwill_chen第一次看的是U盘部分,硬着头皮看完了55个小节,现在来看PCI部分,有种一通百通的感觉,非常不错!  ——网友 haierfox过来拜一个,这几天一直从头看“Linux那些事儿”,我就一直在纳闷,什么神人才能把复杂枯燥的驱动写得那样华丽,那样搔首弄姿,那样让人欲罢不能。  ——网友 windwinter毕业设计是USB设备驱动,看了那个USB Core简直胜过看所有的书啊。把所有自己不清楚的内容都说明白了。无限膜拜中。  ——网友 rabbit8ge第一眼看到作者的文章,立刻就被吸引了,诙谐的语言让人看起技术文章来感觉不到枯燥,不去做老师真是浪费,现在的老师没有几个能让人听课不瞌睡的。  ——网友 likefreebird在过度疲劳的工作中看到楼主的文章,失笑了多回。虽然没太懂,也没来得及看完。我借助它敢SCSI设备号固定于硬端口的问题。赞一个:是金子总是要发光的。  ——网友 yzdai太经典了,花了4天时间终于看完了,这是我看过的最好的技术文章!  ——网友 raindown刚看了几眼你的文章就喜欢上了,很喜欢你的文风。现在的书要是文字都这么轻松该多好啊!感谢你为全人类做出的贡献!  ——网友 Felk2005非常喜欢您关于USB开发的几部经典作品,用超乎寻常的经典方式学习,解剖经典的技术。  ——网友 learner我也是因为工作缘故开始使用Linux开发程序,接触有半年多,期间一直只是用GCC编写程序,觉得跟WIN平台比,从应用程序开发的角度来看,并不需要跨越多么大的鸿沟,所以始终没有阅读Linux内核代码的动机。以前做过USB设备端的驱动程序,对USB协议有所了解。但我知道对于设备驱动程序开发来说,Linux与Windows平台的区别相当大。在看本书的过程中,越来越强烈地感觉到,这真的是一本妙趣横生的惊艳大作!我一口气用了4个钟头左右的时间从头到尾看完,一直看到凌晨2点多。我觉得这是我迄今为止看过的最有意思的技术类书籍,甚至年少时期狂热爱的科普类书籍也赶不上本书风格的九牛一毛。  ——网友 zlzdsp有一种文章,看了直犯困,有一种文章,越看越兴奋,你咋这么让人兴奋呢?  ——网友 phoenix_zhang


编辑推荐

《Linux那些事儿之我是USB(第2版)》编辑推荐:做程序员的最高境界就要像和尚研究佛法一样研究算法,这次函数调用就像流星,短暂地划过却能照亮整个天空。它的心只有编译器才懂,终于,四大传输也就这样结束了,而我们的故事也即将ALT+F4了。我只是说也许《Linux那些事儿之我是USB(第2版)》不仅能带给你一趟愉悦的USB代码之旅,更能给你一套终生受益的高效内核学习法宝!

图书封面

图书标签Tags

广告

下载页面


Linux那些事儿之我是USB PDF格式下载



这本关于linux USB的书还是不错


这本书以一种很轻松的语言来把几个枯燥的USB技术讲解的这么通俗易懂,作者真的好厉害~


不错,阅读后对usb驱动有深刻理解!


USB驱动,很详细


这是一本好书,值得好好看好几遍。。。我现在正在仔细看。。。。


挺不错的教材,可以好好研究下


还不错,是一本很好的学习参考书。


还没读,发现网上好像有电子版的


给朋友的,没听到反应


书不错
只是有点看不大懂
建议当参考书,碰到问题再查
内核讲解还是不错的


语言风趣,内容浅显易懂,是一本难得的好书!


挺好,作者写的自己的体会


工作需要,看了非常有用!


学习LINUX下驱动的可以好好看看


书的质量实在太差,不符合60多元的身价,和盗版书所差无几,而且页有破损。


122页到139页错印,不知道是不是每本都这样,购买的各位买回去都检查一下


这么本书讲的内非常零乱,没有条理,书中黏贴了大量的代码,完全是凑字数,没事还东扯西拉!!!


之前一直是看pdf的,觉得不错就买了一本纸质的,现在还没看,哈哈


通俗易懂 讲得不错 值得推荐


书的内容还没看多少,不方便评价,不过别人评价很高。我只想说,书拿到手,不是很新,印刷还好,不知道是真假,质量一般。


很不错的一本书,希望大家都看看


书的内容很好。我在网上也看过电子版的Linux那些事儿,我做毕业设计的时候,这本书对我的启发很大,书的内容好像比电子版的要少一些。当然电子版的不是书的形式。书运过来的时候有折角现象,这点有些不爽


特价时买的,很满意


正版的书不错哦


朋友推荐的,还未看!!!!


书还是比较通俗


很好,比在书店买书方便多了!


发货很快,正品无疑


东东很不错,很满意


一般一般还不错


  蛮不好意思的,看了人家的《linux那些事儿》的博文,却在这里乱放p。哈哈,对于usb开发比较感兴趣的可以阅读,我将近花了课余一个月的时间拜读过作者的blog,遗憾的是没有对照代码去看,只是给自己灌输了usb的框架概念。因为工作中需要修改内核gadget的驱动,然后就一时兴起从usb那些事儿开始入手了..
  本人还是比较推荐usb开发的人阅读的,毕竟这本书不是翻译注释,作者给出了很多所以然,在这里也非常佩服作者的工作能力,膜拜了...
  


相关图书